
    ^jl                    X   d dl Z d dlmZ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Zd dlmZ d dlZd dlZd dlZd dlmZ d dl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/m0Z1 d dl2m3Z4 d dl5m6Z7 d dl8m9Z: d dl;m<Z< d dl=m>Z> d dl?m@ZA d dlBmCZD d dlEmFZG d dlHmIZJ d dlKmLZM d dlNmOZOmPZPmQZQ d dlRmSZSmTZTmUZU d dlVmWZW  eT       d        ZXd ZYd ZZ eT       d        Z[ eT       d        Z\ eT       d        Z]d Z^ eT       d        Z_ eT       d        Z` eT       d        Zad Zb eT       d        Zc eS edd d!      D  cg c]	  } d"| d#d$ c} d% ej                         d&k(  rd nd'(      d)        Zfd* Zgd+ Zh eSd,gd%-      d.        Zid/ Zjej                  j                  d0d1      d2        Zmej                  j                  d0d1       eTd34      d5               Zn eSd6gd7 ej                         d&k(  rd nd8(      d9        Zod: Zpej                  j                  d0d1      d;        Zqej                  j                  d0d1      d<        Zrej                  j                  d0d1      d=        Zsd> Ztd? Zud@ Zv eT       dA        Zw eSdBgdCd7D      dE        Zxej                  j                  dF      dG        Z{ej                  j                  dF      dH        Z|ej                  j                  dF      dI        Z} eT       dJ        Z~ eSdKgdCd%D      dL        Z eSdMgdCd%D      dN        ZdO ZdP ZdQ Z eSdRgdCd%D      dS        Z eSdTgdCd7D      dU        ZdV ZdW ZdX ZdY Z eSdZgd[d\id%]      d^        Zd_ Z eT       d`        Zda Z eSdbdbgd%-      dc        Z eT       dd        Zde Z eSdfgdCd%D      dg        Z eSdhgd%-      di        Z eSdjgd%-      dk        Z eSdldlgdCd7D      dm        Zdn Zdo Z eSdpgdCd7D      dq        Zdr Z eSdsgd%-      dt        Zdu Z eSdvgd%dCw      dx        Zdy Z eT       dz        Zd{ Z eSd|gd%-      d}        Zej                  j                  dF      ej                  j                  d~g d       eT       d                      Z eSddgdCd%D      d        Z eSdgd% ej                         d&k(  rd nd(      d        Zd Z eSdgdCd7D      d        Zej                  j                  d ejJ                  d      ddf ejL                  ddd       ejJ                  d      df ejL                  ddd      d ejJ                  d      fgg d      d        Zej                  j                  d ejJ                  d      ddf ejL                  ddd       ejJ                  d      df ejL                  ddd      d ejJ                  d      fgg d      d        Z eSdgdCd7 ej                         d&k(  rd nd      d        Z eSdgd%dCw      d        Z eSdgdCd7D      d        Z eSdgd%-      d        Z eSdgdCd7D      d        Zd Z eSdgdCd7 ej                         dk(  rdnd       d        Z eSdgd7-      d        Z eSdgddgdCd7 ej                         dk(  rdnd       d        Zej                  j                  dddg       eT       d               Z eT       d        Z eT       d        Z eSdgd%-      d        Z eSdgd%-      d        Z eT       d        Zd Zd Zd Z eT       d        Z eT       d        Zd Zd Zej                  j                  dddCg       eT       d               Z eSdgd% ej                         d&k(  rd nd'(      dĄ        Z eSdgdCdFD      dƄ        Z eSdgdCd7D      dȄ        ZdɄ Z eSdgdCd%D      d˄        Z eSdgdCd%D      d̈́        Z eSdgdCd7dϬ      dЄ        Z eSdgdCd7D      d҄        Z eSdgdCd7D      dԄ        Z eSdgdFdCw      dք        Z eSdgdCd7D      d؄        Z eSdgdCd7D      dڄ        Z eSddgd%-      d܄        Zd݄ Zdބ Z eSdgd%-      d        Z eSdgd%-      d        Z eT       d        Z eT       d        Z eT       d        Z eT       d        Zd Zd Z eSdgd%-      d        Zd Zd Z eSdgd%-      d        Z eT       d        Z eT       d        Z eT       d        Z eT       d        Zd Zd Zd Zd Zd Zd Zd Zej                  j                  dF       eT       d               Zej                  j                  ddd ddgdfg dg dg d g d dfg dg dg dg ddfg dg ddg ddfg      d        Zd Zd Z eSdgdCd7D      d        Z eT       d	        Zd
 Zd Z eSdgdCd7D      d        Zd Z eSdgdCd7D      d        Z eSdgdCd7D      d        Z eSdgd%-      d        Zd Zd Zej                  j                  dejF                  j                  d d gg d      d        Zej                  j                  dg d fg gd fg g gdfg      d        Zej                  j                  ddejl                  j                  j                  fd ej                  jX                  j                  fd!ejl                  j                  j                  fg      d"        Zd# Zd$ Z eT       d%        Z eT       d&        Z eT       d'        Z  eT       d(        Zd) Zd* Zd+ Zd, Zd- Z eSd.gd%dCw      d/        Z eSd0gd%-      d1        Z eT       d2        Z	d3 Z
 eSd4gdCd%D      d5        Z eSd6gd% ej                         d&k(  rd nd7(      d8        Z eSd9d9gdCd%D      d:        Z eSd;gdCd%D      d<        Zd= Zej                  j                  d%      d>        Z G d? d@      Zd,ddAdBZ edCdD      Zej                  j                  dE e        edF ej(                  g dGg      H      f edIJ       edI ej(                  g dKg      H      f edIdFH       edI ej(                  g dKg      H      f edFL       edF ej(                  g dGg      H      f edFdMgL       edFdMg ej(                  g dGg dNg      H      fg      dO        Z[[ej                  j                  dP e       df edFJ      df edIA      dIf edIdMgA      dIdMgf edIQ      dIf edRA      dRf edSA      dSf edIdMT      dIf edFdIdMU      dIf edIL      dIf edIdMV      dMfg      dW        ZdX ZdYZdZd[d\gd]d^gfg d_g d`gg dag dbgfgZej                  j                  dce      dd        Zej                  j                  dce      de        Zdf Zdg Zdh Zdi Z dj Z!dk Z" eSdldlgd%-      dm        Z# eSdngdCd7D      do        Z$ eT       dp        Z%dq Z&dr Z'i ds i fdtZ( eSdugd[dvidF]      dw        Z) eSdxgd[dvidF]      dy        Z* eSdzgd[dvidF]      d{        Z+ eSd|gd[dvidF]      d}        Z, eSd~gdCd[dvidFd      d        Z- eSdgd[dvidF]      d        Z. eSdgdCd[dvidF      d        Z/ eSdgdCd[didF      d        Z0 eSdgdCd[dvidF      d        Z1 eSdgdCd[dvidF      d        Z2 eSdgdCd[dvidF      d        Z3 eSdgdCd[dvidF      d        Z4 eSdgdCd[dvidF      d        Z5 eSdgdCd[dvidF      d        Z6 eT       d        Z7 eSdgdCd[dvidF      d        Z8 eSdgdCd[dvidF      d        Z9 eSdgdCd[dvidF      d        Z: eSdgdCd[dvidF      d        Z; eSdgdCd[dvidF      d        Z< eSdgdCd[dvidF      d        Z= eSdgdCd[dvidF      d        Z> eSdgdCd[dvidF      d        Z? eSdgdCd[dvidF      d        Z@d ZAd ZB eSdgd[dvidF]      d        ZC eSdgd[dvidF]      d        ZDd ZE eSddgddF      d        ZF eT       d        ZG eSdgd[dvidF]      d        ZH eSdgdCdFD      d        ZI eSdgdCd[dvidF      d        ZJ eSddgdF-      d        ZKd ZL eSdgd[didCd dF      d        ZM eSdgdCd[dvidF      dÄ        ZN eSdgdCd[dvidF      dń        ZOdƄ ZPdǄ ZQdȄ ZRdɄ ZS eSdgdCd[dvidF      d˄        ZT eSd̐dgd%-      d̈́        ZU eSdgd%-      dτ        ZV eSdgd%-      dф        ZW eSdgd%-      dӄ        ZX eSdgd%-      dՄ        ZY eSdgd%-      dׄ        ZZ eSdgd%-      dل        Z[ eSdgd%-      dۄ        Z\ eSdgd%-      d݄        Z] eSdgd%-      d߄        Z^ eSdgd%-      d        Z_ eSdgd%-      d        Z` eSdgd%-      d        Za eSdgd%-      d        Zb eSdgdCd%D      d        Zcd Zdd Zed Zfd Zgd Zhd Zid Zjd Zkd Zld Zm eT       d        Znd Zod Zp eT       d        Zq eT       d        Zrd Zsd Ztd Zu eSg dd%-      d        Zv eSdgdCd7D      d        Zwd  Zx eT       d        Zyd Zz eSdgd%-      d        Z{d Z|d Z}d Z~d Z eT       d	        Zd
 Zd Zd Z eT       d        Zej                  j                  dg d ej(                  g d      d g      d        Zd Z eT       d        Z eT       d        Z eSddgd%-      d        Z eSdgd%-      d        Z eSdgdCd7D      d        Z eSdgd%-      d        Z eSdgd%-      d        Z eSdgd%dCw      d        Zd  Zd! Zd" Z eSd#gd%dCw      d$        Zd% Z eSd&gd%-      d'        Z eSd(gd%-      d)        Z eSd*gd%-      d+        Z eSd,gdCd7D      d-        Zd. Zd/ Zd0 Zd1 Z eSd2gd%-      d3        Zej                  j                  d4d5g d6id7g d6id8g d9id:g d;id<g d=id>g d6if       eT       d?               Zej                  j                  d@d!dIdAdMdBdAdMfd dIdAdMdBdCdMfd!dIdMdDdIdMfd dIdMdDdEdMfd!dIdAdFdAdGfd dIdAdFdCdIfd!dAdMdHdAdMfd dAdMdHdCdMfd!dIdIdIdGfd dIdIdEdIfd!dAdJdAdGfd dAdJdCdKfd!dMdLdKdMfd dMdLdMdMfdNd!idKdGfdNd idMdKfg      dO        ZdP ZdQ ZdR ZdS Z eSdTgdCd7D      dU        Z eSdVgdCd7D      dW        Z eSdXgdCd7D      dY        ZdZ Zd[ Z eSd\gdCd7D      d]        Z eSd^d^gdCd7D      d_        Z eSd`gdCd7D      da        Zej                  j                  dbg dc      dd        Zde Z eSdfgdCd7D      dg        Zdh Zej                  j                  dig gg d d ggd d gg gg      ej                  j                  djg dk      dl               Z eT       dm        Z eSdngdCd7D      do        Z eSdpgd% ej                         d&k(  rd ndq(      dr        Z eSdsgdCd7D      dt        Z eSdudvgd% ej                         d&k(  rd nd(      dw        Z eT       dx        Z eT       dy        Z eT       dz        Z eT       d{        Zd| Z eSg d}d%-      d~        Zd Z eSg dd%-      d        Zd Zej                  j                  did ddej|                  dgej0                  j                  g dd      g       eT       d               Z eSdgd%-      d        Z eSddgdCd7d      d        Z eSdgdCd7D      d        ZÐd Z eSg ddCddF      d        Z eSg ddCddF      d        Z eSg ddCddF      d        Zǐd Z eT       d        Zɐd Z eSg ddCd7d      d        Z eSg ddCd7D      d        Z̐d Z eT       d        Z eSdgdCd7 ej                         d&k(  rd nd      d        Z eSddgdCd7D      d        Zej                  j                  dg d      d        Zѐd ZҐd ZӐd Z eT       d        Zej                  j                  d%      d        Z֐d Zej                  j                  deAj                  eAj                  dgeAj                  eAj                  dgg      d        Zܐd Zݐd Zސd Zߐd Zd Zej                  j                  dedi dfedi dfed dgfi dfe e       ddidff      d        Zd Zej                  j                  d0d1      d        ZdÄ ZdĄ Zdń ZdƄ ZdǄ ZdȄ Z eSdgd%-      dʄ        Z eSg dˢd%-      d̄        Z eSdgd% ej                         d&k(  rd ndά(      dτ        Z eSdgd%-      dф        Z eSdgd%-      dӄ        Z eSdgd%-      dՄ        Z eSdgd%-      dׄ        Z eSdgd%-      dل        Z eSdgd%d(      dۄ        Zd܄ Zd݄ Zdބ Zd߄ Zd Zd Z eT       d        Z eT       d        Zd Zej                  j                  dddg      ej                  j                  dddCg      d               Z d Z eSdgd% ej                         d&k(  rd nd'(      d        Zd Z eT       d        Zd Zd Zd Zd Z eSdgd%-      d        Z	d Z
d Z eSdgd[did%]      d        Zd Zd Zd Zej                  j                  dedi dfedi dfe e       dd idfe e       dAd idfedd d d1dfeddd idfedi dff      d        Zd Zd Zd Zd Zd	 Zd
 Zd Zd Z eSdgd[dvid%]      d        Z eSdgd[dvid%]      d        Zd Zd Zd Zd Zej                  j                  ddej>                  j@                  fdej>                  j@                  f edd       edd      fej>                  j@                  fg dg dfej>                  jB                  fejD                  jE                  d      ejD                  jE                  d      fej                  jF                  fg      ej                  j                  di ejL                  d      jI                  d      ejD                  jK                  ddd      g      d               Z&d Z'd Z(d  Z)d! Z*d" Z+d# Z,ej                  j                  d4 e,             d$        Z- eSd%gdCd7D      d&        Z.d' Z/d( Z0ej                  j                  d)dCdg      d*        Z1 eSd+gdCd7d      d,        Z2 eSd-gdCd%d.      d/        Z3ej                  j                  dF      d0        Z4 ejj                  ddAg1      d2        Z6 ejj                  g d31      d4        Z7d5 Z8d6 Z9d7 Z:d8 Z;ej                  j                  dF      d9        Z<ej                  j                  dF      d:        Z=d; Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIdG ZJdH ZKdI ZLdJ ZMdK ZN eSdLgdCd7D      dM        ZOdN ZPdO ZQdP ZRdQ ZSej                  j                  dRg dSg dT      dU        ZTdV ZUdW ZVdX ZWdY ZXdZ ZYd[ ZZd\ Z[d] Z\d^ Z]d_ Z^ej                  j                  dF      d`        Z_da Z`db Zadc Zbej                  j                  ded ggddg idefed ggdfg idgfed ggdhg idifed ggdjg idkfed ggdlg idmfed gi dnfed ggddd dgidofed ggdfd dgidpfed ggdhd dgidqfed ggdjd dgidrfed ggdld dgidsfed ggdbd dgidtff      du        Zcdv Zddw Zeej                  j                  dxdydzg      ej                  j                  d{dydzg      d|               Zfd} Zg G d~ de*      Zhd Zid Zjd Zkd Zld Zmd Znd Zoej                  j                  d%       eT       d               Zpd Zq eT       d        Zr eT       d        Zsd Ztd Zud Zvd Zw eSdgdCd%D      d        Zxd Zyd Zzej                  j                  dddCg      ej                  j                  dddCg      d               Z{d Z|d Z}d Z~d Zd Zd Z eSdgd%dC ej                         d&k(  rd nd      d        Z G d deJj                        Z eSdgd% ej                         d&k(  rd nd(      d        Zd Zd Zd Zd Zd Zd Z eSdgdCd%D      d        Zd Zd Zd Zd Zd Zd Z eT       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dÄ ZdĄ Zej                  j                  dd1      ej                  j                  dƐdǫ      dȄ               Z eT       dɄ        Zej                  j                  dF      dʄ        Zd˄ Zd̄ Zd̈́ Zd΄ Zej                  j                  de1jX                  D cg c]  }|| c}g dТz         ej                  j                  dF      dф               Zd҄ Zdӄ Z eTdgԫ      dՄ        Z eT       dք        Zdׄ Zej                  j                  dg d٢      dڄ        Zdۄ Zd܄ Zd݄ Zdބ Zd߄ Zd Zd Z eSdgd%-      d        Zd Zd Zej                  j                  ddddj|                  g      d        Zd Zd Zd Zd ZÐd ZĐd ZŐd ZƐd Zej                  j                  dF      d        ZȐd Zɐd Zej                  j                  dd      ej                  j                  didd edd      ig      d               Zːd Z̐d Z͐d Zΐd Zϐd ZАd Zѐd ZҐd  Z eT       d        Z eSdgd%-      d        ZՐd Z֐d Zאd Zؐd Z eSdgdCd% ej                         d&k(  rd ndά      d	        Zej                  j                  dF      d
        Z eT       d        Zܐd Zݐd Zސd Zߐd Zd Z eSdgdF-      d        Z eT       ej                  j                  dd1      d               Zej                  j                  ej                  dd dk(  xr ej                  j                  dk7  d      d        Zd ZeW eT       d               Z eT       d        Z eT       d        Z eSdgd7 ej                         d&k(  rd nd(      d         Zd! Zd" Z eT       d#        Zd$ Zd% Zd& Zd' Zd( Zd) Zd* Zd+ Zyc c} w c c}w (-      N)
namedtupledeque)Decimal)partial)product)SimpleNamespace)ma)cycler)
rc_contextpatheffects)BarContainer)Figure)Axes)Line2D)PathCollection)
HammerAxes)	PolarAxes)assert_allcloseassert_array_equalassert_array_almost_equal)image_comparisoncheck_figures_equalremove_ticks_and_titles)needs_usetexc                 F    | j                         }|j                  d       y NF)subplotsset_visiblefig_testfig_refaxs      e/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_axes.pytest_invisible_axesr$   7   s    				BNN5    c                      t        j                         \  } }|j                  d       |j                  d       |j	                         dk(  sJ |j                         dk(  sJ y )Nzx labelzy label)pltr   
set_xlabel
set_ylabel
get_xlabel
get_ylabelfigr"   s     r#   test_get_labelsr.   =   sQ    llnGCMM)MM)==?i'''==?i'''r%   c                      t        j                         \  } }|j                  d       |j                  d       |j	                  d       |j                  d       t        |      dk(  sJ y )NlabeltitlexyzH<Axes: label='label', title={'center': 'title'}, xlabel='x', ylabel='y'>)r'   r   	set_label	set_titler(   r)   reprr,   s     r#   	test_reprr7   E   s`    llnGCLLLLMM#MM#8	LM M Mr%   c                    | j                         }|j                  ddgddgddgd      }|j                          |j                  dd       |j	                  dd	       | j                  |      }|j                  d
d       |j                         }|j                  ddgddgddgd      }|j                          |j                  ddd	       |j	                  ddd	       |j                  |      }|j                  d
dd	       y )N      scatter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   P   s    				B	QFQFq!fI	>BIIKMM)M'MM)M)R DNN9%N(				B	QFQFq!fI	>BIIKMM)qWM-MM)qWM-BDNN9gN.r%   c                 &   | j                         }|j                  ddgddgddgd      }|j                          |j                  dd       |j	                  dd	       | j                  |d
      }|j                  dd	       |j                         }|j                  ddgddgddgd      }|j                          |j                  ddd	       |j	                  ddd	       |j                  |d
      }|j                  ddd	       y )Nr9   r:   r;   r<   r>   bottomr@   rB   left
horizontalorientationrD   r   rE   rG   rH   rK   s        r#   test_label_loc_horizontalrU   c   s   				B	QFQFq!fI	>BIIKMM)M*MM)M(R\:DNN9&N)				B	QFQFq!fI	>BIIKMM)qVM,MM)qVM,BL9DNN9fN-r%   c                 t   t        j                  ddd      5  | j                         }|j                  ddgddgddgd      }|j	                          |j                  d       |j                  d	       | j                  |d
      }|j                  d       d d d        |j                         }|j                  ddgddgddgd      }|j	                          |j                  ddd       |j                  d	dd       |j                  |d
      }|j                  ddd       y # 1 sw Y   xY w)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   v   s'   			w7< > 
? " ZZAA1a&	ZB
		
i 
i    >y!" 
			B	QFQFq!fI	>BIIKMM)qWM-MM)qWM-BL9DNN9gN.!" "s   BD..D7c                  N   t        j                         \  } }|j                  dd       |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  j                  j                         dk(  sJ |j                  dd       |j                  j                  j                         dk(  sJ y )Nz
Test labelrQ   r@   centerrC   r?   rP   )r'   r   r(   xaxisr0   get_horizontalalignmentr)   yaxisr,   s     r#   test_label_shiftr^      sO   llnGC MM,FM+MM,HM-88>>113x???MM,GM,88>>113w>>>MM,HM-88>>113x??? MM,EM*MM,HM-88>>113x???MM,HM-88>>113v===MM,HM-88>>113x???r%   c                    t         j                  j                  d       d}t         j                  j                  dd|      j	                         }|dz
  }| j                         }|j                  ||       |j                         }t        j                  ||d      t        j                  ||      z  }t        j                  | |dz         }||dz
  |z
  ||z    }|j                  |dg|       |j                  ddd       y )	N!N,   r   r9   maxlagsfullmoder3   xminxmax)nprandomseednormalcumsumr   acorr	correlatedotarangevlinesaxhline	r    r!   Nxr2   rc   ax_testax_refnorm_auto_corrlagss	            r#   
test_acorrr{      s    IINN8	B
		Ar"))+AdG!GMM!WM%F\\!QV4RVVAq\AN99gXwqy)D#BqDLG<N
MM$^,
NNQQQN'r%   c                 x   t         j                  j                  d       d}t         j                  j                  |      dz  j	                         }t        j
                  |      j                  t         j                        }|dz
  }| j                         }|j                  ||       |j                         }t        j                  ||d      t        j                  ||      z  }t        j                  | |dz         }||dz
  |z
  ||z    }|j                  |dg|       |j                  ddd	       y )
Nr`   3   
   r9   rb   rd   re   r   rg   )rj   rk   rl   randrn   ceilastypeint64r   ro   rp   rq   rr   rs   rt   ru   s	            r#   test_acorr_integersr      s    IINN8	B		b	 ((*A	BHH%AdG!GMM!WM%F \\!QV4RVVAq\AN99gXwqy)D#BqDLG<N
MM$^,
NNQQQN'r%   c                     t         j                  j                  d       t        j                  d      }d|d d t         j                  j	                  |       |j                  d      }| j                  d      }|d   j                  |       |d   j                  |dd	
       |j                  d      }|d   j                  |dd       |d   j                  j                           |d   j                  g t        j                  |      d d d   dddi |d   j                  d|d   j                         |d   j                         d d d          |D ]  }|j                  j!                  d        y )Nr`   i   r   ra   )    r   r:   r9   .lower)markerorigingray_rnearest)cmapinterpolation
markersizer~   )aspectxlimylimboth)rj   rk   rl   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      sQ   IINN8
AAhwKIIa			(A  #HQKOOAQKOOAc'O2q!GAJahi@AJGAJOO=RZZ]4R4(=#="=AJNNwqz**,71:3F3F3H23N  P ,
##F+,r%   c                      t        j                         \  } }ddidddfD ]K  }t        j                  t              5   |j
                  t        j                  dd      fi | d d d        M y # 1 sw Y   XxY w)Nr   r   osolid)r   	linestyle   )r'   r   pytestraises	TypeErrorr   rj   eye)r-   r"   unsupported_kws      r#   test_spy_invalid_kwargsr      sv    llnGC+Y7&)@B 3]]9% 	3BFF266!Q<2>2	3 	33	3 	3s   (A00A9	c                 l   t         j                  j                  d       t        j                  j                  dd      }| j                         j                  |       |j                         }|j                  |       |j                  j                          |j                  j                  d       y )Nmpl20r   r   )mplstyleuserj   rk   r   add_subplotmatshowr   r[   r   r   )r    r!   r   rx   s       r#   test_matshowr      sy    IIMM'
		r2A""1%  "F
MM!
LL
LL##F+r%   r9      formatter_ticker_03dz.pngr   x86_64gQ?)r   tolc                     dd l mc m}  | j                          dt        j
                  d<   t        d      D cg c]  }|| j                  z   }}t        d      D cg c]  }d|z  dz
  | j                  z   }}t        d      D cg c]  }d|z  dz
  | j                  z   }}t        j                         j                         }|j                  d	       t        j                         j                         }|j                  d	       |j                  ||d
d       t        j                         j                         }|j                  d	       |j                  ||d
d       |j                  d       t        j                         j                         }|j                  ||d
d       |j                  ||dd       |j                  d       t        j                         j                         }|j                  ||d
d       |j                  ||dd       |j                  d       |j                          y c c}w c c}w c c}w )Nr      zlines.markeredgewidthr~         ?      ?      ?      ?zx-label 001bluesec)colorxunitszx-label 003greenhourzx-label 004zx-label 005)matplotlib.testing.jpl_unitstesting	jpl_unitsregisterrW   rcParamsranger   kmr'   figurer   r(   r   autoscale_view)unitsr2   xdatar3   ydata1ydata2r"   s          r#   test_formatter_tickerr      s    10	NN 46J/0 #(),QQuyy[,E,.3Bi8s1us{EHH$8F8/4Ry9!tAv|UXX%9F9				 BMM- 				 BMM- GGE6G6				 BMM- GGE6G6MM- 				 BGGE6G6GGE6G8MM-  
			 BGGE6G6GGE6G8MM- 7 -89s   II
Ic                     d } t        j                         j                         }|j                  j                  sJ |j                  j
                  sJ |j                  j                  sJ |j                  j
                  sJ |j                  j                  |        |j                  j                  rJ |j                  j
                  sJ |j                  j                  sJ |j                  j
                  sJ t        j                  |       }t        |j                  j                         t        j                        sJ |j                  j                         j                  |j                  k(  sJ y )Nc                      y)N  r2   poss     r#   	_formfuncz4test_funcformatter_auto_formatter.<locals>._formfunc  s    r%   )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     s,    
			 B88$$$$88$$$$88$$$$88$$$$HH  +xx((((88$$$$88$$$$88$$$$ ..y9bhh224++- - - 88'')..2D2I2IIIIr%   c                     d} t        j                         j                         }|j                  j                  sJ |j                  j
                  sJ |j                  j                  sJ |j                  j
                  sJ |j                  j                  |        |j                  j                  sJ |j                  j
                  sJ |j                  j                  sJ |j                  j
                  rJ t        j                  |       }t        |j                  j                         t        j                        sJ |j                  j                         j                  |j                  k(  sJ y )Nz	{x}_{pos})r'   r   r   r[   r   r   r]   set_minor_formatterr   StrMethodFormatterr   get_minor_formatterfmt)formstrr"   targ_strformatters      r#   &test_strmethodformatter_auto_formatterr   5  s*   G				 B88$$$$88$$$$88$$$$88$$$$HH  )88$$$$88$$$$88$$$$xx((((227;bhh224002 2 2 88'')--1B1F1FFFFr%   z!twin_axis_locators_formatters.png)r   c                  Z   t        j                  dddd      } t        j                  t         j                  | z  dz        }t	        j
                  |      }t	        j
                  g d      }t	        j                         }|j                  ddd      }|j                  d       |j                  dd	gddg       |j                  j                  |       |j                  j                  |       |j                  j                  t	        j                  d
             |j                  j                  t	        j                   g d             |j"                  j                  t	        j$                                |j"                  j                  t	        j
                  g d             |j"                  j                  t	        j                  d             |j"                  j                  t	        j                   g d             |j'                          |j)                          y )Nr   r9      T)numendpoint       @皙?皙?333333?r   d   z%08.2lf)tricksmindjedi)   #   7   K   z%05.2lf)r=   3pr   )rj   linspacesinpir'   FixedLocatorr   r   marginsr   r]   set_major_locatorset_minor_locatorr   FormatStrFormatterr   FixedFormatterr[   LinearLocatortwinytwinx)valslocsmajlminlr-   ax1s         r#   "test_twin_axis_locators_formattersr  N  s}   ;;q!T2D66"%%$,$%DD!DO,D
**,C
//!Q
"CKKNHHc3Z!Q II%II%II!!#"8"8"CDII!!#"4"4 6> #? @ II 1 1 34II 0 01A BCII!!#"8"8"CDII!!#"4"45I"JKIIKIIKr%   c                  B   t        j                         \  } }|j                         }|j                         }t        j                          |j
                  j                         rJ |j                  j                         rJ |j                          |j                          |j
                  j                         rJ |j                  j                         rJ |j                  j                         sJ |j
                  j                         sJ |j                  j                         rJ |j                  j                         rJ |j
                  j                         sJ |j                  j                         sJ |j                  j                         sJ y N)
r'   r   r  r  drawr[   get_visiblepatchclar]   )r-   r"   ax2ax3s       r#   test_twinx_clar  h  s4   llnGC
((*C
))+CHHJyy$$&&&yy$$&&&GGIGGIyy$$&&&yy$$&&&99  """99  """yy$$&&&yy$$&&&88!!!88!!!88!!!r%   twinr2   r3   c                 ^   |  d}d|  }ddg}ddg}t               }|j                         }|j                  ||       t        ||      j                  J  t        ||             }t        ||      j                  J t        ||      j                  t        ||      j                  u sJ y )Naxisr  01r   b)r   r   r   getattrr   )r  	axis_name	twin_funcr   r#  r-   r  r  s           r#   test_twin_unitsr'    s    &ItfI	c
A	c
A
(C
,,.CHHQN3	"((444
!'#y
!
#C3	"((4443	"((GC,C,I,IIIIr%   RQ?)r   c                 r   d| }d| d}t        j                  dd      }| j                  ddd      } t        ||             } t        ||      d       |j	                  ||       | j                  ddd      } t        ||      d        t        ||             }|j	                  ||       dD ]  }|j                  dd|      }	 t        |	|      d       |	j	                  ||       t
        j                  j                  }
|j                  t
        j                  j                   |
d	d	gd	dgd	dgddgddgdd	gdd	gd	d	gg|
j                  |
j                  gd
z        |	j                  dt        j                  d   t        j                  d   d              t!        |        t!        |       y )Nr  set_scaler9   r   r:   logr9   r:   r      nonezaxes.edgecoloraxes.linewidth
projecting)	transform	facecolor	edgecolor	linewidthcapstyle)rj   rr   r   r$  r   rW   pathPath
add_artistpatches	PathPatchMOVETOLINETO	transAxesr   r   r   )r    r!   r  r&  	set_scaler2   rw   ax_twinirx   r8  s              r#   test_twin_logscalerB    s    tfItfE"I
		!SA ""1a+G)ggy)+GGGY&LLA ""1a+GGGY&)ggy)+GLLA ($$Q1-"	"5)Aq ##((q!fq!f!fq!f!fq!f!fq!f& kk4;;/!3	5
 !** ,,'78,,'78% ) 
'	((* H%G$r%   ztwin_autoscale.png_classic_testg;On?c                     t        j                  g d      } d| z  }t        j                  g d      }d|z  }t        j                         }|j	                  ddd      }|j                  | |dd	
       t        j                  |      }|j                  ||dd       |j                  dd       |j                  dd       y )Nr   r   r9   r   r   r9   r:   r:   r   r   r9   r9   F)autoscalex_onautoscaley_onr   r~   r   lwr--r   rK  r   )rj   arrayr'   r   add_axesr   r  r  )r2   r3   x2y2r-   r"   r  s          r#   test_twinx_axis_scalesrR    s     	AaA	)	B	
RB
**,C	l%u	MBGGAq2G&
))B-CHHRUqH!JJq!KK1r%   c                     t        j                         \  } }|j                         }|j                  d       |j                         }|j	                         sJ |j	                         rJ |j                         }|j                  d       |j                         }|j                         sJ |j                         rJ y r   )r'   r   r  set_autoscalex_onget_autoscalex_onr  set_autoscaley_onget_autoscaley_on)r-   r"   ax_x_onax_x_offax_y_onax_y_offs         r#   #test_twin_inherit_autoscale_settingr\    s    llnGChhjGxxzH$$&&&))+++hhjGxxzH$$&&&))++++r%   c                    t        j                         \  }}|j                  g d        t        |d|               }t	        |j                  d      j                  |j                  d      j                         t	        |j                  d      j                  |j                  d      j                         y )Nr   r   r   r   r  ToriginalF)r'   r   set_positionr$  r   get_positionboundsr  r-   r"   r  s       r#   .test_twin_respects_position_after_set_positionre    s    llnGCOO()
$'"TFm
$
&CBOOTO299$$d$3::< BOOUO3::$$e$4;;=r%   c                     t        j                         \  }} t        |d|               }|j                         sJ |j                         sJ y )Nr  )r'   r   r$  get_in_layoutrd  s       r#   <test_twin_keeps_layout_participation_for_layout_managed_axesrh    sL    llnGC
$'"TFm
$
&Cr%   c                 0   t        j                  d      \  }}|j                  g d        t        |d|               }|j                  j                          t        |j                         j                  |j                         j                         y )NTconstrained_layoutr^  r  )	r'   r   ra  r$  canvasr  r   rb  rc  rd  s       r#   0test_twin_stays_aligned_after_constrained_layoutrm    sl    lld3GCOO()
$'"TFm
$
&CJJOOBOO%,,c.>.>.@.G.GHr%   c                  n   t        j                  d      } | j                         }|j                         rJ |j	                         rJ t
        j                  j                  d      }|j                  |       |j                         rJ |j	                         sJ |j                          t        j                  ddt
        j                  z  d      }|j                  |t        j                  |             |j                         rJ |j	                         rJ |j                          |j                  |       t        j                          |j                         rJ |j	                         sJ | j                  D ]  }|j                           t        j                   d      }t        j                   d|      }|j"                  j%                  d       |j	                         sJ |j                  |t        j                  |             |j                          |j	                         rJ |j                          |j                  |       |j                  |t        j                  |             |j                          |j	                         sJ t        j&                  |        y )	Nr   )r   r   r:   r         shareyT)r'   r   gcaxaxis_invertedyaxis_invertedrj   rk   r   r  r  r  r   cos	autoscaleaxesremovesubplotr]   set_invertedclose)r-   r"   imgr2   ax0r  s         r#   test_inverted_clar    s    **Q-C	B  """  """
))

:
&CIIcN  """ FFH
Aqw$AGGArvvay  """  """ FFHIIcNMMO  """hh 
		
 ++c
C
++c#
&CII4 HHQq	GGI!!###GGIJJsOHHQq	GGI IIcNr%   c                    	 t        j                  t        d      5   G 	fddt              } d d d        t        j                  t        d      5   G 	fddt              }d d d         G d d       } G 	fd	d
t              } G 	fddt              } G d d|      }t	               }| ||||fD ])  }d	 ||g d      }	sJ d	|j                          	r)J  y # 1 sw Y   xY w# 1 sw Y   xY w)NzOverriding `Axes.cla`matchc                       e Zd Z fdZy)(test_subclass_clear_cla.<locals>.ClaAxesc                 
    dy NTr   selfcalleds    r#   r  z,test_subclass_clear_cla.<locals>.ClaAxes.cla@  s    r%   N)__name__
__module____qualname__r  r  s   r#   ClaAxesr  ?  s    r%   r  c                   "     e Zd Z fdZ xZS )-test_subclass_clear_cla.<locals>.ClaSuperAxesc                 &    dt         |           y r  )superr  r  	__class__r  s    r#   r  z1test_subclass_clear_cla.<locals>.ClaSuperAxes.claG  s    r%   )r  r  r  r  __classcell__r  r  s   @r#   ClaSuperAxesr  F  s     r%   r  c                       e Zd Zy)+test_subclass_clear_cla.<locals>.SubClaAxesNr  r  r  r   r%   r#   
SubClaAxesr  L      r%   r  c                       e Zd Z fdZy)*test_subclass_clear_cla.<locals>.ClearAxesc                 
    dy r  r   r  s    r#   clearz0test_subclass_clear_cla.<locals>.ClearAxes.clearP  s    Fr%   N)r  r  r  r  r  s   r#   	ClearAxesr  O  s    	r%   r  c                   "     e Zd Z fdZ xZS )/test_subclass_clear_cla.<locals>.ClearSuperAxesc                 &    dt         |           y r  )r  r  r  s    r#   r  z5test_subclass_clear_cla.<locals>.ClearSuperAxes.clearU  s    FGMOr%   )r  r  r  r  r  r  s   @r#   ClearSuperAxesr  T  s    	 	r%   r  c                       e Zd Zy)-test_subclass_clear_cla.<locals>.SubClearAxesNr  r   r%   r#   SubClearAxesr  Z  r  r%   r  FrG  )r   warnsPendingDeprecationWarningr   r   r  )
r  r  r  r  r  r  r-   
axes_classr"   r  s
            @r#   test_subclass_clear_clar  8  s    
 
/3
5 	d 	 
/3
5 	4 	W D 
 y  (Cj .,@ 

\* v
v
C  s   C#C/#C,/C8c                  t    t        j                         D ]!  } d| j                  vsd| j                  vr!J  y )Nr  r  )r   __subclasses__r  __dict__)klasss    r#   !test_cla_not_redefined_internallyr  k  s<    $$& / %E,>,>>...	/r%   c                    t        j                  ddd      5  | j                         }|j                  ddgddg       d d d        |j                         }|j                  ddgddg       |j	                          y # 1 sw Y   @xY w)NT)zxtick.minor.visiblezytick.minor.visibler   r9   )rW   r   r   r   minorticks_onr    r!   rw   rx   s       r#    test_minorticks_on_rcParams_bothr  s  s    			t7; = 
> %##%aVaV$% F
KKAA
% %s   'A??Bzautoscale_tiny_range.pngTremove_textr   c                      t        j                  dd      \  } }t        |j                        D ]&  \  }}dd|z
  z  }|j	                  ddgdd|z   g       ( y )Nr:   r~   ir   r9   )r'   r   	enumerateflatr   )r-   axsrA  r"   y1s        r#   test_autoscale_tiny_ranger  ~  s[     ||Aq!HC388$ %2#']
AAF$%r%   defaultc                  x   t        j                  dd      \  } }|j                  g d       |j                  ddd       |j                  ddd       t	        |j                         d       t	        |j                         d	       |j                         sJ |j                         sJ |j                         sJ |j                  d 
       t	        |j                         d       t	        |j                         d	       |j                         sJ |j                         sJ |j                         sJ y )Nr9   r9   r:   r   r.  Tr2   F)enabler   tightr3   )g333333ÿg333333	@)r         @)r  )
r'   r   r   rw  r   r   r   rU  rW  get_autoscale_onr,   s     r#   test_autoscale_tightr    s   ll1a GCGGLLL3eL4LL3dL3BKKM=1BKKM:. !!!!!!   LLLBKKM=1BKKM:.!!!!!!   r%   c                  "   t        j                  dt              } t        j                  ddd      \  }\  }}|j                  | |        |j                  | |        |j                  d       |j                  d       t        j                          | d   | d   f}t        |j                         |       t        |j                         |       t        |j                         |       t        |j                         | d	   | d   f       y )
Nr   dtyper:   r9   Tsharex)r  r   r   )rj   rr   floatr'   r   loglogsemilogxrw  r  r   r   r   )r2   r-   r  r  limss        r#   test_autoscale_log_sharedr    s     			#U#All1a5OC#sJJq!LLAMMMMMMHHJaD!B%=DCLLND)CLLND)CLLND)CLLNQqT1R5M2r%   c                     t        j                         \  } }|j                  ddgddggd       t        |j	                         d       t        |j                         d       d|_        |j                          d	d|j                  z  z
  d
d|j                  z  z   f}d	d|j                  z  z
  d
d|j                  z  z   f}t        |j	                         |       t        |j                         |       d|_        |j                          t        |j	                         d       t        |j                         d       y )Nr   r9   r:   r   r   r   )      r   Fr  r   T)
r'   r   r   r   r   r   use_sticky_edgesrw  _xmargin_ymargin)r-   r"   r   r   s       r#   test_use_sticky_edgesr    s    llnGCII1v1vwI/BKKM;/BKKM;/BLLN1r{{?"C!bkk/$9:D1r{{?"C!bkk/$9:DBKKM4(BKKM4(BLLNBKKM;/BKKM;/r%   c                 "   t        j                  d      j                  dd      }| j                  d      }| j                  d|      }|j	                  |       |j                  d      }|j                  d|      }|j	                  |       y )Nr   r   r   ro  rp  r  )rj   rr   r   r   
pcolormesh)r    r!   Zr~  r  s        r#   test_sticky_shared_axesr    s     			"a#A


s
#C


s3

/CNN1


c
"C


c#

.CNN1r%   zsticky_tolerance.pngc                  R   t        j                  dd      \  } }d}|j                  d   j                  d|d       |j                  d   j                  d|d       |j                  d   j                  d| d       |j                  d   j                  d| d       |j                  d   j	                  d| d	       |j                  d   j	                  d| d
	       |j                  d   j	                  d|d	       |j                  d   j	                  d|d
	       y )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HHQKOOagO6HHQKOOagO6HHQKOOawO7HHQKOOawO7HHQKqX6HHQKqX6HHQKqH5HHQKqH5r%   zsticky_tolerance_cf.pngc                  t    t        j                         \  } }ddgx}}ddgddgg}|j                  |||       y )NgGZP@g    `P@r   r9   r:   r   )r'   r   contourf)r-   r"   r2   r3   datas        r#   test_sticky_tolerance_contourfr    sB    llnGCx  AFQFDKK1dr%   c                      t        j                  t        d      5  t        j                          d d d        y # 1 sw Y   y xY w)Nz0 were givenr  )r   r   r   r'   stemr   r%   r#   test_nargs_stemr    s.    	y	7 
  s	   :Ac                      t        j                  t        d      5  t        j                         } | j                  dgdgd       d d d        y # 1 sw Y   y xY w)Nz3 were givenr  FirstSecondr   )r   r   r   r'   rz  rI   r"   s    r#   test_nargs_legendr    sD    	y	7 ,[[]
		7)hZ+, , ,   *AAc                      t        j                  t        d      5  t        j                         } | j                  ddgg dg dg       d d d        y # 1 sw Y   y xY w)Nz2 were givenr  r   r9   r   r:   r9   r:   r   )r   r   r   r'   rz  
pcolorfastr  s    r#   test_nargs_pcolorfastr    sN    	y	7 @[[] 	vv&I(>?@ @ @s   /AAoffset_pointsc                  .   t        j                  ddd      } t        j                  dt         j                  z  | z        }t	        j
                         }|j                  ddd      }|j                  | |d	d
      \  }|j                  ddddd       y )N              @{Gz?r   F)r   r   r   )autoscale_onr   r   r   purplerK  r   z	local maxr   r9   r  r   r   zoffset points)xyxycoordsxytext
textcoords)	rj   rr   rv  r  r'   r   r   r   annotate)tsr-   r"   lines        r#   test_basic_annotater    s     			#sD!A
s255y1}A **,C	e'	HBGGAqQhG/EDKK/  ;r%   zarrow_simple.pngc                     d} d}d}t        | ||      }t        j                  dd      \  }}t        t	        |j
                  |            D ]  \  }\  }}|j                  dd       |j                  dd       |\  } }}dt        j                  z  |z  dz  }	|j                  ddt        j                  |	      t        j                  |	      |	d	z  | |||	d
z  |	d
z  
        y )N)TF)rd   rQ   rC   r   r.  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_ylimrj   r  arrowr  rv  )
r  r  r  kwargsr-   r  rA  r"   kwargthetas
             r#   test_arrow_simpler    s     )%E')52EFF||Aq!HC#C&$9: );B
B
B=B:	u&9BEE	A"
Arvve}bffUmSy&:%8!BJ"RZ 	 	))r%   c                  ^    t        j                         \  } }|j                  ddddd       y )Nr   )r  )r'   r   r  _r"   s     r#   test_arrow_emptyr  1  s'    LLNEArHHQ1aQH'r%   c                      t        j                         \  } }|j                  dddd       |j                         dk(  sJ |j	                         dk(  sJ y )Nr9   )皙?皙@)r'   r   r  r   r   r  s     r#   test_arrow_in_viewr   7  sK    LLNEArHHQ1a;;=J&&&;;=J&&&r%   c                      t        j                         \  } }|j                  ddd      }|j                  J |j                  dddi       }|j                  J y )Nfoor  r:   r   )r  )r  
arrowprops)r'   r   r  arrow_patch)r-   r"   anns      r#   test_annotate_default_arrowr'  >  s[    llnGC
++eVF+
3C??"""
++eVFr+
BC??&&&r%   c                     t        j                         \  } }t        j                  |j                        j
                  }t        j                  t        j                        j
                  }t        |j                               t        |j                               k(  sJ t        |j                         |j                               D ]  \  }}||k(  rJ  y)z?Check that the signature of Axes.annotate() matches Annotation.N)r'   r   inspect	signaturer  
parametersmtext
Annotationlistkeysr  values)r-   r"   annotate_paramsannotation_paramsp1p2s         r#   test_annotate_signaturer5  G  s    llnGC''4??O))%*:*:;FF$$&'40A0F0F0H+IIIIo,,.0A0H0H0JK BRxxr%   zfill_units.pngdpi<   )savefig_kwargr   c                     dd l mc m}  | j                          | j	                  dt        j
                  ddd            }d| j                  z  }| j                  dd      }t        j                  d	d
d      }t        j                  |      }t        j                  dd      \  }\  \  }}\  }	}
|j                  |g|gdd       g d}|j                  ||   g dd       |j                  |g|gdd       |j                  ||||z   ||z   gg dd       |	j                  |g|gdd       |	j                  ||   d| j                  z  d| j                  z  d| j                  z  d| j                  z  gd       |
j                  |g|gdd       |
j                  ||||z   ||z   gd| j                  z  d| j                  z  d| j                  z  d| j                  z  gd       |j!                          y )Nr   ET  r.     dt      $@g     @z
2009-04-27z
2009-04-29datetime64[D]r  r:   degred)yunitsr   rG  )r  r  g     V@r  r#  Z   r   r3  )r   r   r   r   EpochdatetimerA  Durationrj   rr   mdatesdate2numr'   r   r   fillautofmt_xdate)r   r  valuedayr>  dtnr-   r  r  r  ax4inds               r#   test_fill_unitsrR  Q  s   00	NN 	DX..tQ;<A599E
..1
2C	<_	EB
//"
C$'LLA$6!C	!*3jsCHHaS5'%uH5
CHHSX,c2HHaS5'%uH5HHaAGQW%"C) HHaS5'%uH5HHSX%))mQ]BNA		MJ HHaS5'%uH5HHaAGQW%%))mQ]BNA		MJ   r%   c                     t        j                  t        d      5  t        j                  dgdgdd       d d d        t        j                  t        d      5  t        j                  dgdgdd	
       d d d        t        j                  t        d      5  t        j                  dgdgdd       d d d        t        j
                  dgdgdd       y # 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   =xY w)Nzmarker .* redundantly definedr  r   r   r2   r   z linestyle .* redundantly defined---r   zcolor .* redundantly definedrr   r   r/  )r   r   )r   r  UserWarningr'   r   errorbarr   r%   r#    test_plot_format_kwarg_redundantr\  s  s    	k)H	I ,!qc3s+,	k)K	L 0!qc3$/0	k)G	H .!qc3f-. LL!qcvV4, ,0 0. .s#   CC&C2C#&C/2C;c                    g d}t        j                  |      }|j                         }| j                         }|j                  ||t        j                  |      t        j                  |            ^}}|j                  ddg       |j                  ||t        j                  |      t        j                  |      ddg       y )Nr  xerryerrr:   )r_  r`  dashes)rj   r  rs  r[  abs
set_dashes)r    r!   r2   r3   rx   rw   r  r  s           r#   test_errorbar_dashesrd  ~  s    A
q	A[[]FllnGq!"&&)"&&)DHD1OOQFQq	q	1a&Ir%   c                      t        d      D  ci c]  } | |  }} t        j                         \  }}|j                  |j	                         |j                         |j                                y c c} w )Nr~   r2   r3   r_  )r   r'   r   r[  r/  r0  )iiDr-   r"   s       r#   test_errorbar_mapview_kwargri    sU    )$BR$A$llnGCKK!&&(ahhjqxxzK: 	%s   
A0single_pointc                  r   dt         j                  d<   dt         j                  d<   t        j                  d      \  } \  }}|j	                  dgdgd       |j	                  dgdgd       dgdgd}t        j                  d      \  } \  }}|j	                  d	d	d|
       |j	                  ddd|
       y )Nr   lines.markerT	axes.gridr:   r   r9   r   r#  r   r  r#  )rW   r   r'   r   r   )r-   r  r  r  s       r#   test_single_pointrp    s     +.J''+J$ll1oOC#sHHaS1#sHHaS1#s A3Dll1oOC#sHHS#sH&HHS#sH&r%   c                    t        j                  d      j                  d      }t        j                  ddd      j                  d      }| j                  d      }|d   j	                  |       |d   j	                  |       |j                  d      }|d   j                  dd	
       |d   j	                  |j                                y )Nr~   r9   r   r   r   r   r9   r:   r9   gQQ?)r   	   r   r   )rj   rr   r   r   r   r   ravel)r    r!   rowcolr  s        r#   test_shaped_datar{    s    
))B-


(C
))AsB

'
'
0C


A
CFKKFKK


1
CFJJKfJ-FKK		r%   c                      t        j                  ddgdt        fdt        fg      } t        j                         j                  d      }|d   j                  dd|        |d	   j                  ddd
|        y )Nr9   r9   r:   r:   r   twosr  r:   r   ro  r9   rX  )rj   rN  r  r'   r   r   r   )ptsr  s     r#   test_structured_datar    sj    
((FF#VUOfe_+M
NC **,


"CFKKSK)FKK#K.r%   zaitoff_proj.pngc                     t        j                  t         j                   t         j                  d      } t        j                  t         j                   dz  t         j                  dz  d      }t        j                  | |      \  }}t	        j
                  dt        d            \  }}|j                          |j                  |j                  |j                  dd	       y
)z^
    Test aitoff projection ref.:
    https://github.com/matplotlib/matplotlib/pull/14451
       r:   )   @aitoff
projection)figsize
subplot_kwr   r.  )r   N)
rj   r  r  meshgridr'   r   dictgridr   r  )r2   r3   XYr-   r"   s         r#   test_aitoff_projr    s     	RUUFBEE2&A
RUUFQJ	2.A;;q!DAqll8&*h&?AGCGGIGGAFFAFFCAG.r%   zaxvspan_epoch.pngc                     dd l mc m}  | j                          | j	                  dt        j
                  ddd            }| j	                  dt        j
                  ddd            }| j                  d| j                  j                  d            }t        j                         }|j                  ||d	d
       |j                  |d|z  z
  |d|z  z          y Nr   r:  r;  r9      r=     r   r         ?)r3  alphar  )r   r   r   r   rF  rG  rH  rN  convertr'   rs  axvspanr  r   t0tfr>  r"   s        r#   test_axvspan_epochr        00	NN 
Th//a<	=B	Th//a<	=B	eii//6	7B	BJJr2tJ4KKSVR#b&[)r%   zaxhspan_epoch.pngc                     dd l mc m}  | j                          | j	                  dt        j
                  ddd            }| j	                  dt        j
                  ddd            }| j                  d| j                  j                  d            }t        j                         }|j                  ||d	d
       |j                  |d|z  z
  |d|z  z          y r  )r   r   r   r   rF  rG  rH  rN  r  r'   rs  axhspanr  r  s        r#   test_axhspan_epochr    r  r%   zhexbin_extent.pngc                     t        j                         \  } }t        j                  d      dz  j	                  d      }|\  }}|j                  ||g d       ||d}t        j                         \  } }|j                  ddg d|       y )	N  )r:     r   r   333333?ffffff?extentr  r2   r3   )r  r  )r'   r   rj   rr   r   hexbinr-   r"   r  r2   r3   s        r#   test_hexbin_extentr    s|     llnGCIIdOd"++I6DDAqIIa+I, DllnGCIIc3/dI;r%   c                     t        j                         \  } }t        j                  d      dz  j	                  d      }|\  }}t        j                  t        d      5  |j                  ||d       d d d        t        j                  t        d      5  |j                  ||d       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)	Nr  )r:   r~   z)In extent, xmax must be greater than xminr  r9   r   r   r9   r  z)In extent, ymax must be greater than ymin)r   r9   r9   r   )	r'   r   rj   rr   r   r   r   
ValueErrorr  r  s        r#   test_hexbin_bad_extentsr    s    llnGCIIbMB''0DDAq	z)T	U -
		!Q|	,- 
z)T	U -
		!Q|	,- -- -- -s   B5C5B>C
c                     t        j                         \  } }|j                  t        j                  j                  d      t        j                  j                  d      ddd      }t        |t        j                  j                        sJ t        |j                  t        j                  j                        sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ y )Nr~   r,  r:   r   normvminvmax)r'   r   r  rj   rk   r   r   rW   collectionsPolyCollectionr  colorsLogNormr  r  )r-   r"   hexs      r#   test_hexbin_string_normr    s    llnGC
))BIINN2&		r(:QUV)
WCc:11@@AAAchh
 1 1 9 9:::88==A88==Ar%   zhexbin_empty.pngc                     t        j                         \  } }|j                  g g        |j                  g g d       |j                  g g g t        j                         |j                  g g t        j
                  d             y )Nr,  bins)Creduce_C_functionr~   )r'   r   r  rj   maxrr   r,   s     r#   test_hexbin_emptyr    sg     llnGCIIb" IIb"5I!IIb"bffI5IIb"299R=I)r%   c                      t        j                         \  } }t        j                  d      dz  j	                  d      }|\  }}|j                  ||g dd      }t        dd      }|j                  |      d	   sJ y )
N   r:   r   r  r   )r  picker  ,  r  r   )r'   r   rj   rr   r   r  r   contains)r-   r"   r  r2   r3   hbmouse_events          r#   test_hexbin_pickabler    sq    llnGCIIcNS ))(3DDAq	1a 0	<B!C3/K;;{#A&&&r%   zhexbin_log.pngc                     t         j                  j                  d       d} t         j                  j                  |       }dd|z  z   dt         j                  j                  |       z  z   }t        j                  d|dz        }t        j                         \  }}|j                  ||ddd	t         j                  
      }t        j                  |       |j                         j                  dk(  sJ y )Nr`   順 r         @r  r:   r   r,  T)yscaler  	marginalsr  )i&-  r:   )rj   rk   rl   standard_normalpowerr'   r   r  sumrJ   get_offsetsr  )nr2   r3   r-   r"   hs         r#   test_hexbin_logr  )  s     IINN8A
		!!!$AcAgbii77:::A
AGAllnGC
		!Qu5 BFF 	 	<ALLO ==?  J...r%   c                  >   t        j                  ddd      } t        j                         \  }}|j	                  | | ddd      }t         j
                  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             y )
Nr9   r     r,  r:   )xscaler  gridsizer   r   r   )	rj   	geomspacer'   r   r  r   assert_almost_equalr  rN  )r2   r-   r"   r  s       r#   test_hexbin_log_offsetsr  <  s    
QS!AllnGC
		!QuUQ	?AJJ""	
VVVVVV1X1X	
r%   zhexbin_linear.pngr   r  c                  P   t         j                  j                  d       d} t         j                  j                  |       }dd|z  z   dt         j                  j                  |       z  z   }t	        j
                         \  }}|j                  ||ddt         j                         y )	Nr`   r  r   r  r  r~   r   T)r  r  r  )rj   rk   rl   r  r'   r   r  r  )r  r2   r3   r-   r"   s        r#   test_hexbin_linearr  N  s     IINN8A
		!!!$AcAgbii77:::AllnGCIIaW "  (r%   c                      t        j                  d      j                  d      \  } }t        j                         \  }}|j                  | |ddd      }|j                         dk(  sJ y )Nr  r  r,  r:   r   )r  r  r  )rj   rr   r   r'   r   r  get_clim)r2   r3   r-   r"   r  s        r#   test_hexbin_log_climr  [  sY    99S>!!(+DAqllnGC
		!QU	5A::<8###r%   c           	      H   g d}t        | \  }}dgt        |      z  }g d}d}| j                         }|j                         }	|	j                  ||||d       |	j	                  d       |j                  ||dgt        |      z  d d||       |j	                  d       y )	N)r   r   r  )r   r   )r   r   r9   )      $r~   r  r~   )   r  )r  r  mincntr   c                     t        |       S r  )r  )vs    r#   <lambda>z>test_hexbin_mincnt_behavior_upon_C_parameter.<locals>.<lambda>  s
    CF r%   )r  r  r  r  r  )r  lenr   r  set_facecolor)
r    r!   
datapointsr  r  r  r  r  rw   rx   s
             r#   ,test_hexbin_mincnt_behavior_upon_C_parameterr  b  s    J 
DAq	
c!fA!FH!GF MM	1	   ! NN	1#A,*   '"r%   c                  f   t        j                         \  } }|j                          |j                  g dg d       |j	                         dk(  sJ |j                         dk(  sJ t        j                          t        j                         \  } }|j                          |j                  g dg d       |j	                         dk(  sJ |j                         dk(  sJ t        j                         \  } }|j                  d       |j                  dd	       |j                         d
k(  sJ y )N)r  r:   r.  )r9   r:   r  r   )r.  r  r  )r  r.  )r   r  r,  r~   r9   )r~   r9   )
r'   r   invert_xaxisr   r   r   r|  invert_yaxis
set_yscaler  r,   s     r#   test_inverted_limitsr    s     llnGCOOGGNM*;;=G###;;=G###IIKllnGCOOGGNM*;;=G###;;=G### llnGCMM%KKA;;=G###r%   nonfinite_limitsc                  ^   t        j                  dt         j                  d      } t        j                  d      5  t        j                  |       }d d d        t         j
                  | t        |       dz  <   t        j                         \  }}|j                  |        y # 1 sw Y   RxY w)Nr  r  ignoredivider:   )
rj   rr   eerrstater,  nanr  r'   r   r   r2   r3   r-   r"   s       r#   test_nonfinite_limitsr    sw    
		"bddD!A	H	% FF1I66Ac!faiLllnGCGGAqM	 s   B##B,plot_fun)r;   r   fill_betweenc           	          t        j                  ddd      }|j                         }|j                         } t        ||       g g        ||fD ])  } t        ||       |t	        t        |            d       + y )Nz
2010-01-01z
2011-01-01r@  r  C0rY  )rj   rr   r   r$  r   r  )r  r    r!   r2   rw   rx   r"   s          r#   test_limits_empty_datar    sv     			,ODA!GFGGXr2& <Has1vd;<r%   r   c                  v   dt         j                  d<   d} t        j                  | | f      \  }}|| dz  z  }|| dz  z  }t        j                  |dz  |dz  z   ||z  z
        }t        j                         \  }}|j                  |       d|i}t        j                         \  }}|j                  d|       y )Nr   image.interpolationr   r:   rX  ro  )rW   r   rj   indicessqrtr'   r   r   )Nr2   r3   rX  r-   r"   r  s          r#   test_imshowr    s     2;J-.AZZAFQAIAAIA
1QT	!A#A llnGCIIaL 8DllnGCIIcIr%   imshow_clipgףp=
?c                     dt         j                  d<   d} t        j                  | | f      \  }}|| dz  z  }|| dz  z  }t        j                  |dz  |dz  z   ||z  z
        }t        j                         \  }}|j                  || dz  g      }t        j                  |j                         d   |j                               }|j                  ||       y )Nr   r  r   r:   r.  r   )	clip_path)rW   r   rj   r	  r
  r'   r   contourmtransformsTransformedPath	get_pathsget_transformr   )r  r2   r3   rX  r-   r"   r=   r  s           r#   test_imshow_clipr    s    
 2;J-. 	AZZAFQAIAAIA
1QT	!A#A llnGC


1qseA++AKKM!,<aoo>OPI IIa9I%r%   c                      ddgddgg} t        j                         }t        j                  t        d      5  |j                  | t        j                  dd      d	d
       ddd       y# 1 sw Y   yxY w)4Parameters vmin, vmax should error if norm is given.r9   r:   r   r.  LPassing a Normalize instance simultaneously with vmin/vmax is not supported.r  r~   r   r   r  N)r'   rx  r   r   r  r   mcolors	Normalize)r   r"   s     r#   test_imshow_norm_vminvmaxr    sp    
Q!QA	B	z@
A F 			!'++C411	EF F Fs   *A++A4polycollection_joinstylec                  "   t        j                         \  } }t        j                  ddgddgddgddgg      }t        j
                  j                  |gd      }|j                  |       |j                  dd       |j                  dd       y )Nr9   r:   (   )
linewidthsr   r   )
r'   r   rj   rN  r   r  r  add_collection
set_xbound
set_ybound)r-   r"   vertsr=   s       r#   test_polycollection_joinstyler%    s     llnGCHHq!fq!fq!fq!f56E&&w2&>AaMM!QMM!Qr%   z	x, y1, y2r~  r   r  r:   {Gz?)
2d_x_input2d_y1_input2d_y2_input)idsc                     t        j                         \  }}t        j                  t              5  |j                  | ||       d d d        y # 1 sw Y   y xY wr  )r'   r   r   r   r  r  r2   r  rQ  r-   r"   s        r#   test_fill_between_inputr-    sD     llnGC	z	" #
2r"# # #   AAz	y, x1, x2)
2d_y_input2d_x1_input2d_x2_inputc                     t        j                         \  }}t        j                  t              5  |j                  | ||       d d d        y # 1 sw Y   y xY wr  )r'   r   r   r   r  fill_betweenx)r3   x1rP  r-   r"   s        r#   test_fill_betweenx_inputr5    sF     llnGC	z	" $
B#$ $ $r.  zfill_between_interpolate.pngg~jt?)r  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      \  }\  }}|j                  | || |d	
       |j                  | ||||k\  ddd       |j                  | ||||k  dd       t         j                  j                  |d      }t         j                  j                  |d<   |j                  | || |d	
       |j                  | ||||k\  dd       |j                  | ||||k  dd       y )Nr  r:   r&  333333?r.  r9   Tr  blackrY  white/)wherer3  hatchinterpolaterB  )r;  r3  r=  r   r   r   )rj   rr   r  r  r'   r   r   r  r	   masked_greatermasked)r2   r  rQ  r-   r  r  s         r#   test_fill_between_interpolater@  #  sP    			#q$A	"%%		B	RVVAbeeGAI	Bll1a5OC#sHHQArH)QBbBh'!%  'QBbBh%!%  ' 
		b#	&BEELLBqEHHQArH)QBbBh'!%  'QBbBh%!%  'r%   z'fill_between_interpolate_decreasing.pngc            	         t        j                  g d      } t        j                  g d      }t        j                  g d      }t        j                  d      \  }}|j	                  || d       |j	                  || d       |j                  | ||||k  dd	d
       |j                  | ||||kD  dd	d
       |j                  dd       |j                  dd       y )N)gfffff@i  i  )g"@r  r  )g@gffffff@gffffff@)rv  rv  r  ztab:redkr   T皙?r;  r3  r=  r  rB  r   r      X  )rj   rN  r'   r   r   r3  r  r  )r  r  profr-   r"   s        r#   (test_fill_between_interpolate_decreasingrI  =  s     	"#A
A88O$Dll6*GCGGAq)GGD!SQ4tax%4s  DQ4tax$$c  C KK2KKSr%   z fill_between_interpolate_nan.pngc                     t        j                  d      } t        j                  ddt         j                  dddddddg
      }t        j                  ddddddddt         j                  t         j                  g
      }t	        j
                         \  }}|j                  | |d	
       |j                  | |d
       |j                  | ||||k\  ddd       |j                  | ||||k\  ddd       y )Nr~   r              r   r   rC  r=   r#  r   Tr   rE  rB  )rj   rr   asarrayr  r'   r   r   r  r,  s        r#   !test_fill_between_interpolate_nanrQ  R  s     			"A	QBFFB2r2q"=	>B	RQBBBFFBFFC	DBllnGCGGArSGGGArSGOOAr2R2X $C  1OOAr2R2X $C  1r%   z
symlog.pdfc                     t        j                  g d      } t        j                  g d      }t        j                         \  }}|j	                  | |       |j                  d       |j                  d       |j                  dd       y )N)r   r9   r:   r.  r   rv  r  rL  )i@B i  r  r   r   r   r   r   symloglinearr   i )rj   rN  r'   r   r   r  
set_xscaler  r   s       r#   test_symlogrV  g  sb    
+,A
;<AllnGCGGAqMMM(MM(KKHr%   zsymlog2.pdfc                  &   t        j                  ddd      } t        j                  dd      \  }}t	        |g d      D ];  \  }}|j                  | |        |j                  d|       |j                  d	       = |d
   j                  dd       y )N2   MbP?r   r9   )      4@r   r   r   r  rS  )	linthreshTr   皙r   )	rj   rr   r'   r   r  r   rU  r  r  )r2   r-   r  r"   r\  s        r#   test_symlog2r^  s  s     			#r5!A||Aq!HCS":; I
1
h)4
 GT3r%   c            
      j   g d} g d}t        j                  | |      \  }}t        j                  ||      }t        j                  |       t        j                  t        |             t        j                  | ||d dd df          t        j                  ||t        |d dd df                y )N)            r  r  r   r   r   )r`  g      ra        r        пr   r  r         ?r         ?r   r   )rj   r  hypotr'   pcolorr.  )r2   r3   r  r  r  s        r#   test_pcolorargs_5205rh    s    .A	*A;;q!DAq
AAJJqMJJtAwJJq!QssCRCx[!JJq!T!CRC"H+&'r%   r  aarch64)\(?c                  d   dt         j                  d<   d} t        j                  dd|       }t        j                  dd| dz        }t        j                  ||      \  }}t        j
                  |      t        j
                  |      z
  }t        j                  |      t        j                  |      z   }|dz   }t        j                  ||      dz  }||j                         z
  t        j                  |      z  }t        j                  t        j                  |      d	t        j                  |      z  k  |      }t        j                  d
d      \  }	\  }
}}|
j                  |||d dd df   d	d       |j                  |||d dd df   dddg       |j                  |||d       y )NFpcolormesh.snapr  r`  r   r:   皙?r   r   r9   r   r   rC  rK  
edgecolorsr#  wgouraudshading)r'   r   rj   r  r  rv  r  rf  minptpr	   masked_whererb  r  r   r  )r  r2   r3   r  r  QxQzr  Zmr  r  r  r  s                r#   test_pcolormeshrz    sl    ',CLL"#
A
D#q!A
D#qs#A;;q!DAq	RVVAY	B	RVVAY	B
s(B
AA	
QUUWq	!A 
cBFF2J&66	:Ba+AS#NN2r2crc3B3h<CCN@NN2r2crc3B3h<A3*NENN2r2yN1r%   zpcolormesh_small.epsc                     d} t        j                  dd|       }t        j                  dd| dz        }t        j                  ||      \  }}t        j                  |      t        j                  |      z
  }t        j                  |      t        j                  |      z   }|dz   }t        j
                  ||      dz  }||j                         z
  t        j                  |      z  }t        j                  t        j                  |      dt        j                  |      z  k  |      }t        j                  |dt        j                  |      z  k  |      }	t        j                  dd      \  }
\  \  }}\  }}|j                  |||d d	d d	f   dd
       |j                  |||d d	d d	f   dddg       |j                  |||d       |j                  |||	d       |
j                  D ]  }|j!                           y )Nr   r`  r   r:   rm  r   r   r  r   rC  rn  r#  rp  rq  rr  )rj   r  r  rv  r  rf  rt  ru  r	   rv  rb  r  r'   r   r  rx  set_axis_off)r  r2   r3   r  r  rw  rx  r  ry  Zm2r-   r  r  r  rP  r"   s                   r#   test_pcolormesh_smallr~    s   	A
D#q!A
D#qs#A;;q!DAq	RVVAY	B	RVVAY	B
s(B
AA	
QUUWq	!A	cBFF2J&66	:B
//"tbffRj00!
4C$'LLA$6!C	!*3jsCNN2r2crc3B3h<CCN@NN2r2crc3B3h<A3*NENN2r2yN1NN2r3	N2hh 
r%   pcolormesh_alphapngpdfrD  )
extensionsr  r   r   c            
         dt         j                  d<   d} t        j                  t        j                  dd|       t        j                  dd| dz              \  }}|}|t        j
                  |      z   }t        j                  ||      dz  }||j                         z
  t        j                  |      z  }t        j                  d   j                  d	      } |t        j                  d	            }d
d
t        j
                  t        j                  d	            z  z   |d d df<   t        j                  |      }t        j                  dd      \  }	\  \  }
}\  }}|
|||fD ]-  }|j!                  t#        j$                  dddg dd             / |
j'                  |||d dd df   |ddd       |j'                  ||||ddd       |j'                  |||d dd df   |dd       |j'                  ||||dd       y )NFrl  r  r`  r   r:   r   viridis   r   r   )r   r`  )r  r   r   r   r   )r3  zorderr   rD  r  r9   )r   r  rs  r  rq  )r   rs  r  )r'   r   rj   r  r  r  rf  rt  ru  r   	colormaps	resampledrr   r  ListedColormapr   	add_patchmpatches	Rectangler  )r  r  r  rw  Qyr  virr  r   r-   r  r  r  rP  r"   s                  r#   test_pcolormesh_alphar    s   
 ',CLL"#
A;;
D#q!
D#qs#DAq 
B	
RVVAYB
AA	
QUUWq	!A
--	
"
,
,R
0C2FRVVBIIbM222F1a4L!!&)D$'LLA$6!C	!*3jsC3S  
X''sA)9!
 	
 NN2r1SbS#2#X;S!!  -NN2r13c9QNONN2r1SbS#2#X;T6!NLNN2r141NEr%   z
dims,alphar  )r.  r   c                     | j                         }t        j                  dd|ft              dz  }|j	                  |       |j                         }|j	                  |d   ddd|	       y )
Nr   r   r  r:   ).r   grayr   r9   )r   r  r  r  )r   rj   r   r  r  )r    r!   dimsr  r"   r=   s         r#   test_pcolormesh_rgbar    sa     
			B
AtE*Q.AMM!				BMM!F)&qqMFr%   c                 $   t        j                  d      }t        j                  d      }t        j                  ||      \  }}||z   }| j                         }|j	                  |d       |j                         }|j	                  |||d       y )Nr.  r  r   rr  )rj   rr   r  r   r  r    r!   r2   r3   r  r  r  r"   s           r#   test_pcolormesh_nearest_noargsr    sy    
		!A
		!A;;q!DAq	AA				BMM!YM'				BMM!Q9M-r%   c                    t        j                  ddd      }t        j                  ddd      }t        j                  ||      \  }}||z   }| j                         }|j	                  |||       |j                  d       |j                         }|j	                  |||       |j                  dd       |j                  d       y	)
za
    Check that setting a log scale sets good default axis limits
    when using pcolormesh.
    r   r9   rM  r:   r   r,  r  r?  N)rj   r  r  r   r  rU  r  r  s           r#   test_pcolormesh_log_scaler    s     	Aq"A
Aq!A;;q!DAq	AA				BMM!QMM%				BMM!QKKcMM%r%   zpcolormesh_datetime_axis.pngc            	         t        j                         } | j                  ddd       t        j                  ddd      }t	        j
                  t        d      D cg c]  }|t        j                  |      z    c}      }t	        j                  d      }t	        j                  t	        j                  d	      t	        j                  d	            \  }}||z  }t        j                  d
       t        j                  |d d |d d |d dd df          t        j                  d       t        j                  |||       t	        j                  |t        j                     dd      }t	        j                  |d d t        j                  f   dd      }t        j                  d       t        j                  |d dd df   |d dd df   |d dd df          t        j                  d       t        j                  |||       | j                         D ]9  }|j                         D ]$  }	|	j!                  d       |	j#                  d       & ; y c c}w NrD  g\(\?333333?)hspacer?   rP   i  r9   r  daysr     r      r   r         rC   r   )r'   r   subplots_adjustrG  rj   rN  r   	timedeltarr   r  rz  r  repeatnewaxisget_axesget_xticklabelsset_haset_rotation
r-   basedr2   r3   z1z2zr"   r0   s
             r#   test_pcolormesh_datetime_axisr    s   
**,CsS9T1a(D
U2YG$++33GHA
		"A[[2		"6FB
RAKKNN1Sb61Sb61SbS#2#X;/KKNN1a
		!BJJ-!,A
		!ArzzM"BQ/AKKNN1SbS#2#X;#2#ss(QssCRCx[9KKNN1alln #'') 	#ELL!r"	## H    Izpcolor_datetime_axis.pngc            	         t        j                         } | j                  ddd       t        j                  ddd      }t	        j
                  t        d      D cg c]  }|t        j                  |      z    c}      }t	        j                  d      }t	        j                  t	        j                  d	      t	        j                  d	            \  }}||z  }t        j                  d
       t        j                  |d d |d d |d dd df          t        j                  d       t        j                  |||       t	        j                  |t        j                     dd      }t	        j                  |d d t        j                  f   dd      }t        j                  d       t        j                  |d dd df   |d dd df   |d dd df          t        j                  d       t        j                  |||       | j                         D ]9  }|j                         D ]$  }	|	j!                  d       |	j#                  d       & ; y c c}w r  )r'   r   r  rG  rj   rN  r   r  rr   r  rz  rg  r  r  r  r  r  r  r  s
             r#   test_pcolor_datetime_axisr  ,  s   
**,CsS9T1a(D
U2YG$++33GHA
		"A[[2		"6FB
RAKKJJq"vq"vq"crc{+KKJJq!Q
		!BJJ-!,A
		!ArzzM"BQ/AKKJJq"crc{Acrc3B3hK3B385KKJJq!Qlln #'') 	#ELL!r"	## Hr  c                    t        j                  ddd      }|dxx   dz  cc<   t        j                  ddd      }t        j                  ||      \  }}|ddddf   |ddddf   z   }| j                         }|j	                  |||       |j                  d	       |j                         }|j	                  |||       |j                  d
d       |j                  d	       y)z]
    Check that setting a log scale sets good default axis limits
    when using pcolor.
    r   r9   rM  gh㈵>r:   r   Nr   r,  r   r   )rj   r  r  r   rg  rU  r  r  s           r#   test_pcolor_log_scaler  E  s     	Aq"A aDGOD
Aq!A;;q!DAq	#2#ss(aSbSk!A				BIIaAMM%				BIIaAKKcMM%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  |j                  |||       d d d        t        j                  t              5  |j                  |||j                         d d d        t        j                  t              5  |j                  |||d dd df   d       d d d        t        j                  t              5  |j                  |||d dd df   d       d d d        t         j                  |d	<   t        j                  t              5  |j                  |||d dd df          d d d        t        j                  d
      5  t         j                  j                  ||d	k        }d d d        t        j                  t              5  |j                  |||d dd df          d d d        g d}ddg}t        j                  ||      \  }}t        j                   |j"                        }t        j$                  t&        d      5  |j                  |||d       d d d        t        j                  ddd      }t        j                  ddd      }t        j                  ||      \  }}t        j                   |j"                        }t         j(                  j+                  d       t         j(                  j)                  |j"                        }t         j(                  j)                  |j"                        }	t        j$                  t&        d      5 }
|j                  ||z   ||	z   |d       t-        |
      d	k(  sJ |j                  |d|z  z   |d|	z  z   |d       t-        |
      dk(  sJ 	 d d d        y # 1 sw Y   mxY w# 1 sw Y   ;xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   *xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r`  r   r:   r   r   rq  rr  r   r  invalidmask)ig  r   r9   r  r~   z.are not monotonically increasing or decreasingr  autor9   r   r`   )rj   r  r  rf  r'   r   r   r   r   r  Tr  r  r  r	   rN  zerosr  r  rZ  rk   rl   r  )r  r2   r3   r  r  r  r  r"   noise_Xnoise_Yrecords              r#   test_pcolorargsr  ]  s   
A
D#q!A
D#qs#A;;q!DAq
AALLNEAr	y	! 
aA	y	! !
aACC !	y	! <
aAcrc3B3hK;<	y	! <
aAcrc3B3hK;<66AaD	z	" )
aAcrc3B3hK()	X	& )EEKKQK()	z	" )
aAcrc3B3hK()
 	A	b	A;;q!DAq
A	kL
N /
aAv./ 	B1A
B1A;;q!DAq
AIINN8iiqww'Giiqww'G	k)
*  -3 	ai7Av>6{a 	a7
lAbjL!VD6{a   C ! !< << <) )) )) )/ /   sm   PP"
P/
P<Q	%QQ#Q0.AQ=P"P,/P9<Q	QQ #Q-0Q:=Rc                  n   t        j                  d      5  t        j                  ddd      } t        j                  ddd      }t         j                  j	                  t        |      t        |             }t        j                         \  }}|j                  | ||       ddd       y# 1 sw Y   yxY w)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)	rj   r  rr   rk   randnr  r'   r   r  r2   r3   r  r-   r"   s        r#   test_pcolormesh_underflow_errorr    s    
 
7	# IIaC IIaC IIOOCFCF+,,.R
aA  s   BB++B4c                  <   t        j                  d      j                  dd      } t        j                  g d| j                        }|j
                  j                  du sJ t         j                  j                  | |      }t        j                  |       t        j                  ddd	      } t        j                  ddd	      }t        j                  | |      \  }}t        j                  dt         j                  z  |z        t        j                  dt         j                  z  |z        z  }t        j                   d	t"        
      }d|d<   t        j                  ||j                        }|j
                  j                  du sJ t         j                  j                  ||      }t        j                  |||       t         j                  j                  ||      }	t         j                  j                  ||      }
t        j$                  |	|
|       y )Nr   r:   r   FTFFr  r   r9   r~   r  Tr   )rj   rr   r   broadcast_tor  flags	writeabler	   rN  r'   r  r  r  r  r  rv  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OO0!'':E;;  E)))uu{{15{)HNN8
Aq"A
Aq"A;;q!DAq
q255y1}q255y1} 55A88Bd#DDH??4)D::5(((uu{{14{(HNN1a"uu{{14{(Huu{{14{(HJJx8,r%   c                    | j                         }t        j                  dd      }t        j                  dd      }t        j                  j	                  d       t        j                  j                  dd      }|j                  |||d       |j                         }|d d	 t        j                  |      dz  z   }|d d	 t        j                  |      dz  z   }|j                  |||d
       y )Nr   r~   r   r`   r:   rv  r  rr  r   r   r   rj   rr   rk   rl   r  r  diffr    r!   r"   r2   r3   r  rP  rQ  s           r#   test_pcolornearestr    s    				B
		!RA
		!QAIINN8
		1AMM!Q6M*				B	
3B"''!*q.	 B	
3B"''!*q.	 BMM"b!YM/r%   c                 z   | j                         }t        d      D cg c]$  }t        j                  j                  |dz        & c}}t	        j
                  dd      }t        j                  j                  d       t        j                  j                  dd      }|j                  |||d	       |j                         }t        d      D cg c]'  }t        j                  j                  |d
z   dz        ) }}|d d t	        j                  |      dz  z   }|j                  |||d	       y c c}w c c}w )Nr~   i  r   r   r`   r:   rv  r  rr  r   r   r   )r   r   rG  fromtimestamprj   rr   rk   rl   r  r  r  r  s           r#   test_pcolornearestunitsr    s    				B<A"IFq			(	(T	2FA
		!QAIINN8
		1AMM!Q6M*				BEJ1X	N(


)
)1s7d*:
;	NB	N	
3B"''!*q.	 BMM"b!YM/ 	G 
Os   )D3,D8c                     t        j                         \  } }t        j                  dd      }t        j                  dd      }t        j                  j                  d       t        j                  j                  dd      }t        j                  t        d      5  |j                  |||d       d d d        y # 1 sw Y   y xY w)	Nr   rv  r   r`   zDimensions of Cr  r  rr  )r'   r   rj   rr   rk   rl   r  r   r   r   r  r-   r"   r2   r3   r  s        r#   test_pcolorflaterrorr    s    llnGC
		!QA
		!QAIINN8
		1A	y(9	: /
aAv./ / /s   B==Cc                  D   t        j                         \  } }t        j                  t        j                  d      t        j                  d            \  }}||z   }t        j                  t        d      5  |j                  |||d       d d d        y # 1 sw Y   y xY w)Nr   r   z.*one smaller than Xr  r  rr  )	r'   r   rj   r  rr   r   r   r   r  r  s        r#   test_samesizepcolorflaterrorr    sv    llnGC;;ryy|RYYq\2DAq	AA	y(?	@ /
aAv./ / /s   7BBsnapFc                    | j                         }t        j                  dd      }t        j                  dd      }t        j                  j	                  d       t        j                  j                  dd      }|j                  ||||       |j                         }|d d t        j                  |      d	z  z   }|d d t        j                  |      d	z  z   }|j                  ||||       y )
Nr   r~   r.  r`   r   rv  )r  r   r:   r  )	r    r!   r  r"   r2   r3   r  rP  rQ  s	            r#   test_pcolorautor    s     
			B
		!RA
		!QAIINN8
		1AMM!QM%				B	
3B"''!*q.	 B	
3B"''!*q.	 BMM"b!$M'r%   	canonicalc                  X    t        j                         \  } }|j                  g d       y )Nr  r'   r   r   r,   s     r#   test_canonicalr    s     llnGCGGIr%   zarc_angles.pngc                  ~   d} d}d}d}t        j                  dd      \  }}t        |j                        D ]  \  }}|dz  dz  }|dz
  }	|j	                  t        j                  || |d	             |j	                  t        j                  || ||	|
             |j                  |t        j                  t        j                  |	            z  |d   z   |d   |t        j                  t        j                  |            z  |d   z   g|t        j                  t        j                  |	            z  |d   z   |d   |t        j                  t        j                  |            z  |d   z   g       |j                  | |       |j                  | |       | dz  } |dz  }|d   dz  |d   dz  f}|dz  } y )Nr:   r9   )r   r   r   h  rv  -   r   r  )theta1theta2r   r~   )r'   r   r  r  r  r  EllipseArcr   rj   rv  deg2radr  r  r  )
rp  r  centrer+  r-   r  rA  r"   r  r  s
             r#   test_arc_anglesr    s    	
A	AFE||Aq!HC388$ 2S1"
X%%fa#>?
X\\&!QvfMN


6 233fQi?

6 233fQi?A 

6 233fQi?

6 233fQi?A	B 	UFE"
UFE" 	
R	R)b.&)b.1-r%   arc_ellipsec            	         d\  } }d\  }}d}t        j                  t        j                  d            }|dz  t        j                  |      z  }|dz  t        j                  |      z  }t        j                  |      }t        j
                  t        j                  |      t        j                  |       gt        j                  |      t        j                  |      gg      }	t        j                  |	||g      \  }}|| z  }||z  }t        j                         }
|
j                  dd      }|j                  ||d	d
d
dd       t        j                  | |f|||ddd      }|j                  |       |
j                  dd      }|j                  ||d	ddd       t        j                  | |f|||ddd      }|j                  |       y )N)gRQ?gp=
ף?)r   r   r  r   ro  r  )r   r   yellowr9   )r  r3  r4  r5  r  r:   F)angler5  rK  r  rp  equalr   )r  r3  r4  r  )rj   r  rr   rv  r  rN  rq   r'   r   r   rK  r  r  r  )xcenterycenterr  r  r  r  r2   r3   rthetaRr-   r"   e1e2s                 r#   test_arc_ellipser  '  s   !GWME6EJJryy~&E
RVVE]"AbffUm#AZZF
	"&&.)	(* 	+A 66!aVDAqLALA
**,C	V	,BGGAqx8  # 
w(%!QU1
FB LL	W	-BGGAqw'!GL	w(%!QU1
FB LLr%   c                      t        j                         \  } }t        j                  d      }|j	                  g dg d|       |j                  g dg d|       |j                  g dg d|       y )Nr   r  r   r:   r9   rT  )r.  r   r:   )r   r.  r   )r'   r   mmarkersMarkerStyler   r;   r[  )fixr"   ms      r#   test_marker_as_markerstyler  L  sW    llnGCS!AGGIyG+JJy)AJ.KK	9QK/r%   zmarkevery.pngc                     t        j                  ddd      } t        j                  |       t        j                  | dz  dz         z  }t	        j
                         \  }}|j                  | |dd       |j                  | |dz   d	d d
       |j                  | |dz   ddd       |j                  | |dz   ddd       |j                          y )Nr   r~   r   r   r   r  r0   r9   r  mark all	markeveryr0   r:   r  mark every 10r   +r   r  mark every 20 starting at 5rj   r  r  r
  r'   r   r   rI   r   s       r#   test_markeveryr  T  s    
Ar3A
q	BGGAbD3J''A llnGCGGAq#YG'GGAqsC4zG:GGAqsC2_G=GGAqsC72OGPIIKr%   zmarkevery_line.pngc                     t        j                  ddd      } t        j                  |       t        j                  | dz  dz         z  }t	        j
                         \  }}|j                  | |dd       |j                  | |dz   d	d d
       |j                  | |dz   ddd       |j                  | |dz   ddd       |j                          y )Nr   r~   r   r   z-or  r
  r9   z-dr  r  r:   z-sr  r   z-+r  r  r  r   s       r#   test_markevery_liner  b  s    
Ar3A
q	BGGAbD3J''A llnGCGGAq$iG(GGAqsDD
G;GGAqsDBoG>GGAqsDG3PGQIIKr%   zmarkevery_linear_scales.pngrZ  c                     d ddg dddgt        ddd      d	d
dddg} d}t        j                  j                  t	        |       |z  dz   |      }d}t        j                  ddd|z  z
  d      |z   }t        j                  |      dz   |z   }t        |       D ]e  \  }}||z  }||z  }	t        j                  |||	f          t        j                  dt        |      z         t        j                  ||ddd|       g y )Nr  r   r  r  rL  r   r   r   r   r  r   r   r   r   r  r   ?r   r9   rj  r~   r:   r   markevery=%sr   rU  r.  lsmsr  )slicerW   gridspecGridSpecr  rj   r  r  r  r'   rz  r1   strr   
casescolsgsdeltar2   r3   rA  casery  rz  s
             r#   test_markevery_linear_scalesr*  p  s    Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU# ;4Dy$hBsCxL!		.3t9,-AssqT:;r%   z"markevery_linear_scales_zoomed.pngc                  R   d ddg dddgt        ddd      d	d
dddg} d}t        j                  j                  t	        |       |z  dz   |      }d}t        j                  ddd|z  z
  d      |z   }t        j                  |      dz   |z   }t        |       D ]  \  }}||z  }||z  }	t        j                  |||	f          t        j                  dt        |      z         t        j                  ||ddd|       t        j                  d       t        j                  d        y )Nr  r  r  r   r   r   r  r   r   r   r   r  r  r9   rj  r~   r:   r   r  r   rU  r.  r  )r   g@)rm  g333333?)r   rW   r!  r"  r  rj   r  r  r  r'   rz  r1   r#  r   r   r   r$  s
             r#   #test_markevery_linear_scales_zoomedr,    s    Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU# 4Dy$hBsCxL!		.3t9,-AssqT:r%   zmarkevery_log_scales.pngc                  R   d ddg dddgt        ddd      d	d
dddg} d}t        j                  j                  t	        |       |z  dz   |      }d}t        j                  ddd|z  z
  d      |z   }t        j                  |      dz   |z   }t        |       D ]  \  }}||z  }||z  }	t        j                  |||	f          t        j                  dt        |      z         t        j                  d       t        j                  d       t        j                  ||ddd|        y )Nr  r  r  r   r   r   r  r   r   r   r   r  r  r9   rj  r~   r:   r   r  r,  r   rU  r.  r  )r   rW   r!  r"  r  rj   r  r  r  r'   rz  r1   r#  r  r  r   r$  s
             r#   test_markevery_log_scalesr.    s   Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%AU# ;4Dy$hBsCxL!		.3t9,-

5

5AssqT:;r%   zmarkevery_polar.pngc                     d ddg dddgt        ddd      d	d
dddg} d}t        j                  j                  t	        |       |z  dz   |      }t        j                  ddd      }dt
        j                  z  |z  }t        |       D ]g  \  }}||z  }||z  }t        j                  |||f   d       t        j                  dt        |      z         t        j                  ||ddd|       i y )Nr  r  r  r   r   r   r  r   r   r   r   r  r  r9   r  r:   Tpolarr  r   rU  r.  r  )r   rW   r!  r"  r  rj   r  r  r  r'   rz  r1   r#  r   )	r%  r&  r'  rX  r  rA  r)  ry  rz  s	            r#   test_markevery_polarr2    s    Ar73Q#s&E D				%	%c%jD&81&<d	CB
AsC AIMEU# ?4Dy$hBsCxL-		.3t9,-331>?r%   z markevery_linear_scales_nans.pngc                  8   d ddg dddgt        ddd      d	d
dddg} d}t        j                  j                  t	        |       |z  dz   |      }d}t        j                  ddd|z  z
  d      |z   }t        j                  |      dz   |z   }t
        j                  x|d d x|dd  |dd t        |       D ]e  \  }}||z  }||z  }	t        j                  |||	f          t        j                  dt        |      z         t        j                  ||ddd|       g y )Nr  r  r  r   r   r   r  r   r   r   r   r  r  r9   rj  r~   r:   r   rY  F   r  r   rU  r.  r  )r   rW   r!  r"  r  rj   r  r  r  r  r'   rz  r1   r#  r   r$  s
             r#   !test_markevery_linear_scales_nansr6    s*    Ar73Q#s&E D				%	%c%jD&81&<d	CBE
ArAI~s+e3A
q	C%A"$&&(AcrF(QstWqBxU# ;4Dy$hBsCxL!		.3t9,-AssqT:;r%   marker_edgesc                  h   t        j                  ddd      } t        j                         \  }}|j	                  | t        j
                  |       dddd       |j	                  | dz   t        j
                  |       dddd       |j	                  | d	z   t        j
                  |       ddd
d       y )Nr   r9   r~   zy.      >@rX  )r  mewmecr   r   r:   r#  )rj   r  r'   r   r   r  r2   r-   r"   s      r#   test_marker_edgesr=    s    
Aq"AllnGCGGArvvay$4QCG8GGAcE266!9dtG<GGAcE266!9dtG<r%   zbar_tick_label_single.pngc                      t        j                         } | j                  dddd       ddd}t        j                         \  }} t        j                         } | j                  dddd|	       y )
Nr   r9   edger!  )align
tick_labelrn  r   r#  )r@  rA  r  )r'   rs  r  r   )r"   r  r-   s      r#   test_bar_tick_label_singlerB    s_     
BFF1av#F. DllnGC	BFF36cF=r%   c                  z    t        j                         \  } }|j                  ddgt        j                  dg       y )Nr   r9   r.  )r'   r   r  rj   r  r,   s     r#   test_nan_bar_valuesrD    s+    llnGCFFAq6BFFA;r%   c                  V    t        j                         \  } }|j                  g g        y r  )r'   r   r  r,   s     r#   test_bar_ticklabel_failrF    s    llnGCFF2rNr%   zbar_tick_label_multiple.pngc                  h    t        j                         } | j                  ddgddgddgddgd	       y )
Nr9         @r:   r   r   r   r#  rZ   r  rA  r@  )r'   rs  r  r  s    r#   test_bar_tick_label_multiplerJ    s;     
BFFAs8aVC:3*  r%   z/bar_tick_label_multiple_old_label_alignment.pngc                      dt         j                  d<   t        j                         } | j	                  ddgddgddgdd	gd
       y )NrZ   zytick.alignmentr9   rH  r:   r   r   r   r#  rI  )rW   r   r'   rs  r  r  s    r#   *test_bar_tick_label_multiple_old_alignmentrL    sL     .6J)*	BFFAs8aVC:3*  r%   c                    | j                         }g d}g d}|D cg c]  }t        |       c}}|D cg c]  }t        |       c}}|j                  ||d       |j                         }|j                  ||d       y c c}w c c}w )Nr   g @g333333@r  rm  r  gffffff
@g@rZ   r@  )r   r   r  r    r!   r"   x0y0r2   r3   s          r#   test_bar_decimal_centerrT  &  s|    				B	B	B  A  AFF1axF 				BFF2rF" 	! s
   BB	c                 (   | j                         }g d}g d}|D cg c]  }t        |       c}}|D cg c]  }t        |       c}}|j                  ||g dd       |j                         }|j                  ||g dd       y c c}w c c}w )NrN  rO  )r   r   r9   r9   rZ   r  r@  )r   r   r  rQ  s          r#   test_barh_decimal_centerrW  4  s    				B	B	B  A  AGGAq)G:				BGGB+8G< 	! s
   B
Bc                     g d}g d}g d}|D cg c]  }t        |       }}| j                         }|j                  |||d       |j                         }|j                  |||d       y c c}w )NrN  rO  r  g333333?r9   r:   rZ   r  r@  )r   r   r  )r    r!   r2   r3   w0rA  rp  r"   s           r#   test_bar_decimal_widthr\  B  sq    AA	B  A 				BFF1aqF)				BFF1arF* 	!   A0c                     g d}g d}g d}|D cg c]  }t        |       }}| j                         }|j                  |||d       |j                         }|j                  |||d       y c c}w )NrN  rO  rY  rZ   rV  )r   r   r  )r    r!   r2   r3   h0rA  r  r"   s           r#   test_barh_decimal_heightr`  P  sq    AA	B  A 				BGGAq(G+				BGGAq8G, 	!r]  c                      t        j                         } | j                  ddgddgddd      }|D ],  }|j                         dk(  sJ |j	                         d	k(  r,J  y )
Nr9   r:   r.  r   r/  rX  r  r   r4  r   r   r   r   r9   r   r   r   r'   rs  r  get_facecolorget_edgecolorr"   rectsrects      r#   test_bar_color_none_alphark  ^  sj    	BFFAq6Aq6FcFJE 6!!#|333!!#~5556r%   c                      t        j                         } | j                  ddgddgddd      }|D ],  }|j                         dk(  sJ |j	                         d	k(  r,J  y )
Nr9   r:   r.  r   rX  r/  rb  rd  rc  re  rh  s      r#   test_bar_edgecolor_none_alpharm  f  sj    	BFFAq6Aq6C6FJE 4!!#~555!!#|3334r%   zbarh_tick_label.pngc                  h    t        j                         } | j                  ddgddgddgddgd	       y )
Nr9   rH  r:   r   r   r   r#  rZ   )r  rA  r@  )r'   rs  r  r  s    r#   test_barh_tick_labelro  n  s;     
BGGQHq!fc3ZS#J  r%   c            
         t        j                         \  } }|j                  t        j                  ddd      dt        j                  d             |j                  t        j                  ddd      dt        j                  d      t        j                  d             t        j                         \  } }|j                  t        j                  ddd      dt        j                  d      	       |j                  t        j                  ddd      dt        j                  d      t        j                  d      
       t        j                         \  } }|j                  t        j                  ddd      t        j                  ddd      gt        j                  ddg      t        j                  d      	       |j                  t        j                  ddd      t        j                  ddd      gt        j                  ddg      dD cg c]  }t        j                  |       c}	       |j                  t        j                  ddd      t        j                  d      fgd       yc c}w )z>Smoketest that bar can handle width and height in delta units.  r9   r   r   hoursr  r:   )r_  r  )r  )r  r`  r   r-  r~   r  N)	r'   r   r  rG  r  r  rj   rN  broken_barhr-   r"   r  s      r#   test_bar_timedeltarx  v  s   llnGCFF8T1a("##!,  .FF8T1a("""+##!,  . llnGCGGHdAq)1%%A.  0GGHdAq)1%%A.##!,  . llnGCGGXtQ*H,=,=dAq,IJHHaX%%A.  0 GGXtQ*H,=,=dAq,IJHHaX9?@AH&&Q/@  B NNX&&tQ2''a02 3 As   Jc                     t        j                  t        j                  d      t        j                  d      t        j                  d      g      } t        j                  t        j                  d      t        j                  d      t        j                  d      g      }t        j                         \  }}|j                  g d|| z
  |        t        |j                  j                         t        j                        sJ t        j                         \  }}|j                  g d|| z
  | 	       t        |j                  j                         t        j                        sJ y
)z+test that tickers are correct for datetimesz
2012-01-01z
2012-02-01z
2012-01-15z
2012-02-07z
2012-02-13z
2012-02-12)r   r9   r   )r  rP   )r  rQ   N)rj   rN  
datetime64r'   r   r  r   r]   r   rI  AutoDateFormatterr  r[   )startstopr-   r"   s       r#   test_bar_datetime_startr~    s    HHbmmL12==3NmmL13 4E88R]]<0"--2M]]<02 3D llnGCFF9T%ZF6bhh224f6N6NOOOllnGCGGIT%ZeG4bhh224f6N6NOOOr%   zgrouped_bar.pngc                      g dg dg dd} t        j                         \  }}|j                  | g dddg d	       |j                  g        y )
Nr  )r7  r  皙	@)ffffff?333333@g333333@data1data2data3ABr  r   r   )z#1f77b4z#58a1cfz#abd0e6)tick_labelsgroup_spacingbar_spacingr  )r'   r   grouped_bar
set_yticksr  r-   r"   s      r#   test_grouped_barr    sP       D llnGCNN4_!$#;  = MM"r%   c                    ddg}ddg}ddg}ddg}| j                         }|j                  |||g|g d	
       |j                          |j                         }t        j                  ddg      }d}d|z  t        j                  d|d|z  g      z   }	|j                  ||	d   z   ||d       |j                  ||	d   z   ||d       |j                  ||	d   z   ||d       |j                  ||       |j                          y )Nr  r  r9   r7  r:   r  r   @r  r  labelsr   gqq?r   r  )r  r0   r  r  )r   r  rI   rj   rN  r  
set_xticks)
r    r!   
categoriesr  r  r  r"   	label_pos	bar_width
data_shifts
             r#   !test_grouped_bar_list_of_datasetsr    s   sJHEHEHE				BNNE5%(j5  7IIK				B!Q IIi"((Ay!i-+H"IIJFF9z!}$e9GFLFF9z!}$e9GFLFF9z!}$e9GFLMM)Z(IIKr%   c                 :   ddg}t        ddgddgddg	      }| j                         }|j                  ||
       |j                          |j                         }|j                  |j	                         ||j                                |j                          y )Nr  r  r9   r7  r:   r  r   r  r  r  r  )r  r   r  rI   r0  r/  )r    r!   r  	data_dictr"   s        r#   !test_grouped_bar_dict_of_datasetsr    s    sJAs8As8As8DI				BNN9*N5IIK				BNN9##%:innFVNWIIKr%   c                 V   ddg}t        j                  g dg dg      }g d}| j                         }|j                  |||       |j	                          |j                         }|j
                  D cg c]  }| }}|j                  |||       |j	                          y c c}w )Nr  r  r  r7  r  r  r  r  )rj   rN  r   r  rI   r  )r    r!   r  rN  r  r"   columnlist_of_datasetss           r#   test_grouped_bar_arrayr    s    sJHHi12E(F				BNN5jN@IIK				B-2WW5655NN#FNKIIK 6s   6	B&c                 p   ddg}g d}|j                  g dg dg||      }| j                         }|j                  |       |j                          |j                         }|j                  D cg c]  }||   j                          }}|j                  |||       |j                          y c c}w )Nr  r  r  r  r  )indexcolumnsr  )	DataFramer   r  rI   r  to_numpy)	r    r!   pdr  r  dfr"   rz  r  s	            r#   test_grouped_bar_dataframer    s    sJ(F	y/2& 
 
8B 
			BNN2IIK				B68jjAs3((*AANN#FNKIIK Bs   2B3c                  d   t        j                         \  } }|j                  g dg dgg d      }t        |j                        dk(  sJ |j                  D ]$  }t        |t              sJ ||j                  v r$J  |j                          |j                  D ]  }||j                  vrJ  y )Nr  rM  r     r  r  r:   )	r'   r   r  r  bar_containersr   r   
containersry  )r-   r"   retbcs       r#   test_grouped_bar_return_valuer    s    llnGC
..)\2.
PCs!!"a'''   #"l+++R]]"""# JJL   '&&&'r%   c                     t        j                         \  } }t        j                  d      }t        j                  ddg      t        j                  ddg      t        j                  ddg      g}g d}|j                  |||      }t        ||j                        D ]!  \  }}|D ]  }|j                         |k(  rJ  # y)zLEach dataset should receive its own hatch pattern when a sequence is passed.r:   r9   r   r.  )//xxz..)	positionsr<  N)	r'   r   rj   rr   rN  r  r  r  	get_hatch)	r-   r"   r2   heightshatchesr  r<  r=   rj  s	            r#   test_grouped_bar_hatch_sequencer  	  s    llnGC
		!AxxA1a&!1288QF3CDG G1GDJ !:!:; -q 	-D>>#u,,,	--r%   c                     t         j                  j                  dd      }| j                  dd| j	                  d            j
                  }t        j                          t        j                  ||       y )Nr   r:   z1/1/2000r9   )years)periodsfreqr  )	rj   rk   r   
date_range
DateOffsetyearr'   r   boxplot)r  r  r  s      r#   test_boxplot_dates_pandasr  	  s[    99>>!QDMM*"#"--a-*@  BBF$ 
JJLKK&r%   c                     t         j                  j                  dd      } t        j                  d      \  }}|d   j                  | g dg d       |d   j                  | g dd	       |d
   j                  | g d       |d   j                  | dg d       |d   j                  | dd	       |d   j                  | d       |d   j                  | g d       |d   j                  | d	       |d   j                  |        y )Nr   r   rv  r   )r   r   r   r   )	capwidthswidthsr9   r   r:   r  r   r.  r   r  r  r  )rj   rk   r   r'   r   r  )r  r-   r  s      r#   test_boxplot_capwidthsr  	  s    99>>!QD||AHCFNN4??NKFNN4?3N?FNN4?N3FNN43N?FNN43sN3FNN43N'FNN4N0FNN4N$FNN4r%   c                    ddl m}m} t        j                         }|j                  d      }t        j                  ddd      g}t        |      dk  r:|j                  |d   t        j                  d	      z          t        |      dk  r:t        j                  d
      }t        j                  ||      \  }}t        |      dz
  t        |      dz
  f}	t        j                  |	d   |	d   z        j                  |	      }
	  |        |j                  |||
      }|j                  j!                           |        y #  |        w xY w)Nr   )register_matplotlib_converters deregister_matplotlib_converterso     r9   r  r   x   secondsr   )pandas.plottingr  r  r'   r   r   rG  r  appendr  rj   rr   r  r   r  rl  r  )r  r  r  r-   r"   timesy_vals	time_axisy_axisr  z_dataims               r#   test_pcolor_regressionr  +	  s   
 **,C		BtQ*+E
e*q.U2Y!3!3C!@@A e*q. YYq\FE62Iv[1_c%j1n-EYYuQx%(*+33E:F+&(]]9ff5

(*(*s   4E 	Ec                 j   | j                  g dg dg dg dd      }| j                  |g d         |d<   |ddg   j                  dg      j                         }|j                  }|d   }|d   }t        j                         \  }}|j                  ||dd	
       |j                  ||dd       y )N)rq  rq  rq  r9   r9   r9   r  )r  monthrN  rM  )r  r  rN  daterM  r~   rZ   rZ  oranger.  rJ  )	r  to_datetimegroupbyr  r  r'   r   r  r   )r  r  monthlydatesforecastbaseliner-   r"   s           r#   test_bar_pandasr  H	  s    	#	
B
 #; <=BvJ&'"#++VH599;GMMEwHwHllnGCFF5("HF5GGE88G2r%   c                     | j                  g dg ddg d      }t        j                         \  }}|j                  |j                  d|j
                         y )N)r   r   r  r   rD  r  )r2   r  r  r  r   rt  )r  r'   r   r  r2   r  r  r  r-   r"   s       r#   test_bar_pandas_indexedr  [	  sH    	L<@% 
 
'BllnGCFF244288F$r%   c                     | j                         }|j                         }ddg}ddg}ddg}t        d      D ]   }|j                  ||   ||   d||          " |j                  |||       y )	Nr9   r:   r   r2   r   r  )r   r<  r<  )r   r   r  )r    r!   rw   rx   r2   r3   r  rA  s           r#   test_bar_hatchesr  c	  s     !GF	
AA	
AACjG1X =

1Q41T
<= KK1GK$r%   )r2   r  r0   expected_labelscontainer_labelr2   
_nolegend_r   r#  r=   )r~   r  r   r  )r  r  r  bars)r  r  r  c                     t        j                         \  }}|j                  | ||      }|D cg c]  }|j                          }	}||	k(  sJ |j                         |k(  sJ y c c}w )Nr
  )r'   r   r  	get_label)
r2   r  r0   r  r  r  r"   bar_containerr  
bar_labelss
             r#   test_bar_labelsr  r	  sj     LLNEArFF1e5F1M-:;c#--/;J;j(((""$777 <s   A&c                  ~   t        j                         \  } }t        j                  t              5  |j                  ddgddgg d       d d d        t        j                         \  } }t        j                  t              5  |j                  ddgddgdg       d d d        y # 1 sw Y   \xY w# 1 sw Y   y xY w)Nr2   r3   r9   r:   )r  r  r  r
  r  )r'   r   r   r   r  r  r  s     r#   test_bar_labels_lengthr  	  s    LLNEAr	z	" :
SzAq69:LLNEAr	z	" 0
SzAq6#/0 0: :0 0s   B'B3'B03B<c                    | j                  ddgd      | j                  ddgd      fD ]l  }t        j                  ||       t        j                  |j                  |       t        j                  |       t        j                  |j                         n | j	                  dg di      }t        j                  |       t        j                  ||       y )Nr9   r:   float64r  Float64rz  r  )Seriesr'   r   r  r  )r  r2   r  s      r#   test_pandas_minimal_plotr  	  s    iiAii0iiAii02 A! 
ui(	)BHHRLHHRr%   zhist_log.pngc                      t        j                  ddd      dz  } t        j                  d| z
  d| z   g      }t        j                         \  }}|j                  |dd       y )Nr   r9   r  r   FT)rK  r,  )rj   r  concatenater'   r   hist)data0r  r-   r"   s       r#   test_hist_logr  	  sU    KK1c"A%E>>1u9a%i01DllnGCGGDu$G'r%   c                 x   | j                  dd      }|j                  dd      }t        g d      D ]  \  }}|d|f   j                  d       |d|f   j                  dd|       |d|f   j                  dd|       |d|f   j                  d       |d d |f   D ]  }|j                  ddd|	         y )
Nr:   r   )r  step
stepfilledr   r,  r9   histtypeT)r,  r  )r   r  r  r  )r    r!   r   r   rA  r  r"   s          r#   test_hist_log_2r  	  s      A&Hq!$G !>? 	78A!!%(AAq84AAq84A!!%(!Q$- 	7BGGAqdXG6	7	7r%   c                  t   t        j                  d      \  } }|d   j                  dgddggdd       |d   j                  d       |d   j                  g ddd       |d   j                  d       | j                  j                          |d   j                         |d   j                         k(  sJ y )Nr:   r   r9   
barstackedr
  r,  r   r   r9   )r'   r   r  r  rl  r  r   r-   r  s     r#   test_hist_log_barstackedr  	  s    ||AHCFKK!q!fq<K8FeFKK	1|K4FeJJOOq6??A 1111r%   c                     dd l } dd lm}  |j                         \  }} | j                  g dd      }t        j                  t        d      5  |j                  |       d d d        t        d      D cg c]  }t        j                  |       }}t        j                  t        d      5  |j                  |       d d d        y # 1 sw Y   kxY wc c}w # 1 sw Y   y xY w)	Nr   )r9   r:   r   r  ztimedelta64[D]r  z+does not currently support timedelta inputsr  r   r  )numpymatplotlib.pyplotpyplotr   rN  r   r   r   r  r   rG  r  )rj   r'   r-   r"   arr_nprA  arr_pys          r#   test_hist_timedelta_raisesr  	  s    #cllnGCRXXl*:;F	y(U	V 
 6;1X>h  +>F>	y(U	V 
 	  ? s   C7C1CCC&zhist_bar_empty.pngc                  R    t        j                         } | j                  g d       y )Nr  r
  r'   rs  r  r  s    r#   test_hist_bar_emptyr  	  s     
BGGBGr%   c                     t         j                  j                  d       t        j                  t         j                  j	                  ddd      dd      j                  t         j                        } t        j                  | dd	      }|d
   }t        dt        |            D ]>  }||dz
     j                         }||   j                         }|d   d   |d   d   k  r>J  y )Nr`   r   r   r  sizer   r9   r   )r  r  r:   )rj   rk   rl   cliprm   r   float16r'   r  r   r  get_corners)r0  r  r  rX  rleftrrights         r#   test_hist_float16r$  	  s    IINN8WW
		c-q!55;VBJJ5G as+A	
1B1c"g +1Q3##%A""$ Qx{fQil***+r%   zhist_step_empty.pngc                  R    t        j                         } | j                  g d       y )Nr  r
  r  r  s    r#   test_hist_step_emptyr&  	  s     
BGGBG r%   zhist_step_filled.pngc                     t         j                  j                  d       t         j                  j                  dd      } d}ddiddidd ii gdz  }d	gd
z  dgd
z  z   }t	        j
                  dd
      \  }}t        |||j                        D ]E  \  }}} |j                  | |f|dd| |j                  | d|        |j                  d       G |d   j                  }	t        d |	D              sJ y )Nr   r  r   r~   rK  TFr:   r  r.  r	  nrowsncolsr  stackedr:  rX  rP   r  c              3   ^   K   | ]%  }|j                         |j                         k(   ' y wr  )rf  rg  ).0r  s     r#   	<genexpr>z(test_hist_step_filled.<locals>.<genexpr>	  s#     G!q AOO$55Gs   +-)rj   rk   rl   r  r'   r   r  r  r  r5   r  r:  all)
r2   n_binsr  typesr-   r  kg_typer"   r:  s
             r#   test_hist_step_filledr6  	  s    IINN1
		a AFtnvuo~rB1DFHQJ~a''E||!1-HCVUCHH5  E26>E4>2>
t1UG_%
3 
 $iGGwGGGGr%   zhist_density.pngc                      t         j                  j                  d       t         j                  j                  d      } t	        j
                         \  }}|j                  | d       y )Nr`   r  Tdensity)rj   rk   rl   r  r'   r   r  r  s      r#   test_hist_densityr:  	  sE    IINN899$$T*DllnGCGGD$Gr%   c                      t         j                  j                  d      } | j                  d      }g d}t	        j
                  ||d      \  }}}t        j                  ||d      \  }}t        ||       y )Ni  r   )r  r   r  r   r9   r   T)r  r9  )rj   rk   RandomStater  r'   r  	histogramr   )rngr  r  mpl_heightsr  
np_heightss         r#   test_hist_unequal_bins_densityrA  
  sc     ))


&C		#A"Dt<KALLt<MJK,r%   c                  6   t        j                   ddd      t        j                   ddd      gt        j                   ddd      t        j                   ddd      gg} t        j                         \  }}|j                  | d       |j                  | d       y )N  r9   r:   T)r,  F)rG  r'   r   r  r  s      r#   test_hist_datetime_datasetsrD  
  s    tQ*H,=,=dAq,IJtQ*H,=,=dAq,IJLDllnGCGGD$GGGD%G r%   bins_preprocessc                     | S r  r   r  s    r#   r  r  
  s    t r%   c                 .    t        j                  | d      S )Nrz  )rj   rP  r  s    r#   r  r  
  s    rzz$'E r%   )rJ  zdatetime.datetimeznp.datetime64c           	         t        j                   ddd      t        j                   ddd      t        j                   ddd      t        j                   ddd      gt        j                   ddd      t        j                   ddd      t        j                   ddd      t        j                   ddd      gg}t        j                   ddd      t        j                   ddd      t        j                   ddd      g}t        j                         \  }}|j                  | | |      d	      \  }}}t        j
                  j                  |t        j                  j                  |             |j                  | | |      d
	      \  }}}t        j
                  j                  |t        j                  j                  |             y )Ni  r9   r   rM  r:   r   rK  T)r  r,  F)
rG  r'   r   r  rj   r   r   r   r  rJ  )rE  r  
date_edgesr-   r"   r  r  s          r#    test_hist_datetime_datasets_binsrJ  
  sw    tQ*H,=,=dAr,JtQ*H,=,=dAq,IKtQ+X->->tQ-JtQ+X->->tQ-JLMD
 ##D!Q/1B1B4A1N##D!Q/1J llnGCOJ$?NJAtQJJtSYY%7%7
%CDOJ$?OJAtQJJtSYY%7%7
%CDr%   zdata, expected_number_of_histsc                     t        j                  |       \  }}}t        j                  |      }|j                  dk(  rd|k(  sJ y |j
                  d   |k(  sJ y )Nr9   r   )r'   r  rj   rP  ndimr  )r  expected_number_of_histshistsr  s       r#   test_hist_with_empty_inputrO  /
  sV    
 ((4.KE1aJJuEzzQ,,,,{{1~!9999r%   zhisttype, zorderr  r  r	  c                     t        j                         j                         }|j                  ddg|        |j                  sJ |j                  D ]  }|j                         |k(  rJ  y )Nr9   r:   r
  )r'   r   r   r  r:  
get_zorder)r  r  r"   r  s       r#   test_hist_zorderrR  =
  sb    
 
	!	!	#BGGQFXG&::: ,!V+++,r%   c                  2   g dg dg} t        j                  | d      \  }}}|d   j                  D ](  }t        j                  |j                         d      r(J  |d   j                  D ](  }t        j                  |j                         d      r(J  y )NrF  )r   r.  r   rC  rY  r   r9   )r'   r  r:  r  
same_colorrf  )r  r  r  r  s       r#   (test_hist_single_color_multiple_datasetsrU  I
  s    y!D88D4Aq.A&& :!!!//"3S999:A&& :!!!//"3S999:r%   c                      t        j                         \  } }t        j                  t        d      5  |j                  g dg ddd d       d d d        y # 1 sw Y   y xY w)Nzbaseline=None and fill=Truer  )r.  r   r9   r   r:   )r9   r:   r   r.  r   r   r   T)r3  r  rK  )r'   r   r   r  rZ  stairsr,   s     r#   "test_stairs_no_baseline_fill_warnsrX  R
  sU    llnGC	k)F	G 

		 	 	

 
 
s   AA c                 `   dd l m} t        j                  g d      }t        j                  g d      }| j	                  dd      j                         }|d   j                  ||d        |d   j                  ||d d	       |d   j                  ||       |d   j                  ||d
       |d   j                  ||       |d   j                          |d   j                  ||d
       |d   j                          ddd}|j	                  dd      j                         } |d   j                  |t        j                  ||d         fddi|  |d   j                  t        j                  |d   |      |fddi|  |d   j                  |t        j                  ||d         fddi| |d   j                   |j                  |d   |d   gd|d   gfi |       |d   j                   |j                  |d   |d   gd|d   gfi |       |d   j                  dd         |d   j                  t        j                  |d   |      |fddi| |d   j                   |j                  d|d   g|d   |d   gfi |       |d   j                   |j                  d|d   g|d   |d   gfi |       |d   j                  dd         |d   j                  |t        j                  ||d         fddi| |d   j                   |j                  |d   |d   gd|d   gfi |       |d   j                   |j                  |d   |d   gd|d   gfi |       |d   j                           |d   j                  t        j                  |d   |      |fddi| |d   j                   |j                  d|d   g|d   |d   gfi |       |d   j                   |j                  d|d   g|d   |d   gfi |       |d   j                          y )Nr   )r      r   %   0   r   r  r.  )	r   r   r  r  r        @      @       @      "@r   r:   r  r9   rR   )r  rT   rS   r.  r   miterbuttsolid_joinstylesolid_capstyler   	drawstyle
steps-post)matplotlib.lineslinesrj   rN  r   flattenrW  semilogyr  r   r  add_liner   r  r  )r    r!   mlinesr3   r2   	test_axesr   ref_axess           r#   test_stairsrq  ^
  s5   %
01A
56A!!!Q'//1IaL1t,aL1tFaL1aL1,7aL1aLaL1,7aL !(6BE1%--/HHQKQ		!QrU+M|MuMHQKRYYqtQ'LlLeLHQKQ		!QrU+M|MuMQK!ad|a1YH%HIQK"qu~1R5zKUKLQKD!HQKRYYqtQ'LlLeLQK1Q4y1Q41,H%HIQK1R5zAbE1R5>KUKLQKD!HQKQ		!QrU+M|MuMQK!ad|a1YH%HIQK"qu~1R5zKUKLQKHQKRYYqtQ'LlLeLQK1Q4y1Q41,H%HIQK1R5zAbE1R5>KUKLQKr%   c           	         g dg d}}d}| j                  dd      j                         }|d   j                  ||d       |d   j                  ||d	d
       |d   j                  |||d       |d   j                  |||d	d       |j                  dd      j                         }|d   j                  |t	        j
                  ||d         dd       |d   j                  dd        |d   j                  |t	        j
                  ||d         dd       |d   j                  dd        |d   j                  |t	        j
                  ||d         t	        j                  t        |      dz         |z  dd       |d   j                  |d        |d   j                  |t	        j
                  ||d         t	        j                  t        |      dz         |z  dd       |d   j                  |d        y )N)r9   r:   r   r.  r:   r   r9   r:   r   r.  r   r
  r:   r   TrK  r9   rR   )rT   rK  )r  rK  r   )r  rT   rK  r   post)r  rK  )r   rk  rW  r  rj   r  r  r3  r  r   r  )r    r!   r  r  bsro  rp  s          r#   test_stairs_fillrw  
  s   1tA	B!!!Q'//1IaL4d+aL4\EaL4"48aL4",!  # 1%--/HQKT299Q"#6VJQKD!QKdBIIa2$7fKQKD!QKT299Q"#6WWSVAX.r11  FQKT"QKdBIIa2$7 ggc!fQh/2A  GQKT"r%   c                 j   d}| j                         }|j                  g d      }|j                  |       |j                  g d       |j                  t	        j
                  d      dz          |j                  g dt	        j
                  d      dz         |j                  g d       |j                  d t	        j
                  d             t	        j                  |j                         d   t	        j
                  d	d            sJ t	        j                  |j                         d	   t	        j
                  d            sJ |j                  d
       |j                         j                  d
k(  sJ |j                         }|j                  g dd
      }|j                  |       y )N)r  r.  r  r  r.  r:   edges)r9   r:   r9   r   r9   r
  ra  )	r   rW  r  set_datarj   rr   allcloseget_datar  )r    r!   r   test_axr  ref_axs         r#   test_stairs_updater  
  s9    D""$Gy!ATJJyJJRYYq\!^J$JJy"))A,q.)JJyJJtRYYq\";;qzz|A		!Q888;;qzz|A		!555JJJ::<  B&&&   "Fi"-A
OODr%   c                 ,   t        j                  g d      }t        j                  g d      }| j                         }|j                  ||d        ddd}|j                         } |j                  |t        j
                  ||d         fdd	i| y )
N)r   r:   r   r   r~   )g|?5^?gV-?g+?re  ra  rb  rc  rd  r   rg  rh  )rj   rN  r   rW  r   r  )r    r!   r2   r3   ro  r   rp  s          r#   test_stairs_baseline_Noner  
  s    
!"A
,-A$$&IQD) '6BE""$HHMM!RYYq!B%(JLJEJr%   c                      t        j                         j                         } | j                  g dg       | j	                         dk(  sJ | j                         dk(  sJ y )N*   )'   r  rt  )r'   r   r   rW  r   r   r  s    r#   test_stairs_emptyr  
  sN    		!	!	#BIIb2$;;=H$$$;;=M)))r%   c                      t        j                  t        d      5  t        j                  ddgdt
        j                  dg       d d d        y # 1 sw Y   y xY w)NNan values in "edges"r  r9   r:   r   )r   r   r  r'   rW  rj   r  r   r%   r#   test_stairs_invalid_nanr  
  sB    	z)@	A +

Aq6Arvvq>*+ + +r  c                      t        j                  t        d      5  t        j                  ddgddg       d d d        y # 1 sw Y   y xY w)NSize mismatchr  r9   r:   r   )r   r   r  r'   rW  r   r%   r#   test_stairs_invalid_mismatchr  
  s;    	z	9 #

Aq6Aq6"# # #s   A  A	c                      t        j                  ddgg d      } t        j                  t        d      5  | j                  dt        j                  dg       d d d        y # 1 sw Y   y xY w)Nr9   r:   rF  r  r  ry  )r'   rW  r   r   r  r{  rj   r  r  s    r#   test_stairs_invalid_updater  
  sR    

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

!RVVQ
() ) )s   $A##A,c                      t        j                  ddgg d      } t        j                  t        d      5  | j                  t        j                  d             d d d        y # 1 sw Y   y xY w)Nr9   r:   rF  r  r  r   ry  )r'   rW  r   r   r  r{  rj   rr   r  s    r#   test_stairs_invalid_update2r  
  sO    

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

1
&' ' 's   &A%%A.ztest_stairs_options.pngc                  v   t        j                  g d      t        j                  g d      j                  t              }} |j	                         }t         j
                  |d<   t        j                         \  }}|j                  |dz  | ddd       |j                  || dz  dz
  d	dd
d       |j                  || dddd       |j                  |dz  | dz  dz
  dddd
d       |j                  |d d d   dz  dz   | dz
  d	ddd d       |j                  |d d d   dz  dz   | ddddd       |j                  |d d d   dz  dz   | dz   t        j                  dd t        |            d!dd"d#       |j                  |d d d d d   dz  d$z   | d d dz   d%ddd&d'd()       |j                  d*+       y ),Nr9   r:   r   r.  r   r  r9   r   r   Tr  )r   rK  r0   rB  rR   r  )r   rK  rT   r0   r  rV  r:   r  )r   r  rK  r0   r   rh  )r  rK  r  rT   r0   r   r  E)r   r  rK  r  r0   rZ  rN  r  F)r  r   r  rK  r0   r   r<     r   G)r  r   r  r0   rK  rM  r8  r  r  H)r   r  rK  r  r<  r0   r   r@   )rj   rN  r   r  copyr  r'   r   rW  r  r  rI   )r2   r3   ynr-   r"   s        r#   test_stairs_optionsr  
  s   88O$bhh|&<&C&CE&JqA	
BFFBqEllnGCIIac1G$cI:IIa1Qe$&c  3IIb!8#I>IIbdAaCEdq3&c  3IIa"gailAaCu!d  IIa"gailA!3  8IIb2hqjmQqS2;;r2s1v+Ft3T  ;IIafTrTl1nR3B7tS  2II!Ir%   ztest_stairs_datetime.pngc            	          t        j                  d      \  } }|j                  t        j                  d      t        j                  t        j
                  d      t        j
                  d                   t        j                  d       y )NTrj  $   z
2001-12-27z
2002-02-02r   )rotation)r'   r   rW  rj   rr   rz  xticks)fr"   s     r#   test_stairs_datetimer  
  s[    LLD1EArIIbiimiil3l356 JJr%   c                     | j                         }|j                  g ddd       |j                         }|j                  g dd      }|j                  d       y )Nr  rB  T)r   rK  rt  )r   rW  	set_color)r    r!   r~  r  sts        r#   test_stairs_edge_handlingr    sR     ""$GNN9EN5   "F	yt	,BLLr%   c                      t        j                  ddd      } t        j                  ddd      }t        j                  |       t        j                  |d d t         j                  f         z   }| ||fS )Nr  r      r  )rj   r  rv  r  r  )r2   r3   r  s      r#   contour_datr    sY    
B3A
B3A
q	BFF1Q

]+,,Aa7Nr%   contour_hatchingc            
          t               \  } }}t        j                         \  }}|j                  | ||dg dt        j
                  d   j                  d      d       y )Nr  )r:  \r  rU  r  r   r   )r  r   extend)r  r'   r   r  r   r  
with_alphar  s        r#   test_contour_hatchingr    sT    mGAq!llnGCKK1a$:]]6*55c:  r%   contour_colorbargHzG?c            
         t               \  } }}t        j                         \  }}|j                  | ||t	        j
                  ddd      t        j                  d   ddd      }|j                  | ||t	        j
                  d	d
d      dgdd      }|j                  | ||t	        j
                  ddd      dgd      }|j                  ||      }|j                  |       |j                  |d       y )Ngg7A`?r   RdBug333333r  r   )levelsr   r  r  r  gg^I+r3   r   r:   )r  r  
linestylesr   r  r=   )r  r  r   r  F)erase)r  r'   r   r  rj   rr   r   r  r  rJ   	add_lines)	r2   r3   r  r-   r"   cscs1cs2rM   s	            r#   test_contour_colorbarr  $  s     mGAq!llnGC	Q1RYYtUC%@--/"	 
 
$B
 **Q1RYYtVS%A E ' !  #C **Q1RYYsC%= E !  #C <<r<"DNN3NN3eN$r%   z
hist2d.pngc                     dt         j                  d<   t        j                  j	                  d       t        j                  j                  d      dz  dz   } t        j                  j                  d      dz
  }t        j                         \  }}|j                  | |dd	       | |d
}t        j                         \  }}|j                  ddd|d       y )NFrl  r   r   r:   r   r~   Tr  
rasterizedr  r2   r3   )r  r  r  )r'   r   rj   rk   rl   r  r   hist2d)r2   r3   r-   r"   r  s        r#   test_hist2dr  ;  s     ',CLL"#IINN1
		Qq A
		QAllnGCIIaI- DllnGCIIc3RdtI<r%   zhist2d_transpose.pngc                  6   dt         j                  d<   t        j                  j	                  d       t        j
                  dgdz        } t        j                  j                  d      dz
  }t        j                         \  }}|j                  | |dd	       y )
NFrl  r   r   r   r:   r~   Tr  )	r'   r   rj   rk   rl   rN  r  r   r  r   s       r#   test_hist2d_transposer  M  ss     ',CLL"#IINN1 	!SA
		QAllnGCIIaI-r%   c                      t         j                  j                  d      \  } }t        j                         j	                         }|t        fD ]  }|j                  | |d        y )Nr  Tr8  )rj   rk   r'   r   r   r  )r2   r3   r"   objs       r#   test_hist2d_densityr  [  sS    99H%DAq				 BCy '

1a
&'r%   c                     t         j                  j                  d      \  } }t        j                         j	                         }|j                  | |       |j                         | j                         | j                         fk(  sJ |j                         |j                         |j                         fk(  sJ |j                         sJ y )Nr  )rj   rk   r'   r   r   r  r   rt  r  r   r  )r2   r3   r"   s      r#   test_hist2d_autolimitsr  b  s    99H%DAq		!	!	#BIIaO;;=QUUWaeeg....;;=QUUWaeeg....   r%   c            "       
   e Zd Z edgdd      d        Z edgdd      d	        Z ed
gdd      d        Z e       d        Zd Z	e
j                  j                  dddid ej                         iddiddig      d        Zd Zej$                  j'                  d      d        Zd Zd Z e       d        Z e       d        Zd Z e       d        Z e       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  d.fg d/d'fg d0d'fg d1d"fg d2gd'fg d2gd,z  d.fg d2gd*z  d'fg d2gd-z  d.fg d3gd'fg d3gd,z  d.fg d3gd*z  d'fg d3gd-z  d.fg d3gd,z  g d2gz   d'fg d3d4d5gd.fg d3d4d5d6gd'fg d3d4d5d6g d7gd.fg d3d4d)gd"fg d3d4d5d)gd"fg d3d4d5d6d)gd"fgZe
j                  j                  d8e      d9        Zej$                  j'                  d       e       d:               Zd; Zd< Z y')=TestScatterr;   r   Tr  c                 j   t        j                  g d      t        j                  g d      g dg dg dd}t        j                         \  }}|j	                  |d   dz
  |d	   dz
  |d
   |d          |j	                  |d   dz   |d	   dz   |d   |d          |j	                  dd	d
d|       y )Nr   r.  r:   r   r:   r   r:   r   rX  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  )rj   rN  r'   r   r;   )r  r  r-   r"   s       r#   test_scatter_plotzTestScatter.test_scatter_plotm  s    XXl+"((<2H,3C24 ,,.R


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


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


3sc
5r%   zscatter_marker.pngrC  r  c                 F   t        j                  d      \  }\  }}}|j                  g dg dg dg dg dd	       |j                  g dg dg dg dg dt        j                  d
d      	       d\  }}||z  t
        j                  z  }t        j                  ddt
        j                  z  d      }t        j                  t        j                  |      |z  |z  t        j                  |      |z  |z  g      }	|j                  g dg dg dg dg d|		       y )Nr   r*  r  r  )r9   r   r   r3   r#  r  )r7  rY  r  r   )rC  rX  gr#  r  )r=   r  ro  r   r   r?   	fillstyler  r   r:   r  )r'   r   r;   r  r  rj   r  r  column_stackrv  r  )
r  r-   r~  r  r  rxryarear  r$  s
             r#   test_scatter_markerzTestScatter.test_scatter_markerx  s    "||!4_c3L,3&3	 	 	 
 	L,3&3#//uE	 	 	G BBwAq255y"-!3d!:!#!3d!:!< =L,3&3 	 	 	"r%   zscatter_2D.pngc                     t        j                  d      }t        j                  d      }t        j                  ||      \  }}||z   }t        j                         \  }}|j                  |||dd       y )Nr   r:   r  face)r=   r  ro  )rj   rr   r  r'   r   r;   )r  r2   r3   r  r-   r"   s         r#   test_scatter_2DzTestScatter.test_scatter_2D  s^    IIaLIIaL{{1a 1E,,.R


1a1
7r%   c                    t        j                  g d      }t        j                  g d      }t        j                  |D cg c]  }t        |       c}      }t        j                  |D cg c]  }t        |       c}      }g d}g d}	|j                         }
|
j	                  ||||	       |j                         }
|
j	                  ||||	       y c c}w c c}w )NrN  rO  r  r  r  )rj   rN  r   r   r;   )r  r    r!   rR  rS  rA  r2   r3   r=   r  r"   s              r#   test_scatter_decimalz TestScatter.test_scatter_decimal  s    XX*+XX*+HH"-Qgaj-.HH"-Qgaj-.# 


1a1
"


2rQ!
$ .-s   C.Cc                 4   t        j                  t              5  t        j                  ddgddgddg       d d d        t        j                  t              5  t        j                  g dg dg d       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr9   r:   r   r   rY  r  )r   r   r  r'   r;   r  s    r#   test_scatter_colorzTestScatter.test_scatter_color  su    ]]:& 	:KKAAsCj9	:]]:& 	?KK	9I>	? 	?	: 	:	? 	?s   BBBBr  r   r  r  r  r   r  c                    d}t        j                  t        |      5  t        j                  g g fi | d d d        t        j                  t        |      5  t        j                  ddgddgfdg i| d d d        t        j                  g g fdg i| t        j                  ddgddgfdddgi| y # 1 sw Y   xY w# 1 sw Y   NxY w)	Nz"No data for colormapping provided r  r9   r:   r   r.  r=   r   )r   r  Warningr'   r;   )r  r  
warn_matchs      r#   test_scatter_color_warningz&TestScatter.test_scatter_color_warning  s     :
 \\'4 	*KKB)&)	*\\'4 	8KKAA7"77	8 	B+b+F+QFQF7q!f77	* 	*	8 	8s   B8C8CCc           	      .   t        j                  g dg dg dt        j                  dd      g d      }|j	                         j
                  d	k(  sJ t        |j                         g d
g dg dg       t        |j                         g d       y )NrF  r9   r   r:   0.1z0.3r  r   r/  r  rm  r7  ?r=   r   r   )r   r.  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    {{9i3H"*"6"6sf"M&57 ""$**f4444..03E3E3E3G 	H 	4..0/Br%   r  c                    t        j                  g dg dg ddg d      }t        |j                         |j	                                t        |j	                         g dg dg d	g       t        |j                         g d       y )
NrF  r  r  r2   r  r  r  r  r  )r'   r;   r   r  r  r  r  s     r#   test_scatter_unfillablez#TestScatter.test_scatter_unfillable  ss    {{9i3H"%&57 	4..0$2E2E2GH4..03E3E3E3G 	H 	4..0/Br%   c                    t        j                  d      }t        j                  t        d      5  t        j                  |||dd         d d d        t        j                  t        d      5  t        j                  |dd  |dd  |       d d d        t        j                  t        d      5  t        j                  ||d       d d d        y # 1 sw Y   xY w# 1 sw Y   QxY w# 1 sw Y   y xY w)Nr.  z$cannot be broadcast to match x and yr  r9   zmust be floatr"  )rj   rr   r   r   r  r'   r;   )r  r2   s     r#   test_scatter_size_arg_sizez&TestScatter.test_scatter_size_arg_size  s    IIaL]]:-ST 	%KK1ae$	%]]:-ST 	)KK!"qua(	)]]:_= 	%KK1e$	% 	%		% 	%	) 	)	% 	%s#   C/C0C)CC&)C2c                    t        j                  g ddt        j                  t        j                  gd      }t	        j
                  |j                         d      sJ t        j                  g ddt        j                  t        j                  dgd      }t	        j
                  |j                         d      sJ y )Nr  r9   r  r4  r  r  )r'   r;   rj   r  r  rT  rg  r  s     r#   test_scatter_edgecolor_RGBz&TestScatter.test_scatter_edgecolor_RGB  s    {{9q"&&"&&&9&/1!!$"4"4"6	BBB{{<!RVVRVVQ)?&24!!$"4"4"6EEEr%   c                    |j                         }t        j                  d   j                  d      j	                  d      }|j                  t        d      t        d      dt        j                  dt        j                  gg d|d	
       |j                         }t        j                  d   j                  d      }|j                  ddgddgddgddg|       |j                  ddgddgddgd       y )Nr  r  r8  badr.  r9   r:   r  Tr=   r  r   plotnonfiniter   r   r=   r  r   rC  )r  r   	r   r   r  r  with_extremesr;   r   rj   r  r  r    r!   r"   r   s        r#   test_scatter_invalid_colorz&TestScatter.test_scatter_invalid_color  s     }}Y'11"5CCCP 	

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


Aq6Aq6aV1vD
A


Aq6Aq6aV3
7r%   c                 z   |j                         }t        j                  d   j                  d      j	                  d      }|j                  t        d      t        d      dt        j                  dt        j                  gg d|d	
       |j                         }|j                  ddgddgddgddg|       y )Nr  r  rC  r  r.  r9   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CCCL


58U1XBFF+|E 	 	3 


Aq6Aq6aV1vD
Ar%   c           
          g d}t        j                         }t        j                  t        d      5  |j                  |||t        j                  dd      dd       d	d	d	       y	# 1 sw Y   y	xY w)
r  r  r  r  r  r~   r   r   )r=   r  r  r  N)r'   rx  r   r   r  r;   r  r  )r  r2   r"   s      r#   test_scatter_norm_vminvmaxz&TestScatter.test_scatter_norm_vminvmax  si    XXZ]]:"DE 	' JJq!qw'8'8b'AA  '	' 	' 	's   ,A))A2c                     |j                         }|j                  ddd       |j                         }|j                  dgdgdg       y )Nr9   rO  )r   r;   )r  r    r!   r"   s       r#   test_scatter_single_pointz%TestScatter.test_scatter_single_point  sH     


1a1



A3s
#r%   c                 >   t        j                  d      }|j                         }|j                  ||j	                  dd      |j	                  dd             |j                         }|j                  |j	                  dd      ||j	                  dd             y )Nr~   r:   r   rO  )rj   rr   r   r;   r   )r  r    r!   r2   r"   s        r#   test_scatter_different_shapesz)TestScatter.test_scatter_different_shapes  sw    IIbM 


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


199Q?A1a
9r%   )r  Nrgby
conversion)rB  N)r/  NNN)rX  r  r#  r/  N)jauner  r  r.  r   r   r   r  )r  z0.4r  r  )r  rB  r  C5)r  r   r  r  r  r9   r   r   r   rB  z0.0r  r   r9   r   zc_case, re_keyc                 r   d }d}ddd}|t        j                  t        ||         nGt        |t              r$t        |      dk(  rt        j                  d      nt        j                         }|5  t        j                  j                  j                  |d	i ||
       d d d        y # 1 sw Y   y xY w)Nc                       yNr   r   r   r%   r#   get_next_colorz2TestScatter.test_scatter_c.<locals>.get_next_colorM  s    r%   r.  z!^'c' argument has [0-9]+ elementsz^'c' argument must be a color)r  r  r  r   (argument looks like a single numeric RGBr8  r=   ro  r  xsizeget_next_color_func)r   r   r  r   r.  r  r  
contextlibnullcontextr   rx  r   _parse_scatter_color_args)r  c_casere_keyr   r#  REGEXPassert_contexts          r#   test_scatter_czTestScatter.test_scatter_cK  s    	  99 ! MM*F6N; &$'CK1,< $NO'') 	  	4HHMM33WRu$2 4 4	4 	4 	4s   5/B--B6c                    g dg}g dg}|j                         }|j                  t        j                  d      t	        d      |       |j                  t        j                  d      dz  t	        d      |       |j                         }|j                  t        j                  d      t	        d      |       |j                  t        j                  d      dz  t	        d      |       y )N)r9   r   皙?)r9   r   r.  r   r   rY  r.  r:   rO  )r   r;   rj   r   r   )r  r    r!   rgbrgbarx   rw   s          r#   test_scatter_single_color_cz'TestScatter.test_scatter_single_color_cc  s     "# !!#rwwqz5837rwwqz!|U1XT: ##%
E!H4
1eAh$7r%   c                    t        j                  d      }t        j                         \  }}t	        d      D ]K  }|j                  |t        j                  d|      d| dd|dz         }|j                         |dz   k(  rKJ  |j                  |t        j                  dd      dddg t	        dd      d       }t        |j                         g t	        dd      t        j                  d	          y )
Nr   r   r  r2   r   r9   )r=   r   r  r   C3lines.linewidth)rj   rr   r'   r   r   r;   rd   r  r   r   r   )r  r2   r-   r"   rA  pcs         r#   test_scatter_linewidthsz#TestScatter.test_scatter_linewidthss  s    IIaL,,.Rq 	0AArwwq!}!A3s'(1u  .B$$&!a%///	0
 ZZ2771a=D#7U1a[#7$#7  92,,.JU1a[J#,,7H*IJ	Lr%   c                    t        j                  t        d      5  t        j                  g dg dg dd       d d d        t        j                  t        d      5  t        j                  g dg dg dd	
       d d d        t        j                  t        d      5  t        j                  g dg dg dd	       d d d        y # 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   y xY w)NzGGot both 'linewidth' and 'linewidths', which are aliases of one anotherr  r  )r   rD  r   r   )r   r5  zGGot both 'edgecolor' and 'edgecolors', which are aliases of one another)#ffffffz#000000z#f0f0f0r8  )ro  r4  zGGot both 'facecolors' and 'facecolor', which are aliases of one another)
facecolorsr3  )r   r   r   r'   r;   r  s    r#   &test_scatter_singular_plural_argumentsz2TestScatter.test_scatter_singular_plural_arguments  s    ]]9"#$ 	Y KK	9TWX	Y
 ]]9"#$ 	/ KK	9#D$-/	/ ]]9"#$ 	1 KK	9#D&/1	1 	1	Y 	Y
	/ 	/	1 	1s#    C C" C#CC #C,)!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,  r1  r6  r:  r   r%   r#   r  r  l  s?   ykdC6 D6 +,$oV" W"0 '(d/R8 S8 % %? [[X%+V$4%+->W->->-@$A%+QK%+QK	!"#
8#
8C 	YYy!C "C%F 8 8 B B' $ $ : : 	
< 	 $'
L!
1l#
q$
q$
q'	%t,	$d+	"L1
d
Q 
Q
Q 
	4 
	!	W%
	!	T"
	!	W%
	!	yk	)40
%	'1
%	-t4
%i	8'B
%	)<8
%	0,?
%g	6EQ)V [[-/DE4 F4. 	YYy!8  "8L1r%   r  )ro  c                    | |||fS r  r   )r=   r#  ro  r  s       r#   _paramsr@    s    z65))r%   _resultz	c, colorszparams, expected_resultr#  rG  )r=   r  rX  rO  r  rY  r  )r   r   r   r9   c                     d }t        j                  j                  j                  | d|i\  }}}||j                  k(  sJ t        ||j                         y )Nc                       yr  r   r   r%   r#   r   z5test_parse_scatter_color_args.<locals>.get_next_color      r%   r$  )r   rx  r   r'  r=   r   r  )paramsexpected_resultr   r=   r  _edgecolorss         r#   test_parse_scatter_color_argsrH    sW     !XX]]DD	5%35Av{!!!!!FO223r%   zkwargs, expected_edgecolorsr  r  r/  )r4  ro  )r=   r4  ro  )r   r4  c                     d }| j                  dd       }| j                  dd       }t        j                  j                  j	                  ||| d|      \  }}}||k(  sJ y )Nc                       yr  r   r   r%   r#   r   z@test_parse_scatter_color_args_edgecolors.<locals>.get_next_color  rD  r%   r=   ro  r:   )r#  r$  )popr   rx  r   r'  )r  expected_edgecolorsr   r=   ro  r  result_edgecolorss          r#   (test_parse_scatter_color_args_edgecolorsrN    sm     	

3AL$/J//z6 	0 	P Aq
  3333r%   c                      d } t        j                  t        d      5  t        j                  g dg dg      }t
        j                  j                  j                  |d i d|        d d d        y # 1 sw Y   y xY w)Nc                       yr  r   r   r%   r#   r   z;test_parse_scatter_color_args_error.<locals>.get_next_color  rD  r%   z&RGBA values should be within 0-1 ranger  )r   r   r  )r   rD  r  r:   r  r#  r$  )	r   r   r  rj   rN  r   rx  r   r'  )r   r=   s     r#   #test_parse_scatter_color_args_errorrR    sn     
zE
G MHHo78//tBa^ 	0 	MM M Ms   A
A22A;zYou passed both c and facecolor/facecolors for the markers. c has precedence over facecolor/facecolors. This behavior may change in the future.)rB  r   rB  r   r   r  r  r  r  )r9   r9   r   zc, facecolorc                    d }t        j                  t        t              5  t        j
                  j                  j                  | dd|id|       ddd       t        j                  t        t              5  t        j
                  j                  j                  | dd|id|       ddd       y# 1 sw Y   bxY w# 1 sw Y   yxY w)z<Test the internal _parse_scatter_color_args method directly.c                       yr  r   r   r%   r#   r   z=test_parse_c_facecolor_warning_direct.<locals>.get_next_color  rD  r%   r  Nr9  r:   r"  r3  )r   r  rZ  WARN_MSGr   rx  r   r'  )r=   r3  r   s      r#   %test_parse_c_facecolor_warning_directrV    s     
k	2 9//D,	)B 	0 	99 
k	2 9//D+y)A 	0 	99 99 99 9s   1B5;1C5B>C
c                    t        j                         \  }}t        | t        t        f      rddgndg}|}t        j                  t        t              5  |j                  ||| |       ddd       t        j                  t        t              5  |j                  ||| |       ddd       y# 1 sw Y   GxY w# 1 sw Y   yxY w)z:Test the warning through the actual scatter plot creation.r   r9   r  )r=   r9  N)r=   r3  )
r'   r   r   r.  tupler   r  rZ  rU  r;   )r=   r3  r-   r"   r2   r3   s         r#   ,test_scatter_c_facecolor_warning_integrationrY    s     llnGCQu.AQCA	A 
k	2 4


1a1
34 
k	2 3


1a1	
23 3	4 43 3s   B2B>2B;>Cc                      t        j                  t        d      5  t        j                  ddi       d d d        y # 1 sw Y   y xY w)NzF'aitof' is not a valid value for projection\. Did you mean: 'aitoff'\?r  r  aitofr  )r   r   r  r'   r   r   r%   r#   test_invalid_projectionr]    s=    	z9
: 9 	w 789 9 9s	   >Ac                  V    G d d      }  |        } |        }t         j                  |_        t        j                  d|      }t        |      t        u sJ t        j                          t        j                  d|      }t        |      t        u sJ t        j                          y )Nc                       e Zd Zd Zd Zy)#test_as_mpl_axes_api.<locals>.Polarc                     d| _         y Nr   )theta_offsetr  s    r#   __init__z,test_as_mpl_axes_api.<locals>.Polar.__init__  s
     !Dr%   c                 *    t         d| j                  ifS )Nrc  )r   rc  r  s    r#   _as_mpl_axesz0test_as_mpl_axes_api.<locals>.Polar._as_mpl_axes  s    ~t/@/@AAAr%   N)r  r  r  rd  rf  r   r%   r#   Polarr`    s    	"	Br%   rg  rG  r  y   )	rj   r  rc  r'   rx  typer   r|  rz  )rg  prjprj2r"   s       r#   test_as_mpl_axes_apirl    s    B B 'C7DD 
,3	/B8y   IIK 
SS	)B8y   IIKr%   c                  >   t        j                         \  } }t        j                         \  }}t        j                  |       |t        j                         u sJ | t        j                         u sJ t        j
                  |        t        j
                  |       y r  )r'   r   scars  gcfr|  )fig1r  fig2r  s       r#   test_pyplot_axesrr  -  si    ID#ID#GGCL#'')3779IIdOIIdOr%   c                  v   t        j                         \  } }|j                  t        j                  t        j
                  dd                   |j                  dd       |j                          |j                  dd       d |j                  |j                  fD        \  }}|g dk(  sJ |g d	k(  sJ y )
Nr   r   r,        @)r  r`  c              3      K   | ]J  }|j                         D cg c],  }|j                         |j                  j                         f. c} L y c c}w wr  )_update_ticksget_loclabel1get_text)r/  r   r  s      r#   r0  z"test_log_scales.<locals>.<genexpr>>  sG       6:5G5G5IJ!))+qxx((*	+JJs   A1A
A))r   z$\mathdefault{9^{0}}$)r`  z$\mathdefault{9^{1}}$)g     @T@z$\mathdefault{9^{2}}$r   r   r  r   r  r   r  r   )r]  r   )r^  r   )r_  r   )g      2@r   )g      ;@r   )g      B@r   )g     F@r   )g      K@r   )g     O@r   )      R@r   ))gF]tE?z$\mathdefault{5.5^{-1}}$)r   z$\mathdefault{5.5^{0}}$)rt  z$\mathdefault{5.5^{1}}$)gF]tE?r   )gtE]t?r   )gF]tE?r   )g]tE?r   rz  r{  r|  r}  )r'   r   r   rj   r,  r  r  r  rU  r[   r]   )r-   r"   r  ytickss       r#   test_log_scalesr  8  s    llnGCGGBFF2;;sC()*MM%cM"OOMM%cM"XXrxx(NFF     &     r%   c                     t        j                         \  } }|j                  dd       |j                  j	                  t        j                  d             |j                         |j                         cxk(  rdk(  sJ  J y )Nr,  )r  r  r9   r9   r~   )	r'   r   r   r[   r  r   MultipleLocatorr   r   r  s     r#   test_log_scales_no_datar  d  sc    LLNEArFF%F&HHw66q9:;;=BKKM4W44444r%   c                  ~   t        j                         \  } }|j                  d       t        j                  t
        d      5  |j                  dd       d d d        |j                  d       t        j                  t
        d      5  |j                  dd       d d d        y # 1 sw Y   QxY w# 1 sw Y   y xY w)Nr,  zAttempt to set non-positiver  r   r~   )	r'   r   rU  r   r  rZ  r  r  r  r,   s     r#   test_log_scales_invalidr  k  s    llnGCMM%	k)F	G 
BMM%	k)F	G 
B   s   B'B3'B03B<zstackplot_test_image.pngc            	         t        j                         } t        j                  ddd      }d|z  }d|z  dz   }d|z  dz   }| j	                  ddd      }|j                  ||||       |j                  dd       |j                  dd       ||||d	}t        j                         \  } }|j                  d
ddd|g d       |j                  dd       |j                  dd       y )Nr   r~   r   r   r9   r  r:   r5  )r2   r  rQ  y3r2   r  rQ  r  )r  C1C2)r  r  )	r'   r   rj   r  r   	stackplotr  r  r   )r-   r2   r  rQ  r  r"   r  s          r#   test_stackplotr  u  s     **,C
Ar2A	qB	q1B	q1B	Aq	!BLLBBKK2KK2 "Bb1DllnGCLLdD$T:LLMKK2KK2r%   zstackplot_test_baseline.pngc                     t         j                  j                  d       d }  | dd      }d|dd d f<   t        j                  dd      \  }}|d   j                  t        d      |j                  d	       |d
   j                  t        d      |j                  d	       |d   j                  t        d      |j                  d	       |d   j                  t        d      |j                  d	       y )Nr   c                    t        j                  || f      }t        |       D ]  }t        d      D ]  }ddt         j                  j                         z   z  }dt         j                  j                         z  dz
  }ddt         j                  j                         z   z  }|d d |fxx   |t        j                  t        j
                  |      |z  |z
  |z  dz         z  z  cc<     |S )Nr   r9   r   r:   r   r~   )rj   r  r   rk   exprr   )r  r  r   rA  jr2   r3   r  s           r#   layersz'test_stackplot_baseline.<locals>.layers  s    HHaVq 	JA1X Jbii..001		((**R/"ryy//112!Q$1rvv1)9A)=(Bq'H&HIII	J	J r%   r   r   rY  r:   r  zerora  r  symr9   r   wiggler}  weighted_wiggle)rj   rk   rl   r'   r   r  r   r  )r  r  r-   r  s       r#   test_stackplot_baseliner    s     IINN1 	q#AAb!eH||Aq!HCIc
ACC&9Ic
ACC%8Ic
ACC(;Ic
ACC2CDr%   c                 8   t        j                  ddd      }d|z  }d|z  dz   }d|z  dz   }|j                         }|j                  ||||g dd	g
       |j	                  dd       |j                  dd       t        j                  t        |            }| j                         }|j                  |||dd	       |j                  ||||z   dd	       |j                  |||z   ||z   |z   dd	       |j	                  dd       |j                  dd       y )Nr   r~   r   r   r9   r  r:   )r2   r  \\r9  )r<  r  r5  r2   )r<  r3  r  r  )	rj   r  r   r  r  r  r  r  r  )	r!   r    r2   r  rQ  r  rw   stack_baselinerx   s	            r#   test_stackplot_hatchingr    s   
Ar2A	qB	q1B	q1B!GaR+>yQQQXXc!f%NF
>2SGL
2r"uDGD
2b5"R%(&GL
OOAr
OOArr%   c                     t        j                  ddd      } d| z  }d| z  dz   }ddg}t        j                         \  }}|j	                  | |||dd	g
      }t        ||      D ]+  \  }}t        j                  |j                         |      r+J  |j	                  | |||dd	g      }t        ||      D ]+  \  }}t        j                  |j                         |      r+J  y )Nr   r~   r   r   r9   rX  r#  r=   r  )r3  r  )r9  r  )	rj   r  r'   r   r  r  r  rT  rf  )	r2   r  rQ  r9  r-   r"   collsr  fcolors	            r#   test_stackplot_facecolorr    s    
Ar2A	qB	q1BsJllnGCLLBj#sLLEE:. @f!!$"4"4"6???@ LLBz3*LMEE:. @f!!$"4"4"6???@r%   c                      t        j                         } | j                  dd      }|D ]/  }|j                  dd      }|j	                  ddgddggdg       1 | j                          | j                          y )Nr9   r:   r(  r   r.  r   r  )r'   r   
subfiguresr   r  rI   draw_without_rendering)r-   subfigs_figr"   s       r#   test_stackplot_subfig_legendr    sw     **,Cnn1An.G 5]]!],
aVq!fXse45 JJL r%   c                     | S r  r   )r  s    r#   r  r    s    1 r%   c                    t         j                  j                  d       t        j                  j
                  t         j                  j                  ddd      fi | }t        j                         \  }}|j                  dd      dk(  r|j                  d       n|j                  d       |j                  d	d
      s$t        j                  d   t        j                  d<    |j                   ||      fi | y )N  re  r   )r[  r.  )meansigmar  rT   verticalr,  patch_artistFr4  boxplot.boxprops.linewidth)rj   rk   rl   r   cbookboxplot_stats	lognormalr'   r   getr  rU  r   bxp)stats_kwargstransform_stats
bxp_kwargslogstatsr-   r"   s         r#   _bxp_test_helperr    s    IINN3yy&&
		Rg>PBNPHllnGC~~mZ0J>
e
e >>.%0LL*+ 	12
BFF?8$3
3r%   zbxp_baseline.pngr  c                      t                y r  r  r   r%   r#   test_bxp_baseliner    s
     r%   zbxp_rangewhis.pngc                  4    t        t        ddg             y )Nr   r   whisr  r  r  r   r%   r#   test_bxp_rangewhisr    s     $QH"56r%   zbxp_percentilewhis.pngc                  4    t        t        ddg             y )Nr   _   r  r  r  r   r%   r#   test_bxp_percentilewhisr    s     $QG"45r%   zbxp_with_xlabels.pngc                  "    d } t        |        y )Nc                 J    t        | t        d            D ]
  \  }}||d<    | S NABCDr0   r  r.  statsr  r0   s      r#   r2  z(test_bxp_with_xlabels.<locals>.transform  .    E4<0 	HAuAgJ	r%   )r  r  r2  s    r#   test_bxp_with_xlabelsr    s    
 Y/r%   zbxp_horizontal.pngr   )r  r8  r   r   c                  0    t        t        d             y )NrR   rS   r  r  r   r%   r#   test_bxp_horizontalr    s      >?r%   zbxp_with_ylabels.pngc                  8    d } t        | t        d             y )Nc                 J    t        | t        d            D ]
  \  }}||d<    | S r  r  r  s      r#   r2  z(test_bxp_with_ylabels.<locals>.transform  r  r%   rR   rS   r  r  r  r  s    r#   test_bxp_with_ylabelsr    s    
 Y $ >@r%   zbxp_patchartist.png)r  r8  r   c                  0    t        t        d             y )NT)r  r  r  r   r%   r#   test_bxp_patchartistr  #  s    
 $ 78r%   zbxp_custompatchartist.pngr   c            
      J    t        t        dt        ddd                   y )NTr  r   :)r3  r4  r  )r  boxpropsr  r  r   r%   r#   test_bxp_custompatchartistr  +  s$    
 GD!F Gr%   zbxp_customoutlier.pngc            	      H    t        t        t        ddd                   y )Nr/  r  r  r   r   mfc)
flierpropsr  r  r   r%   r#   test_bxp_customoutlierr  5  s!    
 &#>!@ Ar%   zbxp_withmean_custompoint.pngc            
      J    t        t        dt        ddd                   y )NTr/  r  r   r  )	showmeans	meanpropsr  r  r   r%   r#   test_bxp_showcustommeanr  >  s"    
 A! r%   zbxp_custombox.pngc            	      H    t        t        t        ddd                   y )NrV  r#  r   r   r   rK  )r  r  r  r   r%   r#   test_bxp_customboxr  I      
 CA6!8 9r%   zbxp_custommedian.pngc            	      H    t        t        t        ddd                   y )NrV  r#  r   r  medianpropsr  r  r   r%   r#   test_bxp_custommedianr  R  s    
 4sq9!; <r%   zbxp_customcap.pngc            	      H    t        t        t        ddd                   y )NrV  r  r   r  )cappropsr  r  r   r%   r#   test_bxp_customcapr  [  r  r%   zbxp_customwhisker.pngc            	      H    t        t        t        ddd                   y )NrU  r  r   r  )whiskerpropsr  r  r   r%   r#   test_bxp_customwhiskerr  d  s    
 Csq9!; <r%   c                     t        j                  d      }ddi}i |ddi}| j                         j                  ||       |j                         j                  ||       y )Nr   r5  r  rf  rc  r  )rj   rr   r   r  )r    r!   r  medianprops_testmedianprops_refs        r#    test_boxplot_median_bound_by_boxr  m  sf    99Q<D#R(D)D+;VDO3CDtAr%   zbxp_withnotch.pngc                  0    t        t        d             y )NT)shownotchesr  r  r   r%   r#   test_bxp_shownotchesr  v  s    
  67r%   zbxp_nocaps.pngc                  0    t        t        d             y )NF)showcapsr  r  r   r%   r#   test_bxp_nocapsr  ~  s    
 e 45r%   zbxp_nobox.pngc                  0    t        t        d             y )NF)showboxr  r  r   r%   r#   test_bxp_noboxr    s    
 U 34r%   zbxp_no_flier_stats.pngc                  8    d } t        | t        d             y )Nc                 8    | D ]  }|j                  dd         | S )Nfliers)rK  )r  r  s     r#   r2  z*test_bxp_no_flier_stats.<locals>.transform  s$     	"AEE(D!	"r%   F)
showfliersr  r  r  s    r#   test_bxp_no_flier_statsr    s    

 Y $ 68r%   zbxp_withmean_point.pngc                  2    t        t        dd             y )NTFr  meanliner  r  r   r%   r#   test_bxp_showmeanr    s    
 te DEr%   zbxp_withmean_line.pngc                  2    t        t        dd             y )NTr  r  r  r   r%   r#   test_bxp_showmeanasliner
    s    
 td CDr%   zbxp_scalarwidth.pngc                  0    t        t        d             y )Nr  r  r  r  r   r%   r#   test_bxp_scalarwidthr    s    
 C 01r%   zbxp_customwidths.pngc                  4    t        t        g d             y )N)r   r  g?g333333?r  r  r  r   r%   r#   test_bxp_customwidthsr    s    
 ,D EFr%   zbxp_custompositions.pngc                  4    t        t        g d             y )N)r9   r   r   r  r  r  r  r   r%   r#   test_bxp_custompositionsr    s    
 | <=r%   c                      t        j                  t              5  t        t	        dg             d d d        y # 1 sw Y   y xY w)Nr9   r  r  r   r   r  r  r  r   r%   r#   test_bxp_bad_widthsr    s2    	z	" 6D$456 6 6	   ;Ac                      t        j                  t              5  t        t	        ddg             d d d        y # 1 sw Y   y xY w)Nr:   r   r  r  r  r   r%   r#   test_bxp_bad_positionsr    s4    	z	" <DAq6$:;< < <s	   <Azbxp_custom_capwidths.pngc                  4    t        t        g d             y )N)r  r   r   r   r  r  r  r   r%   r#   test_bxp_custom_capwidthsr    s     /C DEr%   zbxp_custom_capwidth.pngc                  0    t        t        d             y )Nr  r  r  r  r   r%   r#   test_bxp_custom_capwidthr    s     s 34r%   c                      t        j                  t              5  t        t	        dg             d d d        y # 1 sw Y   y xY w)Nr9   r  r  r  r   r%   r#   test_bxp_bad_capwidthsr    s2    	z	" 9DA3$789 9 9r  zboxplot.pnggQ?)r   r   c                     t         j                  j                  d       t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}|j                  | | gdd	       |j                  d
d       d| | gi}t        j                         \  }}|j                  ddd|       |j                  d
d       y )Nr  r     r  '  r9   	bootstrapnotchr  r   r2   )r#  r$  r  	rj   rk   rl   r  hstackr'   r   r  r  )r2   r-   r"   r  s       r#   test_boxplotr'    s     IINN3
B3A
		32,AllnGCJJ1vaJ0KKR !Q=DllnGCJJse14J8KKRr%   c                    t        j                  ddd      }| j                         }||dk\     }|j                  |       t         j                  j                  |d      }|j                         }|j                  |       y )Nr   r9   r  r   )rj   r  r   r  r	   masked_less)r    r!   x_origr"   r2   s        r#   test_boxplot_maskedr+    sl     [[Q$F				Bv{AJJqM
&!$A				BJJqMr%   zboxplot_custom_capwidths.pngc                      t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}|j                  | | gdddg	       y )
Nr  r  r  r   r  r9   r  r   )r$  r  )rj   r  r&  r'   r   r  r<  s      r#   test_boxplot_custom_capwidthsr-    sS     	B3A
		32,AllnGCJJ1vQ4+J6r%   zboxplot_sym2.pngc                  x   t         j                  j                  d       t        j                  ddd      } t        j                  d| dg      } t        j                  dd      \  }\  }}|j                  | | gd	d
       |j                  dd       |j                  | | gd	d       |j                  dd       y )Nr  r  r  r  r   r  r9   r:   r!  ^)r#  r  r  r   r  r%  )r2   r-   r  r  s       r#   test_boxplot_sym2r0    s     IINN3
B3A
		32,All1a(OC#sKKA%SK1LLbKKA%SK1LLbr%   zboxplot_sym.pngc                      t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}|j                  | | gd       |j                  dd	       y )
Nr  r  r  r   r  r'  r  r  r   )rj   r  r&  r'   r   r  r  r<  s      r#   test_boxplot_symr3    s[    
 	B3A
		32,AllnGCJJ1v4J KKRr%   z$boxplot_autorange_false_whiskers.pngz#boxplot_autorange_true_whiskers.pngc                     t         j                  j                  d       t        j                  d      } t        j                  d| dg      } t        j                         \  }}|j                  | | gdd       |j                  dd	       t        j                         \  }}|j                  | | gddd
       |j                  dd	       y )Nr  r  r   r:   r!  r9   r"  r  r   T)r#  r$  	autorange)	rj   rk   rl   r   r&  r'   r   r  r  )r2   rp  r  rq  r  s        r#   test_boxplot_autorange_whiskersr6  *  s    
 IINN3
A
		1a)AID#KKA%qK1LLQID#KKA%qDKALLQr%   c                     t        j                  ddd      }t        j                  d|dg      }t        j                  |      5  | j                  ||g       d d d        | S # 1 sw Y   | S xY w)Nr  r  r  r   r  )rj   r  r&  rW   r   r  )r"   rc_dictr2   s      r#   _rc_test_bxp_helperr9  =  s`    
B3A
		32,A			w	' 


Aq6IIs   A##A-zboxplot_rc_parameters.png)r8  r  r   r   c                     t         j                  j                  d       t        j                  d      \  } }i dddddgdd	d
dddddddddddddddddddddddddddddd }d!d"gdd#}dd$d$d$dddddddd%d&}|||g}t        ||      D ]  \  }}t        ||        t        j                  j                  |d'   j                         D cg c]  }t        |       c}v sJ y c c}w )(Nr  r   zboxplot.notchTboxplot.whiskersr   r  zboxplot.bootstrapr!  zboxplot.flierprops.colorr#  boxplot.flierprops.markerr   z"boxplot.flierprops.markerfacecolorr  z"boxplot.flierprops.markeredgecolorzboxplot.flierprops.markersizezboxplot.flierprops.linestylerV  zboxplot.flierprops.linewidthr   zboxplot.boxprops.colorrX  r  zboxplot.boxprops.linestylezboxplot.capprops.colorr=   zboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorrC  )zboxplot.medianprops.linewidthzboxplot.medianprops.linestyler   r   )r;  zboxplot.patchartistF-.)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.linestyler9   )rj   rk   rl   r'   r   r  r9  rW   r:  r;  get_childrenri  )	r-   r"   rc_axis0rc_axis1rc_axis2	dict_listr   rc_axisr  s	            r#   test_boxplot_rc_parametersrD  E  s   
 IINN3ll1oGCQG 	U
 	#C 	$S 	-c 	-c 	( 	' 	' 	!# 	%c 	%d" 	!##$ 	%c%& 	%d'* 	$S+, *-)-/H6 H#H  ! #! #&'*'+&)*-*.H  8X.IR+ +gD'*+ (( e0023T!W34 5 43s   C6zboxplot_with_CIarray.pngc                  \   t         j                  j                  d       t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}t        j                  ddgd	d
gg      }|j                  | | gdd dg|d       |j                  dd       y )Nr  r  r  r  r   r  r`  r  ra        @r!  r   r9   )r#  usermediansconf_intervalsr$  r  r   )
rj   rk   rl   r  r&  r'   r   rN  r  r  )r2   r-   r"   CIss       r#   test_boxplot_with_CIarrayrJ    s     IINN3
B3A
		32,AllnGC
((T2Jc
+
,C JJ1vT3K!  ,KKRr%   zboxplot_no_inverted_whisker.pngc                  .   t        j                  g dt         j                        } t        j                         }|j                  |        |j                  d       |j                  j                  dd       |j                  j                  d       y )N)r   i(#  r  X   i^  i@ ix  i  r  r,  Fminorwhich)
rj   rN  r  r'   rx  r  r  r]   r  r[   )r2   r  s     r#   test_boxplot_no_weird_whiskerrP    sb     	;zz	#A
((*CKKNNN5IINN5N(IINN5r%   c                     t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}t        j                  t              5  |j                  | ddg       d d d        t        j                  t              5  |j                  | | gddgddgg       d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)	Nr  r  r  r   r  r9   r:   )rG  	rj   r  r&  r'   r   r   r   r  r  r<  s      r#   test_boxplot_bad_mediansrS    s    
B3A
		32,AllnGC	z	" *


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


Aq6AA'7
89 9* *9 9s    B<C<CCc                     t        j                  ddd      } t        j                  d| dg      } t        j                         \  }}t        j                  t              5  |j                  | | gddgg       d d d        t        j                  t              5  |j                  | | gddgdgg       d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)	Nr  r  r  r   r  r9   r:   )rH  rR  r<  s      r#   test_boxplot_bad_cirU    s    
B3A
		32,AllnGC	z	" 4


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


Aq6Aq6A3-
89 94 49 9s    B>C
>C
Cc                     t        j                  d      } t        j                         \  }}|j	                  |       d   d   j                         dk(  sJ |j	                  | d      d   d   j                         dk(  sJ y )Nr~   boxesr   r:   r  )rj   rr   r'   r   r  rQ  )r2   r  r"   s      r#   test_boxplot_zorderrY    su    
		"AllnGC::a=!!$//1Q666::a:#G,Q/::<BBBr%   c                     dt         j                  d<   dt         j                  d<   dt         j                  d<   t        j                         \  } }t        j                  d      }d|d	<   |j                  |d
      }dD ]!  }||   D ]  }|j                         dk(  rJ  # |d   d   j                         dk(  sJ |d   d   j                         dk(  sJ y )Nr  rl  r   r<  r/  zboxplot.meanprops.markerr   r  r   T)r  )whiskerscapsrW  mediansr   r  r   means)r'   r   r   rj   rr   r  
get_marker)r-   r"   	test_data
bxp_handle	bxp_lines	each_lines         r#   test_boxplot_marker_behaviorrd    s    #&CLL 03CLL,-/2CLL+,llnGC		#IIbMI6J= 0	#I. 	0I'')R///	00 h"--/3666gq!,,.#555r%   z&boxplot_mod_artists_after_plotting.pngc                      g d} t        j                         \  }}|j                  | d      }|D ]  }||   D ]  }|j                  d         y )N)r  rj  ru  ru  Q?gQ?gQr   r2  r   )r'   r   r  r  )r2   r-   r"   bpkeyr  s         r#   &test_boxplot_mod_artist_after_plottingri    sX     	4AllnGC	A3	B #c7 	#CMM'"	##r%   zviolinplot_vert_baseline.pngc                     t         j                  j                  d       t        d      D  cg c]"  } t         j                  j	                  d      $ }} t        j                         }|j                  |t        d      ddd       d|i}t        j                         \  }}|j                  dt        d      ddd|       y c c} w )	Nier.  r   r  Fr  r  showextremashowmediansr  )r  r  rl  rm  r  )	rj   rk   rl   r   rm   r'   rx  
violinplotr   )r  r  r"   r-   s       r#   test_vert_violinplot_baselinero    s     IINN905a91BII#&9D9	BMM$%(e#  % ;DllnGCMM#qU#$  0 :s   'Czviolinplot_vert_showmeans.pngc                     t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddd       y c c}w )Niw5+r.  r   r  TFrk  r'   rx  rj   rk   rl   r   rm   rn  r"   r  r  s      r#   test_vert_violinplot_showmeansrs    sk    	BIINN905a91BII#&9D9MM$%(d#  % :   'B
zviolinplot_vert_showextrema.pngc                     t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddd       y c c}w )Nir.  r   r  FTrk  rq  rr  s      r#    test_vert_violinplot_showextremarv    sk    	BIINN905a91BII#&9D9MM$%(e#  % :rt  zviolinplot_vert_showmedians.pngc                     t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddd       y c c}w )Nib}&r.  r   r  FTrk  rq  rr  s      r#    test_vert_violinplot_showmediansrx     sk    	BIINN905a91BII#&9D9MM$%(e"  $ :rt  zviolinplot_vert_showall.pngc                  8   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddddgdd	gd
dgddgg       y c c}w )NiOr.  r   r  Tr   ?r   r  r   r  rD  r  )r  r  rl  rm  	quantilesrq  rr  s      r#   test_vert_violinplot_showallr|  
  s    	BIINN905a91BII#&9D9MM$%(d"!3Z#sc3Z#sL  N :s   'Bz#violinplot_vert_custompoints_10.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )Ni$r.  r   r  Fr~   r  r  rl  rm  pointsrq  rr  s      r#   $test_vert_violinplot_custompoints_10r    sm    	BIINN905a91BII#&9D9MM$%(e#B  0 :   'Bz$violinplot_vert_custompoints_200.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )NiYqVr.  r   r  Fr  r~  rq  rr  s      r#   %test_vert_violinplot_custompoints_200r    sm    	BIINN905a91BII#&9D9MM$%(e#C  1 :r  zviolinplot_horiz_baseline.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )Ni\dr.  r   r  rR   Fr  rT   r  rl  rm  rq  rr  s      r#   test_horiz_violinplot_baseliner  )  sn    	BIINN905a91BII#&9D9MM$%(PU#  8 :r  z violinplot_horiz_showmedians.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )	Nilo/r.  r   r  rR   FTr  rq  rr  s      r#   !test_horiz_violinplot_showmediansr  3  sn    	BIINN905a91BII#&9D9MM$%(PU#  7 :r  zviolinplot_horiz_showmeans.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )	Ni&r.  r   r  rR   TFr  rq  rr  s      r#   test_horiz_violinplot_showmeansr  =  sn    	BIINN905a91BII#&9D9MM$%(PT#  8 :r  z violinplot_horiz_showextrema.pngc                      t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      dddd       y c c}w )	Nie!r.  r   r  rR   FTr  rq  rr  s      r#   !test_horiz_violinplot_showextremar  G  sn    	BIINN905a91BII#&9D9MM$%(PU"  7 :r  zviolinplot_horiz_showall.pngc                  :   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddddddgd	d
gddgddgg       y c c}w )Ni"r.  r   r  rR   Tr   rz  r   r  r   r  rD  r  )r  rT   r  rl  rm  r{  rq  rr  s      r#   test_horiz_violinplot_showallr  Q  s    	BIINN805a91BII#&9D9MM$%(PT"!3Z#sc3Z#sL  N :s   'Bz$violinplot_horiz_custompoints_10.pngc            	      "   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddddd       y c c}w )	Ni0r.  r   r  rR   Fr~   r  rT   r  rl  rm  r  rq  rr  s      r#   %test_horiz_violinplot_custompoints_10r  \  sq    	BIINN905a91BII#&9D9MM$%(PU#r  C :   'Bz%violinplot_horiz_custompoints_200.pngc            	      "   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}| j                  |t        d      ddddd       y c c}w )	Ni<9!r.  r   r  rR   Fr  r  rq  rr  s      r#   &test_horiz_violinplot_custompoints_200r  f  sq    	BIINN905a91BII#&9D9MM$%(PU#s  D :r  zviolinplot_sides.pngc            
      p   t        j                         } t        j                  j	                  d       t        j                  j                  d      g}t        g dg d      D ]  \  }}| j                  ||gdddd|	         t        g d
g d      D ]  \  }}| j                  ||gdddd|	         y )Nr`   r   r  )r   r  r   )r   lowhighrR   FT)r  rT   r  rl  rm  side)r.  rF        @r  )r'   rx  rj   rk   rl   rm   r  rn  )r"   r  r   r  s       r#   test_violinplot_sidesr  p  s    	BIINN8II#&'D)@A E	T
dseQV"&Dt 	 	EE (?@ E	T
dseu"&Dt 	 	EEr%   c            	          t        j                   ddd      t        j                   ddd      t        j                   ddd      g} | g ddd	d
dg dd| g dddddg ddgS )Ni  r:   r~   r   rK  r   )r7  ffffff@r   gq=
ףp?r   r7  r  )r7  r   r  )coordsr  r  medianrt  r  r{  )r  rm  rz  gGz?rz  r  rm  )r  rz  rm  )rG  )	datetimess    r#   violin_plot_statsr    s    $2&$2&$1%I $ $ r%   c                  &   t        j                         \  } }t        j                  d      t        j                  d      g}ddg}t	        j
                  t        d      5  |j                  t               ||       ddd       y# 1 sw Y   yxY w)	?Test that datetime positions with float widths raise TypeError.
2020-01-01z
2021-01-01r   r   z?np.datetime64 'position' values require np.timedelta64 'widths'r  r  r  N)	r'   r   rj   rz  r   r   r   violinr  r-   r"   r  r  s       r#   'test_datetime_positions_with_datetime64r    sz    llnGC|,bmmL.IJI3ZF	y8
: K 			#%6	JK K Ks   !BBc                  .   t        j                         \  } }t        j                  ddd      t        j                  ddd      g}ddg}t        j                  t
        d      5  |j                  t               ||       d	d	d	       y	# 1 sw Y   y	xY w)
r    r9   r  r   r   :datetime/date 'position' values require timedelta 'widths'r  r  Nr'   r   rG  r   r   r   r  r  r  s       r#   0test_datetime_positions_with_float_widths_raisesr    s    llnGC""4A.0A0A$10MNI3ZF	y3
5 K 			#%6	JK K Ks   %BBc                  *   t        j                         \  } }t        j                  ddd      t        j                  ddd      g}d}t        j                  t
        d      5  |j                  t               ||       ddd       y# 1 sw Y   yxY w)	zETest that datetime positions with scalar float width raise TypeError.r  r9   r  rd  r  r  r  Nr  r  s       r#   6test_datetime_positions_with_scalar_float_width_raisesr    s    llnGC""4A.0A0A$10MNIF	y3
5 K 			#%6	JK K Ks   #B		Bc                  z    t        j                         \  } }ddg}ddg}|j                  t               ||       y)z3Test that numeric positions with float widths work.r   r   r   r  N)r'   r   r  r  r  s       r#   +test_numeric_positions_with_float_widths_okr    s9    llnGCc
I3ZFII!YvIFr%   c                     t        j                         \  } }t        j                  ddd      dg}ddg}t        j                  t
        d      5  |j                  t               ||       d	d	d	       y	# 1 sw Y   y	xY w)
zZTest that mixed datetime and numeric positions
    with float widths raise TypeError.
    r  r9   r   r   r   r  r  r  Nr  r  s       r#   0test_mixed_positions_datetime_and_numeric_raisesr    sy     llnGC""4A.4I3ZF	y3
5 K 			#%6	JK K Ks   A66A?c                  t   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}t        j                  t              5  | j                  |t        d             d d d        y c c}w # 1 sw Y   y xY w)Ni@ 3r.  r   r  r   r  r'   rx  rj   rk   rl   r   rm   r   r   r  rn  rr  s      r#   test_violinplot_bad_positionsr    s    	BIINN905a91BII#&9D9	z	" 0
deAh/0 0 :0 0s   'B)B..B7c                  z   t        j                         } t        j                  j	                  d       t        d      D cg c]"  }t        j                  j                  d      $ }}t        j                  t              5  | j                  |t        d      g d       d d d        y c c}w # 1 sw Y   y xY w)NiA#r.  r   r  r  r  r  rr  s      r#   test_violinplot_bad_widthsr    s    	BIINN905a91BII#&9D9	z	" B
deAhyAB B :B Bs   'B, B11B:c                  :   t        j                         } t        j                  j	                  d       t        j                  j                  d      g}t        j                  t              5  | j                  |ddgddgg       d d d        y # 1 sw Y   y xY w)	Nil r   r  r   r   r   r  r{  
r'   rx  rj   rk   rl   rm   r   r   r  rn  r"   r  s     r#   test_violinplot_bad_quantilesr    s{    	BIINN9II#&'D 
z	" @
dSzC:&>?@ @ @s   .BBc                     t        j                         } t        j                  j	                  d       t        j                  j                  d      g}t        j                  t              5  | j                  |g dg       d d d        t        j                  t              5  | j                  |g dg       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)Niq4r   r  )r   r   r   ?r  )皙r   r   rd  r  r  s     r#   $test_violinplot_outofrange_quantilesr    s    	BIINN9II#&'D 
z	" ?
d'<&=>? 
z	" A
d'>&?@A A	? ?A As   .C&CCCc           
      ~   t         j                  j                  d       t        dd      D cg c],  }t	        t         j                  j                  d|d            . }}dddd}dd}|j                  dd	      } |d   j                  |fi |} |d   j                  |fi |} |d
   j                  |fi |}	 ||dd        ||d        ||	d       | j                  dd	      } |d   j                  |fddd|  |d   j                  |fddi|  |d
   j                  |fddi| y c c}w )Nr`   r9   r.  r   r   Tr  rl  rm  c                     |,| d   D ]$  }|j                  |       |j                  d       & |#dD ]  }|| v s| |   }|j                  |        yy)zHelper to color parts manually.Nbodiescbarscminscmaxescmeanscmedians)r  	set_alphaset_edgecolor)partsr3  	linecolorr5  partnamelcs         r#   color_violinsz:test_violinplot_color_specification.<locals>.color_violins  sr     Ho #  + T"#  N 0u$xB$$Y/0 !r%   r   r:   )rX  r   )rX  r   )r3  r  rX  rE  )r  r3  r  r  )rj   rk   rl   r   sortedrm   r   rn  )
r    r!   stdr  r  r  r"   parts0parts1parts2s
             r#   #test_violinplot_color_specificationr    sV    IINN8=B1a[IcF299##AsC01IDI!!F
0  
		!Q	BRUd-f-FRUd-f-FRUd-f-F&J*E&C(&C( 
		1a	 BBqETPZ:PPBqET3S3F3BqET3S3F3G Js   1D:c            
         t         j                  j                  d       t        dd      D  cg c],  } t	        t         j                  j                  d| d            . }} dddd}d }t        |      }t        |      }g d	}g d
}t        j                         }|j                         }	 |	j                  |f|||d|}
|
d   D cg c]  }|j                          }} ||t        j                  |             dD ]1  }|
|   j                         } ||t        j                  |             3 y c c} w c c}w )Nr`   r9   r   r   r   Tr  c                 @    t        d t        | |      D              sJ y )Nc              3   N   K   | ]  \  }}t        j                  ||        y wr  )r  rT  )r/  c1r  s      r#   r0  zNtest_violinplot_color_sequence.<locals>.assert_colors_equal.<locals>.<genexpr>-  s)      8r2 %%b"- 8s   #%)r1  r  )colors1colors2s     r#   assert_colors_equalz;test_violinplot_color_sequence.<locals>.assert_colors_equal,  s(     8!$Wg!68 8 	8 8r%   )rC  rX  )r#  r   )r  r   ))r3   rD  r#  r  )rC  r  )r  r3  r  r  r  )rj   rk   rl   r   r  rm   r  r'   r   rs  rn  rf  r  to_rgba_arrayrg  )r  r  r  r  r  r  r9  
linecolorsr    r"   
parts_testr  body_colorspartcolors_tests                  r#   test_violinplot_color_sequencer  %  s1    IINN8=B1a[IcF299##AsC01IDITJF8
 	D	AaI3J3J zz|H	Bt ))2)3)3) "(	)J /9.BC1??$CKCW%:%::%FGB L &446K)>)>z)JKL3 J, Ds   1D6
D;c                     t         j                  j                  d       t        j                  j                  ddd      g} t        j                         \  }}|j                  | dg      }t        j                  d   rdn&t        j                  d   j                         d	   d   }t        j                  |d
   d   j                         |df      sJ |d
   d   j                         dk(  sJ |d
   d   j!                  d       t        j                  |d
   d   j                         d      sJ |j                  | dgd      }t        j                  |d
   d   j                         d      sJ |d
   d   j                         J |d
   d   j!                  d       t        j                  |d
   d   j                         d      sJ y )Nr  r   r9   r   r  _internal.classic_moder3   zaxes.prop_cycler   r  r   rB  )rB  r   )r   r   )r  r3  )rW   r   r   rj   rk   rm   r'   r   rn  r   r   by_keyr  rT  rf  	get_alphar  )r  r-   r"   r  r3  s        r#   test_violinplot_alphar  G  s   #YYaC(*DllnGCMM$1#M.E %=>ll#45<<>wGJ eHoa0>>@9cBRSSS?1'')S000	(OA$$U+eHoa0>>@,OOO MM$1#MGEeHoa0>>@-PPP?1'')111	(OA$$U+eHoa0>>@%HHHr%   c                    t         j                  j                  d       t         j                  j                  d      g}| j	                         }|j                  |g d       |j	                         }|j                  |g dg       y )N+r   r  )r   r   rz  r  )rj   rk   rl   rm   r   rn  )r    r!   r  r"   s       r#   %test_violinplot_single_list_quantilesr  b  sq     IINN9II#&'D 
			BMM$/M2 
			BMM$?"3M4r%   c                 >   t         j                  j                  d       |j                  t         j                  j	                  d      g d      }|j                  t         j                  j	                  d      t        d            }|j                  t         j                  j	                  d            }| j                         j                  |||g       |j                         j                  |j                  |j                  |j                  g       y )	Nr  r  r  )rv  r  r  r   r   r.  r   r  rv  	ABCDEFGHIrM  )	rj   rk   rl   r   rm   r.  r   rn  r0  )r    r!   r  s1s2s3s         r#   test_violinplot_pandas_seriesr  r  s    IINN9	299###+3H	IB	299###+43D	EB	299###,	-B""BB<0!!299bii"CDr%   c                     t        j                         \  } }|j                  dd       |j                         }t        j
                  j                  d       t        j
                  j                  ddd      }t        j
                  j                  ddd      }|j                  ||gddgd	       |j                         }t        ||       y )
Nr   r.  r~   r   r  r9   r:   F)r  manage_ticks)
r'   r   r  r   rj   rk   rl   rm   r  r   )r  r"   old_xlimr  rQ  new_xlims         r#   test_manage_xticksr  |  s    LLNEArKK1{{}HIINN1			"a	$B			!Q	#BJJBxAq6J>{{}Hx*r%   c                     t        j                         \  } }|j                  t        j                  j                  d      dg       |j                  t        j                  j                  d      dg       | j                  j                          |j                         dk(  sJ t        |j                               ddgk(  sJ |j                         D cg c]  }|j                          c}ddgk(  sJ y c c}w )Nr   r   r  r   )rH  rt  r   5)r'   r   r  rj   rk   r   rl  r  r   r.  
get_xticksr  ry  rw  s      r#   test_boxplot_not_singler    s    llnGCJJryy~~c"qcJ2JJryy~~c"qcJ2JJOO;;=J&&& QF***"$"4"4"67QAJJL7C:EEE7s   C=c                      t        j                  ddgddg       t        j                  j	                  ddi       t        j                         } t        j                  | dd       y )Nr   r9   z	font.sizeP   raw)r6  format)r'   r   rW   r   updateioBytesIOsavefigr#  s    r#   test_tick_space_size_0r    sN     HHaVaVQ/0


AKKr%(r%   )errorbar_basic.pngzerrorbar_mixed.pngr  c            	      p   t        j                  dddt         j                        } t        j                  |        }ddt        j                  |       z  z   }d|z   }t        j                         }|j                         }|j                  | |dd       |j                  d       t        j                  d	d	d
      \  }}|d   }|j                  | ||d       |j                  d       |j                  d       |d   }|j                  | ||dd       |j                  d       |d   }|j                  | ||d	|z  g|d	|z  gd       |j                  d       |d   }|j                  d       t        j                  d||z
        }||z
  }|j                  | ||d	|z  g|ddd	       |j                  d       |j                  dd       |j                  d       | |d }	t        j                         }|j                         }|j                  d!d"dd|	#       |j                  d       y )$Nr   r.  r   r  r   rD  r^  z&Simplest errorbars, 0.2 in x, 0.4 in yr:   T)r)  r*  r  r  r   r`  r   zVert. symmetricnbinsr  )r_  r   r  zHor. symmetric w/ alphar  z--or`  r_  r   zH, V asymmetricr}  r,  r  r  )r`  r_  r   ecolorcapthickzMixed sym., log yr?  zVariable errorbarsr  r2   r3   r_  r`  r  )rj   rr   
longdoubler  r
  r'   r   rs  r[  r5   r   locator_paramsr  maximumr  suptitle)
r2   r3   r`  r_  r-   r"   r  ylower
yerr_lowerr  s
             r#   test_errorbarr    s   
 			#q#R]]3A
r
ARWWQZD:D **,C	BKK13SK)LL9: ||!1T:HC	TBKK14SK)LL"# A	TBKK14SK4LL*+	TBKK1D!D&>qvEKJLL"#	TBMM%ZZa$h'FVJKK1J$/da  1LL$%KKcLL%& D
**,C	BKKSs4K8LL9:r%   zmixed_errorbar_polar_caps.pngc                  `   t        j                         } t        j                  dd      }g d}dgdz  }|j                  ||ddd	
       t        j
                  dz  dz   t        j
                  dz   g}ddg}|j                  ||dt        j
                  z  dd	
       dt        j
                  z  dz  dz   dt        j
                  z  dz  dz   dt        j
                  z  dz
  g}dgdz  }g dg dg}g dg dg}	|j                  ||||	d	
       dg}
dg}|j                  |
|ddd	
       y)z
    Mix several polar errorbar use cases in a single test figure.

    It is advisable to position individual points off the grid. If there are
    problems with reproducibility of this test, consider removing grid.
    r  r1  r  r  rz  r   ffffff?r   r   r_  r`  r   r:   r   g?r  r  r  r.  r   rm  )r   r   r   )r   r   r   )r  r   r   )r   r  r    @@r~   N)r'   r   rz  r[  rj   r  )r-   r"   th_symr_symth_longr_longth_asymr_asymr_  r`  th_overr_overs               r#   test_mixed_errorbar_polar_capsr$    s#    **,C	SW	-B FE!GEKKDsK< uuQw|RUURZ(G3ZFKKcBEEk#KF wqy2~qwqy2~qws{;GU1WF,'D=)DKKd3K? eGUFKKbrsK;r%   c                  \   t        j                         \  } }t        j                  d      }d|z  }|j	                  ||d       \  }}}|j	                  |d|z  d       \  }}}|j                  |d|z        \  }t        j                  |j                               t        j                  d      k(  sJ t        j                  |j                               t        j                  d      k(  sJ t        j                  |j                               t        j                  d      k(  sJ y )Nr~   r:   rO  r.  r  r  r  )	r'   r   rj   rr   r[  r   r  to_rgba	get_color)r  r"   r2   r3   r  r  r   ln1s           r#   test_errorbar_colorcycler)    s    LLNEAr
		"A	!A{{1a4{(HB1{{1acT{*HB1771ac?DC??2<<>*good.CCCC??2<<>*good.CCCC??3==?+wt/DDDDr%   c           
      p   t        j                  ddd      }t        d      D cg c]  }t        j                  | |z          }}| j	                         }|j	                         }t        |g d      D ]:  \  }}|j                  |||dz  ddd	       |j                  |||dz  dd|d
       < y c c}w )Nr   r.  r   )r  r  r  r3  r  rU  r   r8  )r`  r   r   r  )r`  r   r   r   r  )rj   rr   r   r  r   r  r[  )	r    r!   r2   r  r3   axtaxryir   s	            r#   test_errorbar_cycle_ecolorr.    s    
		#q#A$Qx(!1(A(



C



C45 >	EQ"t) 	 	1Q"t)uW 	 	>> 	)s    B3c                     t        j                         } | j                         }t        j                  ddd      }t        j
                  |       }ddt        j                  |      z  z   }t        j                  |d|z  f      j                  }d|z   }t        j                  t              5  |j                  |||d       d d d        t        j                  t              5  |j                  |||d       d d d        t        j                  t              5  |j                  ||||d	       d d d        y # 1 sw Y   yxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)
Nr   r.  r   r   r:   r   r	  )r_  r   r  )r'   r   rs  rj   rr   r  r
  vstackr  r   r   r  r[  )r-   r"   r2   r3   yerr1r`  r_  s          r#   test_errorbar_shaper2    s   
**,C	B
		#q#A
r
A#bggaj. E99eQuW%&((D:D	z	" .
Aqt-.	z	" .
Aqt-.	z	" 9
Aqt$C89 9	. .. .9 9s$   /D=&E	E=E	EEzerrorbar_limits.pngc                     t        j                  ddd      } t        j                  |        }d}d}d}t        j                         \  }}|j                  | ||||d       t        j                  |       }d|g d	<   |j                  | |dz   ||||d
       t        j                  |       }d|g d<   |j                  | |dz   ||||d       |j                  | |dz   dd|||||d
       d}t        j                  | d      }d|ddg<   |}	|}
t        j                  |       }t        j                  |       }d|dg<   d|dg<   |j                  | |dz   dd|||	|
||dddd       |j                  dd       |j                  d       y )Nr   rt  r   r   dottedr   )r_  r`  r  r   T)r9   r   rv  r   )r_  r`  uplimsr  r   )r:   r.  r  r   rB  )r_  r`  lolimsr  r   r   r   r   magenta)r   r  r_  r`  r6  r5  r  r   r   r   r  r/  r   cyan)r   r  r_  r`  xlolimsxuplimsr5  r6  r  r;  capsizer   zErrorbar upper and lower limits)
rj   rr   r  r'   r   r[  
zeros_like	full_liker  r5   )r2   r3   r_  r`  r  r-   r"   r5  r6  r9  r:  s              r#   test_errorbar_limitsr>  &  s   
		#sC A
r
ADD	BllnGC KK14drK@ ]]1FF9KK1S5t$v"   ]]1FF9KK1S5t$v"   KK1S5Df9  F D<<3DD!QLGG]]1F]]1FFA3KFA3KKK1S5D&fa   KK3LL23r%   c                  D   dt        j                  g d      z  } t        j                  g d      }t        j                  |      dz  }t        j                  d      \  }\  }}|j                  d       |j                  d       |j                  | ||       |j                  | ||       |j                  d       |j                  d       t        |j                         |j                                t        |j                         |j                                y )Nr~   )rK  g2@g3333332@gL2@)r   r  r7  r   r:   r,  r`  )rj   rN  	ones_liker'   r   rU  r  r[  r   r   r   )r2   r3   r`  r-   r  r  s         r#   -test_errorbar_log_autoscale_order_independentrB  U  s    
bhh-..A
"#A<<?RDll1oOC#sNN5NN5LLADL!LLADL!NN5NN5CLLNCLLN3CLLNCLLN3r%   c                      t        j                  d      } t        j                  d      }t        j                  | |ddd      \  }}}|J |D ]=  }t        j                  |j                         t        j                  d      k(        r=J  y )Nr   r9   r/  r  r  )rj   rr   r'   r[  r1  r'  r  r&  )r2   r3   plotliner  barlineserrbars         r#   test_errorbar_nonefmtrG  h  s    
		!A
		!ALLAAA6JHa Cvvf&&(GOOD,AABBBCr%   c                     t        j                  d      } t        j                  d      }t        j                         \  }}|j	                  | |dd      }t        |j                        dk(  sJ t        |j                        dk(  sJ t        |j                        dk(  sJ |j                          |j                  rJ |j                  rJ |j                  rJ y )Nr   r9   r^  r:   )
rj   rr   r'   r   r[  r  r  rj  r  ry  )r2   r3   r-   r"   ecs        r#   test_errorbar_removerJ  s  s    
		!A
		!AllnGC	Q	*Br}}"""rxx=Ar~~!###IIK}}xx<~~~r%   c                      t        j                  d      } t        j                  d      }t        j                  | |ddddddddd	d
      \  }}}|j	                         dk(  sJ |j                         dk(  sJ y )Nr   r9   Noner  rd   z	steps-midroundrb  rc  bevel)
r_  r`  r  r   r  rg  dash_capstyledash_joinstylerf  re  )rj   rr   r'   r[  get_fillstyleget_drawstyle)r2   r3   rD  r  s       r#   "test_errorbar_line_specific_kwargsrS    s     			!A
		!A\\!QQQ6),,707181729;NHa !!#v---!!#{222r%   c           	      "   |j                         }|j                  g dg ddddd       |j                  g dg ddd	d
dd       |j                  g dg dddddd       |j                  dd       t        g dg dg dg d      }t	        j
                  d|       | j                         }|j                  g dg dd       |j                  g dg ddd	       |j                  g dg ddd       |j                  dd       y )N)r:   r.  r~   rF  r   rV  r  rC  )r2   r3   r`  r  r   r  r:   r   r.  z	tab:greenr  r3   )r2   r3   r`  r   r  r   r  r.  r   r   ztab:bluer=  r   r=   )r2   r3   r`  r   r  r   r  r9   rM  )rV  r  r=  )r  r  r   )rC  r3   r=   r#  r  rX  )r  r   r  r   rx  )
prop_cycler2   r3   r`  )r2   r3   r`  r   )r2   r3   r`  r   )r   r[  r  r
   r'   rc)r    r!   r"   _cycles       r#   test_errorbar_with_prop_cycler\    s    				BKK*	  .KK*	;s  -KK*	  .KK2('@FFF6f%				BKK*	K4KK*	;KGKK*	KDKK2r%   c                     t        j                  ddd      } | d| z
  z  }|dz  }t        j                         j	                         }t        j                  t        d      5  |j                  | ||d       d d d        t        j                  t        d      5  |j                  | ||d	       d d d        t        j                  t        d
      5  |j                  | ||ddg       d d d        t        j                  t        d      5  |j                  | ||d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   y xY w)Nr   r9   r   r   znot a tuple of two integersr  r  )
errorevery)r  r   znot a valid NumPy fancy indexFTznot a recognized valuefoobar)	rj   r  r'   r   r   r   r   r  r[  )r2   r3   r`  r"   s       r#   test_errorbar_every_invalidr`    s'   
Aq"A	QqS	AQ3D				 B	z)F	G 6
Aq$956	z)F	G 5
Aq$845	z)H	I :
Aq$E4=9:	z)A	B 5
Aq$845 56 65 5: :5 5s0   "D.D:EE.D7:EEEc            
      H   t        j                         j                         } t        j                  t
        d      5  | j                  dgdgdgdggdgdgg       d d d        t        j                  t
        d      5  | j                  dgdgdgdgg       d d d        t        j                  t
        d      5  | j                  dgdgdgdgg	       d d d        t        j                  t
        d      5  t        j                  d
      }|D cg c]  }t        j                  dd|dz  dz         ! }}| j                  ||t        j                  d      	       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY wc c}w # 1 sw Y   y xY w)Nz''xerr' must not contain negative valuesr  r   r  r9   r2   r3   r_  r`  rf  z''yerr' must not contain negative valuesrY  r   r  rv  r:   r  r  )r'   r   r   r   r   r  r[  rj   rr   rG  r  )r"   r2   rA  r3   s       r#   test_xerr_yerr_not_negativerc    s   				 B	zF
H J
qcaS}TFQC=IJ 
zF
H 6
qcaS}56 
zF
H 6
qcaS}56 
zF
H 7IIaL<=>qXtQA	2>>
a!++5 	 	7	7 7J J6 66 6 ?7 7sA    E.E;?F=F$F;*F.E8;FFFF!c                     t        j                         j                         } t        j                  t
        d      5  | j                  dgdgd gdggd gdgg       d d d        t        j                  t
        d      5  | j                  dgdgd gdgg       d d d        t        j                  t
        d      5  | j                  dgdgd gdgg       d d d        y # 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   y xY w)	Nz'xerr' must not contain Noner  r   r9   rb  rf  z'yerr' must not contain NonerY  )r'   r   r   r   r   r  r[  r  s    r#   test_xerr_yerr_not_nonere    s    				 B	z;
= J
qcaS}TFQC=IJ 
z;
= 6
qcaS}56 
z;
= 6
qcaS}56 6J J6 66 6s#    C#C/?C;#C,/C8;Dc                    t        j                  ddd      }|d|z
  z  }|dz  }|j                         }| j                         }t        dg d      D ]a  \  }}|dz  }|j	                  ||||dfd|	       |j                  |||d
       |j	                  ||d d   ||d d   ||d d   d|d       c |j	                  ||dz   |ddd       |j                  |dd d   |dd d   dz   dd
       |j	                  ||dz   |dd       |j	                  ||dz   |t        dd d      t        dd d      ddd       |j                  |dd d   |dd d   dz   ddd
       |j	                  |dd d   |dd d   dz   |dd d   ddd       |j	                  ||dz   |g ddz  g ddz  ddd       |j                  |dd d   |dd d   dz   ddd
       |j	                  |dd d   |dd d   dz   |dd d   ddd       y )Nr   r9   r   r   rgbk)r   r   r:   r  r&  r.  )r^  r;  r=   r  )r=   r  r/  )r;  r=   r   r   )r9   r.  r   )r  r;  r   rX  )r;  r   r   r:   r   r  )r^  r  r;  r=   r   r  r   r  )rj   r  r   r  r[  r   r   )	r    r!   r2   r3   r`  rx   rw   r   shifts	            r#   test_errorbar_everyri    s   
Aq"A	QqS	AQ3DF!GFL1 8u	S 	At
!"e 	 	-
 	AqE#.%((Quxax[$uxax. !U 	 	88 QCL
KK!$Q$14a43CK8
OOAq3waVO< QC%42C$Qa0$C  1 KK!$Q$14a43tCK@
OOAaddGQqt!tWs]DAJ6  3 QC2F2J3a7$C  1 KK!$Q$14a43tCK@
OOAaddGQqt!tWs]DAJ6  3r%   
elinewidthr  c                 B    t        j                  g dg dg d|        y )Nr  )r`  rj  )r'   r[  )rj  s    r#   test_errorbar_linewidth_typerl    s     LLII*Mr%   c                      t        j                  g dg dg dd      } | d   d   }|j                         }|dgk(  sJ y )Nr  rV  )r`  
elinestyler   r   )r   r   r   )r'   r[  get_linestyle)eb
errorlineserrorlinestyles      r#   test_errorbar_linestyle_typert    sD    	i$
7BBJ--/Nk]***r%   c                    | j                         }t        d      }t        j                  ddt        j                  t        j                  dg      }t        j                  ddt        j                  t        j                  dg      }|j                  |||       |j                         }|j                  ddgddgddg       |j                  dgdgdgd	
       y )Nr   r9   r:   r   r.  r   r@  r   r  r	  )r   r   rj   rN  r  r[  )r    r!   r"   xsysess         r#   test_errorbar_nanry    s    				B	qB	1a+	,B	1a+	,BKKBRK 				BKKAAaVK,KKaSsK-r%   c                    | j                         }t        d      }t        j                  g d      }t        j                  j                  g d|      }t        j                  j                  g d|      }|j                  |||       |j                         }|j                  ddgdd	gd
dg       |j                  d
gdgdgd       y )Nr   )FFTTF)r9   r:   r:   r:   r   r  )r.  r   r   r  r   r@  r   r9   r:   r.  r   r   r  r	  )r   r   rj   rN  r	   r[  )r    r!   r"   rv  r  rw  rx  s          r#   test_errorbar_masked_negativer{  &  s    				B	qB8856D	_4	0B	'd	3BKKBRK 				BKKAAaVK,KKaSsK-r%   zhist_stacked_stepfilled.pngc                     t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fdd	       d
| |fi}t        j                         \  }}|j	                  d
dd|       y )Nr9   r   r  r   r~   rY  r	  Tr+  r2   )r  r,  r  rj   r  r'   r   r  )d1d2r-   r"   r  s        r#   test_hist_stacked_stepfilledr  3  s     
Q2	B	QB	BllnGCGGRH|TG: "b?DllnGCGGC,4G@r%   zhist_offset.pngc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | d       |j	                  |d	       y )
Nr   r~   rY  r9   r   r  r   r-  r   r}  r~  r  r-   r"   s       r#   test_hist_offsetr  B  sW     
QB	B	Q2	BllnGCGGBqGGGBrGr%   zhist_step.pngc                      t        j                  ddd      } t        j                         \  }}|j	                  | d       |j                  dd       |j                  dd	       y )
Nr9   r   r  r  r
  r   r~   r   r   )rj   r  r'   r   r  r  r  r~  r-   r"   s      r#   test_hist_stepr  L  sQ     
Q2	BllnGCGGBG KK2KKAr%   zhist_step_horiz.pngc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fdd	       y )
Nr   r~   rY  r9   r   r  r  rR   )r  rT   r}  r  s       r#   test_hist_step_horizr  V  sM     
QB	B	Q2	BllnGCGGRHv<G@r%   zhist_stacked_weights.pngc                     t        j                  ddd      } t        j                  ddd      }t        j                  ddd      }t        j                  d	d
d      }t        j                         \  }}|j	                  | |f||fdd       y )Nr   r~   rY  r9   r   r  r  rF  r.  r   r	  T)weightsr  r,  r}  )r~  r  w1w2r-   r"   s         r#   test_hist_stacked_weightedr  _  sw     
QB	B	Q2	B	T3	#B	T2r	"BllnGCGGRHr2htGLr%   zstem.pngc                     t        j                  ddt         j                  z  d      }t        j                         \  }}|j                  |t        j                  |      dddd       |j                          y )	Nr   r:   r   C2-.zk+C1-.r  )linefmt	markerfmtbasefmtr0   )rj   r  r  r'   r   r  rv  rI   )text_placeholdersr2   r-   r"   s       r#   	test_stemr  j  s[    
CRUUC(AllnGCGGArvvaydF&  JIIKr%   c                     d } t        j                         \  }}g d}g d} | |j                  |      g d|f        | |j                  ||      ||f        | |j                  ||d      ||f        | |j                  ||d      ||f        | |j                  ||dd	      ||f        | |j                  |d      g d|f        | |j                  |d      g d|f       t        j                  t
              5  |j                  |gg       d
d
d
       t        j                  t
              5  |j                  |gg|       d
d
d
       y
# 1 sw Y   @xY w# 1 sw Y   y
xY w)z5Test that stem() correctly identifies x and y values.c                     t        t        | j                  j                               \  }}||d   k(  sJ ||d   k(  sJ y Nr   r9   )mapr.  
markerliner}  )stem_containerexpectedr2   r3   s       r#   _assert_equalz%test_stem_args.<locals>._assert_equalv  sE    422;;=>1HQKHQKr%   r9   r   r   rv  r  r  rF  )r  rL  r  zb--)r  r  N)r'   r   r  r   r   r  r  r-   r"   r2   r3   s        r#   test_stem_argsr  t  sE    
 llnGCAA "''!*	1~6"''!Q-1a&1"''!Q'.!Q@"''!Q&!Q8"''!Qu'=AO"''!U'+y!nE"''!U#y!n=	z	" 
!	z	" 
!q   s   EE+E(+E4c                  Z   	 	 dd} t        j                         \  }}g d}g d} | |j                  ||      dd        | |j                  ||d	      dd        | |j                  ||d
	      dd        | |j                  ||d      ddd        | |j                  ||d
      ddd        | |j                  ||dd	      ddd        | |j                  ||dd	      ddd        | |j                  ||dd	      ddd        | |j                  ||dd	      ddd        | |j                  ||dd	      ddd        | |j                  ||d      ddd        | |j                  ||dd      ddd        | |j                  ||dd      ddd       y)zATest that stem(..., markerfmt=...) produces the intended markers.Nc                 L   |0t        j                  | j                  j                         |      sJ |0t        j                  | j                  j                         |      sJ || j                  j                         |k(  sJ | j                  j                         dk(  sJ y)zl
        Check that the given StemContainer has the properties listed as
        keyword-arguments.
        NrL  )r  rT  	stemlinesr'  r  r_  rp  )r  r  markercolorr   s       r#   r  z*test_stem_markerfmt.<locals>._assert_equal  s      %%((224   "%%))335   !,,779VCCC((668FBBBr%   r  r  r  r   )r  r   r2   )r  r  rX  )r  r  r   r  gx rL  r   r  )r  r  )NNN)r'   r   r  r  s        r#   test_stem_markerfmtr    s   BF!C$ llnGCAA "''!Q-T#>"''!Q#'.DM"''!Q$'/SM 
1c3s4 
1d3s4 
1cS)3s4 
1cS)3s4 
1cT*3s4 
1cS)3v7 
1cR(3v7
 
1c"3s4 
1cS13s4 
1cT23s4r%   c                      t        j                  dd      \  } }t        j                  j	                  d      t        j                  j	                  d      g}ddg}|j                  ||       y )Nr9   z2013-9-28 11:00:00z2013-9-28 12:00:00r   r  )r'   r   dateutilparserparser  )r-   r"   rv  rw  s       r#   test_stem_datesr    sY    ll1a GC
//

 4
5
//

 4
5
7B
sBGGBOr%   zstem_orientation.pngc                      t        j                  ddt         j                  z  d      } t        j                         \  }}|j                  | t        j                  |       dddd       y )	Nr   r:   rY  r  kxr  rR   )r  r  r  rT   )rj   r  r  r'   r   r  rv  r<  s      r#   test_stem_orientationr    sR    
C255"%AllnGCGGArvvaydF$  &r%   c                  *   t        j                         } | j                  d      }t        j                  ddd      }t        j                  ddd      }d}|j                  |||	      }|j                  j                         j                  d
kD  sJ y)zITest that the baseline is interpolated so that it will follow the radius.r1  r  Q?gQ	@r~   r   r9   r   r-  r   N)	r'   r   r   rj   r  r  r  get_path_interpolation_steps)r-   r"   r2   r3   rP   	containers         r#   test_stem_polar_baseliner    s}    
**,C	G	,B
D$#A
Aq"AF1V,I&&(==CCCr%   z!hist_stacked_stepfilled_alpha.pngc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fddd	
       y )Nr9   r   r  r   r~   rY  r	  Tr   )r  r,  r  r}  r  s       r#   "test_hist_stacked_stepfilled_alphar    sO     
Q2	B	QB	BllnGCGGRH|TGEr%   zhist_stacked_step.pngc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fdd	       y )
Nr9   r   r  r   r~   rY  r  Tr+  r}  r  s       r#   test_hist_stacked_stepr    sM     
Q2	B	QB	BllnGCGGRHvtG4r%   zhist_stacked_normed.pngc                      t        j                  ddd      } t        j                  ddd      }t        j                         \  }}|j	                  | |fdd       y )	Nr9   r   r  r   r~   rY  T)r,  r9  r}  r  s       r#   test_hist_stacked_densityr    sM     
Q2	B	QB	BllnGCGGRHdDG1r%   zhist_step_bottom.pngc                      t        j                  ddd      } t        j                         \  }}|j	                  | t        j
                  d      d       y )Nr9   r   r  r~   r	  )rP   r  )rj   r  r'   r   r  rr   r  s      r#   test_hist_step_bottomr    s?     
Q2	BllnGCGGBryy}|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 ]=  \  }}t        j                  || |	      \  }}\  }t        |j                         |       ? y )
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_geometryr    s    DDq6Aq6Aq6Aq6Aq6Aq6Aq6Aq6
JC!fq!fq!fq!fq!f5F #sV|(DE 1"HHTxH1kw7>>+R0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 ]@  \  }}t        j                  || g d|      \  }}\  }t        |j                         |       B y )Nr  r  r   r9   r   r   r:   rH  r   r  r	  r9   r:   r   )r  rP   r  r  r  s           r#   test_hist_step_bottom_geometryr    s    DDq6Aq6Aq6Aq6Aq6As8aX3x
PC#hAAAA7F #sV|(DE 1"HHT[.681kw7>>+R01r%   c            
      $   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}t        ||      D cg c]
  \  }}||z    }}}d	|fd
|ffD ]|  \  }}	t        j                  ||g| d|      \  }
}
}t        |      dk(  sJ |d   \  }t	        |j                         |	d          |d   \  }t	        |j                         |	d          ~ y c c}}w )Nr  r  rF  r   r:   r9   r   r.  r  r	  T)r  r,  r  r  r'   r  r  r   r  r  data_1data_2topsbottomsr  r#  combinedr  r   r  r:  r  s                r#   test_hist_stacked_step_geometryr  '  s   DFF
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 #&dG"45$!QA5H5 $,)AB 4"&&!1d*241g7|q   1:7>>+RU31:7>>+RU34 6s   2Dc            
      *   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}t        ||      D cg c]
  \  }}||z    }}}d|fd|ffD ]  \  }}	t        j                  ||g| dg d|      \  }
}
}t        |      dk(  sJ |d   \  }t	        |j                         |	d          |d   \  }t	        |j                         |	d           y c c}}w )Nr  r  rF  r   r9   r   r   r:   rH  r   r.  r   rF  r  r	  Tr  )r  r,  rP   r  r  r  s                r#   &test_hist_stacked_step_bottom_geometryr  ?  s   DFF
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 #&dG"45$!QA5H5 $,)AB 4"&&!1d(3hH1g7|q   1:7>>+RU31:7>>+RU34 6s   2Dzhist_stacked_bar.pngc                      g dg dg dg dg dg dg} g d}g d}t        j                         \  }}|j                  | d	d
d||       |j                  ddd       y )N)r   r   r   r   r  @  i  r  r  rG  6  rF  )r     rY  rM  r   i  )r  r  r  r  r  r     )r7  r7  r7  r7  r  r  r   r   r   r   r~   r  )+  r  r  r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  ))gXxn?r   r  )r  r   g `p?)r  r   gǟ?)r  gˢ`?r   )gC?r  r   )gK?r  r   )firstsecondthirdfourthfifthr~   r  mid)r  r  r@  r   r0   zupper right)r   r   r9   )rA   bbox_to_anchorr*  )r'   r   r  rI   )r  r  r  r-   r"   s        r#   test_hist_stacked_barr  W  sm     
D	#%H	8	H	A		CA
OF =FllnGCGGABU&  II-
!IDr%   r  r3  rW  r4  r<  )r:  r  r   r   )rU  rV  r  r5  )r9   r   r:   r   c           
      .   t         j                  j                  d       dD cg c]!  }t         j                  j                  |      # }}| j	                  d      \  }}|j	                  d      \  }}d||fd||ffD ]  \  }	}
} |
j
                  |fd|	d|\  }}}t        t        |j                                     \  }}t        t        ||            D ]3  \  }\  }} |j
                  |f||	d||idt        |      |z
  dz  i 5  y c c}w )	Nr`   )r  rY  r   r:   r	  r  r~   r  r  )rj   rk   rl   r  r   r  nextiteritemsr  r  r  )r    r!   r  r  rv  axt1axt2axr1axr2r  r+  r,  r  r  kwr0  rA  r2   rM  s                      r#   test_hist_vectorized_paramsr  i  s    IINN8&3	4"))//!
	4B	4$$Q'LT4##A&LT4 ,dD9FD$;OP +#sSXXbGrHGG
4$v||~./
F&s2v7 	+MAz5CHHQ +TH +U + WQYM+	+	+ 
5s   &Dzkwargs, patch_face, patch_edger3   )r  r   r3  r4  )r3   r   )r  r   r4  )rX  r   )r  r   r3  rC  )r  r3  r4  )r  r   )r  r3  r  )r  r4  )r  r   r  c                      t        j                         j                         j                  g dfi | \  }}}t	        fd|D              sJ y )Nr  c              3      K   | ]:  }t        j                  |j                         |j                         gg       < y wr  )r  rT  rf  rg  )r/  r  
patch_edge
patch_faces     r#   r0  z,test_hist_color_semantics.<locals>.<genexpr>  sC      N@A !!1??#4aoo6G"H#-z":< Ns   A A)r'   r   r   r  r1  )r  r  r  r  r:  s    ``  r#   test_hist_color_semanticsr    sU    < 1CJJL))+00EfEMAq' NELN N N Nr%   c                      t        j                  ddg      } t        j                  ddgddggdd|        | j	                         ddgk(  sJ y )Nr~   r  r   r9   r:   r  )r  rP   )rj   rN  r'   r  tolistr  s    r#   %test_hist_barstacked_bottom_unchangedr    sK    
"bAHHq!fq!fq<B88:"b!!!r%   c                      t        j                         \  } }|j                  g t        d      t        d      gd       y )Nr~   r  r
  )r'   r   r  r   r,   s     r#   test_hist_emptydatar    s0    llnGCGGRrE"I&G8r%   c                      t        j                         \  } }|j                  g dgg d       |j                         \  }}|dgk(  sJ y )Nr  )r0  unusedzalso unusedr
  r0  )r'   r   r  get_legend_handles_labels)r-   r"   r  r  s       r#   test_hist_unused_labelsr    sH     llnGCGGYKBGC,,.IAvhZr%   c                     t        j                         \  } }|j                  ddgd      \  }}}|d   j                         dk(  sJ |j                  ddgdg      \  }}}|d   j                         dk(  sJ |j                  ddgd       \  }}}|d   j                         dk(  sJ |j                  ddgd      \  }}}|d   j                         dk(  sJ |j                  ddgd      \  }}}|d   j                         dk(  sJ y )Nr   r9   r
  r!  r  00)r'   r   r  r  )r-   r"   r  r  s       r#   test_hist_labelsr    s&   llnGC!Qq)JAq$7#%%%!Qs+JAq$7#%%%!Qt,JAq$7,...!Qs+JAq$7#%%%!Qt,JAq$7$&&&r%   transparent_markersc                      t         j                  j                  d       t         j                  j                  d      } t        j                         \  }}|j                  | ddd       y )Nr   rY  rh  r/  r   )r  r   rj   rk   rl   r'   r   r   r  s      r#   test_transparent_markersr	    sI    IINN199BDllnGCGGD#6cG2r%   rgba_markersc            
         t        j                  d      \  } }ddg}ddg}d dg}t        dd	
      }t        |      D ]n  \  }}t        |      D ][  \  }}	t        |      D ]H  \  }
} ||   j                  |dz   |
dz   df||	|d|  ||   j                  |dz   |
dz   df|	|d| J ] p |D ]  }|j                  g d        y )Nr:   r  r  r  rG  )r   r   r9   r   r   r   r  )r  r:  r9   r   )r  r;  r  r   r2   )r;  r  )r   r.  r   r   )r'   r   r  r  r   r   )r-   r  rcolorsbcolorsalphasr  rA  r  r  rcolorrC  bcolorr"   s                r#   test_rgba_markersr	    s   ||!$HC^,G^,GC[F	"	Bf% J5"7+ 	JIAv&w/ J	6AAaC1c /v6"'/+-/AAaC1cIvUIbIJ	JJ  
r%   zmollweide_grid.pngc                  p    t        j                         } | j                  d      }|j                          y )N	mollweider  )r'   r   r   r  r,   s     r#   test_mollweide_gridr	    s(     **,C	K	0BGGIr%   c                     t        j                         } | j                  d      }t        j                  t        j
                   t        j
                  d      }t        j                  t        j
                   dz  t        j
                  dz  d      dd }t        j                  ||      \  }}t        j                  |j                         |j                         f      j                  }|j                  j                  |      }|j                  j                         j                  |      }t        j                  j                  ||d       y )	Nr	  r  r  r   r  r9   r   r   )r'   r   r   rj   r  r  r  r0  rk  r  transProjectionr2  invertedr   r   )r-   r"   lonlatllr   ll2s          r#   &test_mollweide_forward_inverse_closurer	    s     **,C	K	0B ++ruufbeeS
)C
++ruufslBEECK
5a
;C{{3$HC	CKKM3;;=1	2	4	4B 
			%	%b	)B 


%
%
'
1
1"
5C JJ((S!4r%   c                     t        j                         } | j                  d      }t        j                  ddd      }t        j
                  ||      \  }}t        j                  |j                         |j                         f      j                  }|j                  j                         j                  |      }|j                  j                  |      }t        j                  j                  ||d       y )Nr	  r  r   r9   r  r   )r'   r   r   rj   r  r  r0  rk  r  r	  r	  r2  r   r   )r-   r"   r2   r3   r   r	  xy2s          r#   &test_mollweide_inverse_forward_closurer	     s     **,C	K	0B 	Aq#A;;q!DAq	AIIK-	.	0	0B 
			$	$	&	0	0	4B 


&
&r
*C JJ((S!4r%   
test_alphac            	         t         j                  j                  d       t         j                  j                  d      } t        j                         \  }}|j                  | dg dg ddd       |j                  | d	z   dg dg dddd
       |j                  | dz   dg dg dddd       |j                  | dz   dg dg ddd       |j                  | dz   dg dg ddd       y )Nr   rY  z-Dr  r  r  r~   )r   r  r   rK  r:   r9   )r   r  r   rK  r  r.  r   r   r  r	  r  s      r#   r	  r	    s    IINN199BDllnGC GGD$i]b  " GGD1Hd-]b  
 GGD1Hd)b  
 GGD1Hd-]b  " GGD1Hd-Yb  "r%   zeventplot.pngc                  V   t         j                  j                  d       t         j                  j                  ddg      j                         } t         j                  j                  ddg      j                         }| |z   }t	        |      }g dgt	        |       z  }g dg dg dg d	g d
g dg}||z   }dt        j
                  dt	        |             dz  z   }g d}|j                         |z   }	dgt	        |       z  }
g d}|
|z   }t        j                         }|j                         }|j                  |||	|      }t	        |      }||k(  sJ |||	|d}t        j                         }|j                         }|j                  dddd|      }t	        |      }||k(  sJ y )Nr   r   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  )
rj   rk   rl   r  r  rr   r'   r   r   	eventplot)r  r  r  num_datasetsr  r  r  lineoffsets1lineoffsets2r	  linelengths1linelengths2r	  r-   axobjr  num_collectionss                    r#   test_eventplotr)	  3  s    IINN1IIb"X&--/EIIaW%,,.E5=Dt9LlSZ'GG wF		!SZ0366L+L%%',6K53u:%L'L-K
**,COOEOOD[(3  5E %jOl*** fK{KD
**,COOEOOE#4(,4  9E%jOl***r%   ztest_eventplot_defaults.pngc                  r   t         j                  j                  d       t         j                  j                  ddg      j                         } t         j                  j                  ddg      j                         }| |z   }t	        j
                         }|j                         }|j                  |       y)zf
    test that eventplot produces the correct output given the default params
    (see bug #3728)
    r   r   r  r   N)rj   rk   rl   r  r'   r   r   r!	  )r  r  r  r-   r'	  s        r#   test_eventplot_defaultsr+	  `  s     IINN1IIb"X&--/EIIaW%,,.E5=D
**,COOE	OODr%   r  ))r  )z
tab:orangeztab:pinkztab:cyanbLacK)rB  r  N)r9   r   r9   r   c                    dgdgdgdgg}| D cg c]  }||nd
 }}t        |      dk(  r|d   }t        j                  t        j                  |      t        |      df      }t        j                         \  }}t        |       dk(  r| d   } |j                  ||       }t        ||      D ]  \  }}t        |j                         |       ! yc c}w )	zBTest the *colors* parameter of eventplot. Inspired by issue #8193.r   r9   r:   r   Nr  r.  r  )r  rj   r  r  r  r'   r   r!	  r  r   r'  )	r  r  r=   r  r-   r"   r  r  r   s	            r#   test_eventplot_colorsr/	  r  s     C!qcA3D 7==Q],=H= 8}A;w44X>TAOHllnGC
6{a,,tF,3K;1 1e(%01 >s   Cc                  ~   t        j                         \  } }|j                  g dg dgd      }|d   j                         dk(  sJ |d   j                         dk(  sJ |j                  g dg dgddg      }|d   j                         dk(  sJ |d   j                         dk(  sJ t	        j
                  t        d	      5  |j                  g dg dgg d
       d d d        t	        j
                  t        d	      5  |j                  g dddg       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)N)r   r:   r.  )r9   r   r   r  r  r  r   r9   r   zalpha and positions are unequalr  )r   r  rz  )r'   r   r!	  r  r   r   r  )r-   r"   r  s      r#   test_eventplot_alphar1	    s/   llnGC ,,	<8,DKq>##%,,,q>##%,,, ,,	<8c
,KKq>##%,,,q>##%,,,	z)J	K G
i.oFG 
z)J	K 2
YsCj12 2G G2 2s   D'D3'D03D<z!test_eventplot_problem_kwargs.pngc           
         t         j                  j                  d       t         j                  j                  dg      j                         }t         j                  j                  dg      j                         }||g}t	        j
                         }|j                         }|j                  |ddgddgdd	gd	dgd
dgddg       t        |       dk(  sJ t        d | D              sJ y)z
    test that 'singular' versions of LineCollection props raise an
    MatplotlibDeprecationWarning rather than overriding the 'plural' versions
    (e.g., to prevent 'color' from overriding 'colors', see issue #4297)
    r   r  r~   rX  r#  r=   r  r:   r9   r   dasheddashdotr4  )r  r   r   r5  r  r   r   c              3   d   K   | ](  }t        |j                  t        j                         * y wr  )
issubclasscategoryr   MatplotlibDeprecationWarning)r/  wis     r#   r0  z0test_eventplot_problem_kwargs.<locals>.<genexpr>  s)      " "++s'G'GH "s   .0N)
rj   rk   rl   r  r'   r   r   r!	  r  r1  )recwarnr  r  r  r-   r'	  s         r#   test_eventplot_problem_kwargsr;	    s     IINN1IIbT"))+EIIbT"))+E5>D
**,COOE	OOD:* !1v !f '2((3  5 w<1 " " " " "r%   c                      t        j                  dd      \  } }|j                  g gdg       t        j                          y )Nr9   )r  r  r  r  r.	  r'   r   r!	  r  r,   s     r#   test_empty_eventplotr>	    s5    ll1a GCLL"34L5HHJr%   r  rT   )Nr  rR   c                     |i nd|i}t        j                  dd      \  }} |j                  | fi | t        j                          y)z#Introduced when fixing issue #6412.NrT   r9   r=	  )r  rT   optsr-   r"   s        r#   test_eventplot_orientationrA	    sE     $2=+*FDll1a GCBLLHHJr%   c                    t        j                   ddd      t        j                   ddd      t        j                   ddd      g}t        j                   ddd      t        j                   ddd      g}|j                         }|j                  |d       |j                  |d       | j                         }|j                  ||g       y )	Nr  r9   r:   r   r   r  r   )r	  )rG  r   r!	  )r    r!   ts_1ts_2r"   s        r#   test_eventplot_units_listrE	    s     dAq)8+<+<T1a+HdAq)+DdAr*H,=,=dAr,JKD				BLL1L%LL1L%				BLL$r%   zmarker_styles.pngc            
         t        j                         \  } }t        t        j                  j
                  j                  d       }|j                  d       dg|}t        |      D ]Z  \  }}|j                  |dz  dz  t        j                  d      dz  z   t        j                  d      dz  |z  d|d|dz  z   |       \ y )	Nc                 B    t        t        |             t        |       z   S r  )r#  ri  r2   s    r#   r  z$test_marker_styles.<locals>.<lambda>  s    3tAw<A#6 r%   )rh  r/  r:   r   r~   r   )r   r   r   r0   )r'   r   r  rW   markersr  ry  r  r   rj   rr   r   )r-   r"   rI	  r3   r   s        r#   test_marker_stylesrJ	    s    llnGC
 Z''33;;68GNN6  Gw' @	6
Q	BIIbM",,bggbk"nQ.>""QqS& 	 	@@r%   zrc_markerfill.pnggL7A`?c                      t        j                         \  } }t        j                  d      }t	        g d      D ]1  \  }\  }}|t
        j                  d<   |j                  ||z   |       3 y )Nr  ))r?   r  )rP   r   )r/  r/  zmarkers.fillstylerT  )r'   r   rj   rr   r  rW   r   r   )r-   r"   r2   idxr   r   s         r#   test_markers_fillstyle_rcparamsrM	    se     llnGC
		!A ):!< &_eV38
/0
#f%&r%   zvertex_markers.pngc                     t        t        d            } d}g d}t        j                         \  }}|j	                  | d|d       |j	                  | d d d   d|d       |j                  dd       |j                  dd       y )Nr~   ))r   r   rr  r}  rs  r   rC  r  r   r#  )r.  r   r'   r   r   r  r  )r  marker_as_tuplemarker_as_listr-   r"   s        r#   test_vertex_markersrQ	    st    b	?D:O9NllnGCGGDBCG@GGD2J"^GEKKBKKBr%   zvline_hline_zorder.pngzerrorbar_zorder.pngc                     t        t        d            } t        j                         }|j	                         }|j                  | dd       |j                  dddd       |j                  dddd       |j                  dd	dd       |j                  d
ddd       |j                  d       t        j                         }|j	                         }t        t        d            } t        j                  d      }t        t        d            }|j                  | ||ddd       t        d      D ]-  }|j                  |dd|       |j                  | dd|       / |j                  d       y )Nr~   r   )rK  r  r9   rB  )r   rK  r  r   r  r  r:   rC  r   zaxvline and axhline zorder testrX  )r`  r  rK  r   )rK  r   r  zerrorbar zorder test)r.  r   r'   r   rs  r   rt   axvliner5   rj   r  r[  )r2   r-   r"   r3   r`  r  s         r#   test_eb_line_zorderrT	    s;    	U2YA **,C	BGGA"QGJJq"QJ/JJqBrJ2JJq1J-JJq1J-LL23 **,C	BU2YA
Ab	?DKK14asK;2Y 2


1#a
0


A2!3q
12 LL'(r%   c                 D   | j                         }|j                  dd       |j                  ddgddgd       |j                  ddd	
       |j                         }|j                  dd       |j                  ddgddgd       |j                  ddgddgd	
       y )N)r   r~   )rZ  r9   rw  r   r  z.-)r9   rZ  )r~   r  rC  rO  r9   r~   rZ  r  )r   r   r  axliner   s      r#   test_axline_loglogrW	  "  s    				BFF		F*IIr2hR$'IIisI+				BFF		F*IIr2hR$'IIq"gd|sI+r%   c                    | j                         }|j                  dd       |j                  dd       |j                  ddd       |j                  dd	d
       |j                  ddd       |j                  ddd       |j                  dt        d      d       |j                         }|j                  dd       |j	                  ddgddg       |j                  dd       |j                  dd
       |j                  dd       |j	                  ddgddgd       |j                  dd       y )Nrs  rw  r  r}  r  r  rY  )r   r   r9   r   r  )gffffffr  r   r3  )sloper   )r9   r  r  C4)r  r9   infr  r   r9   r   )r   r   rV	  r  r   rt   rS	  r   s      r#   test_axliner]	  /  s   				BFFgF&IIffIIffDI)IIhI-IIl!4I0IIit4I0IIiuU|4I8				BFFgF&GGRGb!WJJqJJJs$JJJt4J GGRGc4[G-JJt4J r%   c                 B   | j                         }|j                  dd       |j                  dd|j                         |j                  ddd|j                         |j                  d	d
d|j                         |j                  ddd|j                         |j                         }|j                  dd       |j	                  ddgddg       |j	                  d
dgdd
gd       |j	                  ddgd
d
gd       |j	                  d
d
gddgd       y )Nrs  rw  r  r9   rZ	  r2  rY	  r  rZ	  r   r2  r   r   r   r  )r   r   )r   r9   r3  )r   r2  r   rY  )r   r   rV	  r>  r   r   s      r#   test_axline_transaxesrb	  F  s    				BFFgF&IIfAI6IIhatr||IDIIjIFIIhIE				BFFgF&GGRGb!WGGQFRG4G(GGRGaV4G(GGQFRG4G(r%   c                 B   | j                         }|j                  dd       |j                  dd|j                         |j                  ddd|j                  	       |j                  dd
d|j                  	       |j                  dd       | j	                  dd       |j                         }|j                  dd       |j	                  dd       |j                  d
dgd
dg       |j                  d
dgd
dgd       |j                  d
dgddgd       y )Nrs  rw  r  r9   r_	  ra	  r:   r  r`	  r   r  )r   r   r   r~   r   r   r~   rY  )r   r   rV	  r>  set_size_inchesr   r   s      r#   test_axline_transaxes_panzoomrf	  W  s     
			BFFgF&IIfAI6IIjIFIIjIFFFWF%Q"				BFFWF%Aq!GGQFQFGGQFQG4G(GGQFQF$G'r%   c                  l   t        j                         \  } }t        j                  t              5  |j                  d       ddd       t        j                  t              5  |j                  ddd       ddd       |j                  d       t        j                  t              5  |j                  dd       ddd       |j                  d       |j                  d       t        j                  t              5  |j                  dd       ddd       |j                  d       t        j                  t              5  |j                  dd       t        j                          ddd       y# 1 sw Y   7xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yxY w)z3Exactly one of *xy2* and *slope* must be specified.r  Nr}  r9   )rZ	  r,  rT  )
r'   r   r   r   r   rV	  rU  r  r  r  r,   s     r#   test_axline_argsrh	  k  s@   llnGC	y	! 
		&	y	! +
		&&	*+MM%	y	! #
		&	"#MM(MM%	y	! #
		&	"#MM(	z	" 
		&&!
  + +# ## # s;   E8$F+FF'F*8FFFF'*F3)zvlines_basic.pngzvlines_with_nan.pngzvlines_masked.pngc                  >   g d} g d}t        j                         \  }}|j                  | d|dd       g d}dd	d
dt        j                  dg}t        j                  d
d      \  }\  }}}	|j                  |d|dd       g d}
t        j                  dd	d
ddg}|j                  |
d|dd
d       g d}t        j                  dd	d
dt        j                  g}|	j                  |d|dd       ||||	fD ]  }|j                  dd        |j                         |j                         k(  sJ |j                         |j                         k(  sJ |j                         |	j                         k(  sJ t        j                         \  }}t        j                  j                  g dd      }t        j                  j                  g dd      }t        j                  j                  g dd      }|j                  |||dd       |j                  dd       y N)r:   r   r.  r   r  )r:   r   r  r:   r   r  r   r  r5  )r:   r   r.  r   r   r  r:   rk	  r   r  )r.  r  )r)  r  rX  rV  )r  r5  r   rC  r~   )r:   r.  r   r  r~   r  )r   r9   r   r   r:   r9   )r  rZ  r   r     rK  rK  r   )	r'   r   rs   rj   r  r  r   r	   masked_equal)r4  r  rp  r  rP  rQ  rq  r  r  rP  x3r  x4y4r"   fig3ax5x5ymin5ymax5s                       r#   test_vlinesrw	        
B	BID#JJr1bJ2 
B
RArvvq	!BLLq&AD/3SJJr1bJ2	B
&&!RAq	!BJJr1bTJB	B
&&!RArvv	&BJJr1bJ2 Cc" 
Ar <<>S\\^+++<<>S\\^+++<<>S\\^+++ID#			0!	4BEE2A6EEE7<EJJr5%qJ9LLBr%   c                     t        j                         \  } }t        j                  ddi      5  |j	                  ddd      }t        j
                  j                  |j                         d      sJ 	 d d d        y # 1 sw Y   y xY wNzlines.colorrB  r   r   r9   )r'   r   r   r   rs   r  rT  r'  r-   r"   rj  s      r#   test_vlines_defaultr|	    j    llnGC	.	/ ?		#q!$zz$$U__%6>>>? ? ?   AA==B)zhlines_basic.pngzhlines_with_nan.pngzhlines_masked.pngc                  >   g d} g d}t        j                         \  }}|j                  | d|dd       g d}dd	d
dt        j                  dg}t        j                  d
d      \  }\  }}}	|j                  |d|dd       g d}
t        j                  dd	d
ddg}|j                  |
d|dd
d       g d}t        j                  dd	d
dt        j                  g}|	j                  |d|dd       ||||	fD ]  }|j                  dd        |j                         |j                         k(  sJ |j                         |j                         k(  sJ |j                         |	j                         k(  sJ t        j                         \  }}t        j                  j                  g dd      }t        j                  j                  g dd      }t        j                  j                  g dd      }|j                  |||dd       |j                  dd       y rj	  )	r'   r   hlinesrj   r  r  r   r	   rn	  )r  r4  rp  r  rQ  rP  rq  r  r  rP  r  ro	  rq	  rp	  r"   rr	  rs	  y5xmin5xmax5s                       r#   test_hlinesr	    rx	  r%   c                     t        j                         \  } }t        j                  ddi      5  |j	                  ddd      }t        j
                  j                  |j                         d      sJ 	 d d d        y # 1 sw Y   y xY wrz	  )r'   r   r   r   r	  r  rT  r'  r{	  s      r#   test_hlines_defaultr	    r}	  r~	  r   r  r.  c                 T   g d}| j                  ddd      j                  |dd|d       | j                  ddd      j                  |dd|d       g d}g d}|j                  ddd      j                  |dd|d       |j                  ddd      j                  |dd|d       y )	N)rB  r   r   r  r  r:   r9   r   r   rl	  )r9   r:   r   r   )rB  r   r   r  )r   rs   r	  )r    r!   r  test_colors	expect_xyexpect_colors         r#   test_lines_with_colorsr	    s     ?KAq!((q!0;q ) JAq!((q!0;q ) J I5L1a ''	1a/;q ( J1a ''	1a/;q ( Jr%   z#vlines_hlines_blended_transform.pngc                     t        j                  ddd      } t        j                  |        t        j                  dt         j                  z  | z        z   dz   }t        j                  ddd      \  }\  }}|j                  | |d	       |j                  dd
gdd|j                         d       |j                  | |d	       |j                  ddgdd|j                         d       y )Nr  r?  r   r:   r~   r9   ro  rB  r/  rv  r   r   rX  )rh   ri   r2  r  r   r  r  )yminymaxr2  r  )rj   rr   r  r  r  r'   r   r   r	  get_yaxis_transformrs   get_xaxis_transform)r  r  r-   haxvaxs        r#   $test_vlines_hlines_blended_transformr	    s    
		#tS!A
r
RVVAIM**R/All1a8OC#sHHQ3JJAwQS0023  @HHQ3JJ1vADC4K4K4M  r%   step_linestyler   c            	         t        j                  d      x} }t        j                  dd      \  }}|j	                         }g d}t        ||      D ]q  \  }}|j                  | |d|d       |j                  | |dz   d|d       |j                  | |dz   d|d	       |j                  d
d       |j                  d
d       s | ||dz   |dz   d}t        j                  dd      \  }}|j	                         }g d}t        ||      D ]n  \  }}|j                  ddd|d|       |j                  ddd|d|       |j                  ddd|d	|       |j                  d
d       |j                  d
d       p y )Nr~   r:   )rU  rV  r=  r  r   pre)rK  r   r;  r9   r  ru  r   r  )r  Y0Y1Y2r  r	  )rK  r   r;  r  r	  r	  )	rj   rr   r'   r   rk  r  r  r  r  )r2   r3   r-   ax_lst	ln_stylesr"   r  r  s           r#   test_step_linestyler	    sx   
 IIbMA ,,q!$KC^^F&Ifi( B
1b6
1q5Q"E:
1q5Q"F;
B
B !1Q3ac2D,,q!$KC^^F&Ifi( B
Ta2UF
Ta2UF
Ta2V$G
B
Br%   mixed_collectionc                     t        j                         \  } }t        j                  dddd      }t        j
                  j                  |gd      }|j                  ddgd	d	gg       |j                  d
dg       t        j
                  j                  |gd      }|j                  ddgddgg       |j                  d
dg       |j                  g dg dg       |j                  j                  d       |j                  |       |j                  |       |j                  dd       |j                  dd       y )Nr  r  r.  r/  r   radiusr3  r4  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  r  r!  r  r  )r-   r"   r=   r3  r4  s        r#   test_mixed_collectionr	    s    llnGCqFgNA 
	(	(!T	(	BBNNQFRH%&q!f 
	(	(!T	(	BBNNRGc3Z()q!f')9:;HHubbKK2KK2r%   c                      t        j                  t        j                  d      t        j                  d      d      } | j                          | j                         j                         dk(  sJ y )Nr   r9   )r   r9   r   r   )r'   rz  rj   int32r   r  get_subplotspecget_geometryr  s    r#   test_subplot_key_hashr	  7  sM    	RXXa["((1+q	1BHHJ,,.,>>>r%   )zspecgram_freqs.pngzspecgram_freqs_linear.pngzspecgram_noise.pngzspecgram_noise_linear.pngQ?)r  r   r   c                     dt         j                  d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t        d|z  t        j                  |      z        }t        j
                  d| d|z        }t        j                  t        j                  dt        j                  z  t        j                  j                  ||      z        j                  d            }t        d|z  dz        }t        j                  j                  d       t        j                  t        j                  j                  |       t        j                  j                  |       g      }g d}||f||ffD ]  \  }	}
|
dz  }t        dt        j                   t        j"                  |
            z        }t%        t'        j(                         j+                  d      |      D ]  \  }}|j-                  |	|
||||        t%        t'        j(                         j+                  d      |      D ]:  \  }}|j-                  |	|
||||dt         j.                  j1                                <  y)z)Test axes.specgram in default (psd) mode.r   r  r  r?  r.  r   rM  @ffffff@'@r~   r   r9   r:   r  r  onesidedtwosidedr   )NFFTFsnoverlappad_tosidesrT  )r	  r	  r	  r	  r	  r+  r  N)rW   r   intrj   rt  rr   r  r  r  multiplyouterr  rk   rl   r  r   r   log2r  r'   r   r   specgramr  r  )r  r	  fstims
NFFT_freqsr2   y_freqs
NFFT_noisey_noise	all_sidesr3   r	  r	  r	  r"   r	  s                  r#   test_specgramr	  =  s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvvf~-.J
		!Q"Ann
q255y2;;,,VQ778<<!<DFG R"Wr\"JIINN1nnbii77:BIINN1<MNOG3Ij)GZ+@A 	J419Q"''"''$-001SZZ\2215yA 	4IBKKh%U  4	4 SZZ\2215yA 	JIBKKh%U&Z->->-F-F-H  J	J	Jr%   )zspecgram_magnitude_freqs.pngz#specgram_magnitude_freqs_linear.pngzspecgram_magnitude_noise.pngz#specgram_magnitude_noise_linear.pngc                     dt         j                  d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t        d|z  t        j                  |      z        }t        j
                  d| d|z        }t        j                  dt        j                  z  t        j                  j                  ||      z        j                  d      }d|dddf<   t        j                  |      }t        d|z  dz        }t        j                  j                  d       t        j                  t        j                  j                  |       t        j                  j!                  |       g      }g d}	||f||ffD ]  \  }}
|
dz  }t        dt        j"                  t        j$                  |
            z        }t'        t)        j*                         j-                  d      |	      D ]  \  }}|j/                  ||
||||d        t'        t)        j*                         j-                  d      |	      D ];  \  }}|j/                  ||
||||ddt         j0                  j3                         	       =  y)z%Test axes.specgram in magnitude mode.r   r  r  r?  r.  r   rM  r	  r	  r	  r   r   r9   r:   r  Nr   r~   r	  r   	magnituder	  r	  r	  r	  r	  rf   rT  )r	  r	  r	  r	  r	  rf   r+  r  )rW   r   r	  rj   rt  rr   r  r  r	  r	  r  r&  rk   rl   r  r  r   r   r	  r  r'   r   r   r	  r  r  )r  r	  r	  r	  r2   r3   r	  r	  r	  r	  r	  r	  r	  r"   r	  s                  r#   test_specgram_magnituder	  a  s)    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FS2Xv./J
		!Q"A
q255y2;;,,VQ778<<!<DAAaeHiilGR"Wr\"JIINN1nnbii77:BIINN1<MNOG3Ij)GZ+@A 	J419Q"''"''$-001SZZ\2215yA 	FIBKKh%U  F	F SZZ\2215yA 	JIBKKh%U&Z->->-F-F-H  J	J	Jr%   )zspecgram_angle_freqs.pngzspecgram_phase_freqs.pngzspecgram_angle_noise.pngzspecgram_phase_noise.pngc                     dt         j                  d<   d} d}|dz  |dz  |dz  g|dz  |d	z  |d
z  gg}t        d|z  t        j                  |      z        }t        j
                  d| d|z        }t        j                  dt        j                  z  t        j                  j                  ||      z        j                  d      }d|dddf<   t        j                  |      }t        d|z  dz        }t        j                  j                  d       t        j                  t        j                  j                  |       t        j                  j!                  |       g      }g d}	||f||ffD ]  \  }}
|
dz  }t        dt        j"                  t        j$                  |
            z        }dD ]  }t'        t)        j*                         j-                  d      |	      D ]X  \  }}|j/                  ||
|||||       t1        j2                  t4              5  |j/                  ||
|||||d       ddd       Z   y# 1 sw Y   ixY w)z,Test axes.specgram in angle and phase modes.r   r  r  r?  r.  r   rM  r	  r	  r	  r~   r   r9   r:   r  Nr   r	  )r  phaser   r	  dB)r	  r	  r	  r	  r	  rf   r+  )rW   r   r	  rj   rt  rr   r  r  r	  r	  r  r&  rk   rl   r  r  r   r   r	  r  r'   r   r   r	  r   r   r  )r  r	  r	  r	  r2   r3   r	  r	  r	  r	  r	  r	  r	  rf   r"   r	  s                   r#   test_specgram_angler	    s    2;J-.A	B!tRT2b5!BsFBsFBtG#<=FR"Wrvvf~-.J
		!Q"A
q255y2;;,,VQ778<<!<DAAaeHiilGR"Wr\"JIINN1nnbii77:BIINN1<MNOG3Ij)GZ+@A 
,419Q"''"''$-001& 	,D !6!6q!99E ,	EADR(#)T  C]]:. ,KKh'-U&*   ,, ,,	,
,, ,s   I	Ic                      t        j                  t        j                  d      dd      \  } }}}|j	                         \  }}}}|dk(  r|dk(  sJ y)z;Test axes.specgram when Fs is None, should not throw error.r  NrT  )r	  r+  r   `   )r'   r	  rj   r   
get_extent)specfreqsr  r  rh   ri   freq0freq1s           r#   test_specgram_fs_noner	    sN    bggclt8LD%B!}}D$u2:$"*$$*r%   c                     t        j                  d      }t        j                  |      }dt        j                  d<   |j                         j                  |       dt        j                  d<   | j                         j                  |       y)zCTest specgram ignores image.origin rcParam and uses origin 'upper'.r  upperzimage.originr   N)rj   rr   r  r'   r   r   r	  )r    r!   r  signals       r#   test_specgram_origin_rcparamr	    sn     			#AVVAYF#*CLL  ' $+CLL    (r%   c                      t        j                  d      } t        j                  |       }t        j                  t
              5  t        j                  |d       ddd       y# 1 sw Y   yxY w)z4Ensure passing origin as a kwarg raises a TypeError.r  r   r  N)rj   rr   r  r   r   r   r'   r	  )r  r	  s     r#   test_specgram_origin_kwargr	    sK    
		#AVVAYF	y	! -VG,- - -s   A%%A.)zpsd_freqs.pngzcsd_freqs.pngzpsd_noise.pngzcsd_noise.pnggMb`?c            
      *   d} d}|dz  |dz  |dz  g|dz  |dz  |dz  gg}t        d	|z  t        j                  |      z        }t        j                  d
| d|z        }t        j                  dt        j
                  z  t        j                  j                  ||      z        j                  d      }t        d	|z  dz        }t        j                  j                  d
       t        j                  j                  |       t        j                  j                  |       g}ddiddddddg}||f||ffD ]W  \  }	}
|
dz  }t        dt        j                  t        j                  |
            z        }t        t!        j"                         j%                  d      |      D ]f  \  }} |j&                  t        j(                  |	      f|
|||d|}t+        |      d|j-                  dd      z   k(  sJ |j/                  dd       h t        t!        j"                         j%                  d      |      D ]R  \  }} |j0                  |	|
|||d|}t+        |      d|j-                  dd      z   k(  sJ |j/                  dd       T Z y )Nr!        Y@r.  r   rM  r	  r	  r	  r  r   r9   r:   r  r	  r  r	  F)r	  return_liner	  Tr   )r	  r	  r	  r	  r	  r   xlabelylabel)r	  rj   rt  rr   r  r  r	  r	  r  rk   rl   r  r   r   r	  r  r'   r   r   psdr  r  r  r   csd)r  r	  r	  r	  r2   ys_freqsr	  ys_noise
all_kwargsrw  r	  r	  r	  r"   r  r  s                   r#   test_psd_csdr	    sr    	A	B!tRT2b5!BsFBsFBtG#<=FTBY/0J
		!Q"Avva"%%i"++"3"3FA">>?CCCKHTBY^$JIINN1		))!,biinnQ.?@HI&&u=&t<>J 
+h
-CD )D19Q"''"''$-001cjjl33A6
C 	)JB"&&+ E$2"*6E=CECs8q6::mU#CCCCCFF"RF(		)
 cjjl33A6
C 	)JB"&&"4B"*6E=CECs8q6::mU#CCCCCFF"RF(		))r%   )z#magnitude_spectrum_freqs_linear.pngzmagnitude_spectrum_freqs_dB.pngzangle_spectrum_freqs.pngzphase_spectrum_freqs.pngz#magnitude_spectrum_noise_linear.pngzmagnitude_spectrum_noise_dB.pngzangle_spectrum_noise.pngzphase_spectrum_noise.pngc                     d} d}|dz  |dz  |dz  g}t        d|z  t        |      z        }t        dt        j                  t        j                  |            z        }t        j
                  d| d	|z        }t        j                  dt        j                  z  t        j                  ||      z        d
t        j
                  d      z  z  j                  d	      }t        j                  j                  d       t        j                  t        j                  j                  |       t        j                  j                  |       g      dz
  }g d}||d}	||fD ]  }
t        t!        j"                         j%                  d      |      D ]1  \  }} |j&                  |
fd|i|	\  }}}|j)                  dd       3 t        t!        j"                         j%                  d      |      D ]5  \  }} |j&                  |
fd|i|	ddi\  }}}|j)                  dd       7 t        t!        j"                         j%                  d      |      D ]1  \  }} |j*                  |
fd|i|	\  }}}|j)                  dd       3 t        t!        j"                         j%                  d      |      D ]1  \  }} |j,                  |
fd|i|	\  }}}|j)                  dd       3  y )Nr!  r	  r.  r   rM  r  r:   r   r9   r~   r   r  r   r	  )r	  r	  r	  r   r	  r+  r	  )r	  rt  rj   r   r	  rr   r  r  r	  r  rk   rl   r&  r  r   r  r'   r   r   magnitude_spectrumr   angle_spectrumphase_spectrum)r  r	  fstims1r	  r	  r2   r	  r	  r	  r  r3   r"   r	  r	  r	  r  s                   r#   test_spectrumr	    s    	A	B!tRT2b5!Gtby3w<'(Dbggbggdm,,-F
		!Q"Aq255y288Aw#7782ryy|;KK IINN1ii2215ryy~~a7HIJROG3I&)Fw )SZZ\2215yA 	)IB 5 5 5a Ou O OD%FF"RF(	) SZZ\2215yA 	)IB 5 5 5a !Bu !B !B<@!BD%FF"RF(	) SZZ\2215yA 	)IB 1 1 1! K5 KF KD%FF"RF(	) SZZ\2215yA 	)IB 1 1 1! K5 KF KD%FF"RF(	))r%   c                     t        j                         j                  d      } | D ]  }|j                  j	                  d         t        j                  d      5  | d   j                  t        j                  d             | d   j                  t        j                  d      t        j                  d             d d d        y # 1 sw Y   y xY w)	Nr:   T)r	  r  r  r   r   r9   )
r'   r   r   r]   r   rj   r  r	  r  r	  r  r"   s     r#   test_psd_csd_edge_casesr	    s    
**,


"C $
d#$	H	% -A

288A;A

288A;,- - -s   A#C		Cc                 ,   | j                         }|j                         }|j                         }|j                          |j                          |j                         }|j                  j                          |j                  j                          y r  )r   r  r  ry  r[   tick_bottomr]   	tick_left)r    r!   rw   ax_twinxax_twinyrx   s         r#   test_twin_remover	  $  sj    ""$G}}H}}HOOOO  "F LL
LLr%   ztwin_spines.pnggI+?c                     d } t        j                  d      }|j                  d       |j                         }|j	                         }|j	                         }|j
                  j                  j                  d        | |       |j
                  j                  j                  d       |j                  g dg dd	      \  }|j                  g dg d
d      \  }|j                  g dg dd      \  }|j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  j                  j                  |j                                |j                  j                  j                  |j                                |j                  j                  j                  |j                                t!        dd      } |j"                  dd|j                         d|  |j"                  dd|j                         d|  |j"                  dd|j                         d|  |j"                  dddi| y )Nc                     | j                  d       | j                  j                  d       | j                  d d  j                  d       y )NTF)set_frame_onr  r   spinesr  s    r#   make_patch_spines_invisiblez5test_twin_spines.<locals>.make_patch_spines_invisible7  s6    

U#
		!  'r%   )r.  r   rB  rd  )rC   )rx  r7  TrF  zb-)r   r   r:   zr-)rY  r   r   zg-r   r:   r.  r9   A   r   )r  r  r3   )r   r  r   r2   r   )r'   r   r  r   r  r	  rC   ra  r   r   r  r  r]   r0   r  r'  r  tick_params)	r	  r-   hostpar1par2r3  r4  p3tkws	            r#   test_twin_spinesr
  3  s   (
 **V
$Cd#??D::<D::<D 	KK""=1  %KK!!$'
))Iy$
/CB
))Iy$
/CB
))I|T
2CBMM!QMM!QMM!QMM!RJJr||~.JJr||~.JJr||~.
AS
!CD<#blln<<D<#blln<<D<#blln<<D%#%%r%   ztwin_spines_on_top.pngc                     dt         j                  d<   dt         j                  d<   t        j                         } | j	                  ddd      }t        j                  g dg dg      }|j                         }|j                  |d   |d   dz  d	
       |j                  |d   |d   dz  d	d       |j                  |d   |d   dz  d
       |j                  |d   |d   dz  dd       |d   |d   dz  d}t        j                         } | j	                  ddd      }|j                         }|j                  ddd	|       |j                  ddd	d|       |j                  ddd|       |j                  dddd|       y )Ng      H@r0  r4  r9   )r  iL  i  i  )r  i-  r  r  r        @@z#BEAED4rY  r  )r   r  z#7FC97Fr   )rA  r  rA  r  )r   r  )r   r  r  )
rW   r   r'   r   r   rj   rN  r  r   r  )r-   r  r  r  s       r#   test_twin_spines_on_topr
  a  s    -1J()-1J)*
**,C
//!Q
"C88-)+ ,D ))+CHHT!Wd1gckH3T!Wd1gck"EHHT!Wd1gckH3T!Wd1gck"E atAws{+D
**,C
//!Q
"C
))+CHHS#YTH2S#YbtDHHS#YTH2S#YbtDr%   z(grid_which, major_visible, minor_visible))r   TT)majorTF)rM  FTc                 V   t         j                  j                  d| d       t        j                         \  }}|j
                  j                          t        fd|j                  j                  D              sJ t        fd|j                  j                  D              sJ y )NT)rm  zaxes.grid.whichc              3   X   K   | ]!  }|j                   j                         k(   # y wr  gridliner  )r/  tickmajor_visibles     r#   r0  z*test_rcparam_grid_minor.<locals>.<genexpr>  +      0 }}((*m; 0   '*c              3   X   K   | ]!  }|j                   j                         k(   # y wr  r
  )r/  r
  minor_visibles     r#   r0  z*test_rcparam_grid_minor.<locals>.<genexpr>  r
  r
  )r   r   r  r'   r   rl  r  r1  r[   
majorTicks
minorTicks)
grid_whichr
  r
  r-   r"   s    ``  r#   test_rcparam_grid_minorr
    s     LLdzJKllnGCJJOO 088..0 0 0 0 088..0 0 0 0r%   c                  "   t        j                         \  } }|j                          | j                  j	                          |j
                  j                  d   j                  j                         sJ |j                  d       | j                  j	                          |j
                  j                  d   j                  j                         rJ |j                  d       | j                  j	                          |j
                  j                  d   j                  j                         sJ |j                          | j                  j	                          |j
                  j                  d   j                  j                         rJ y )Nr   FvisibleT)	r'   r   r  rl  r  r[   r
  r
  r  r,   s     r#   	test_gridr
    s   llnGCGGIJJOO88q!**66888GGEGJJOOxx""1%..::<<<GGDGJJOO88q!**66888GGIJJOOxx""1%..::<<<<r%   c                     t        j                         \  } }|j                  dd       |j                  j	                         D ]A  }|j
                  j                         dk(  r!J d|j
                  j                                  |j                  j	                         D ]A  }|j
                  j                         dk(  r!J d|j
                  j                                  y)z<Test that grid(color=(..., alpha)) respects the alpha value.T)r   r  r  r   rY  r   zExpected alpha=0.3, got N)r'   r   r  r[   get_major_ticksr
  r  r]   )r-   r"   r
  s      r#   test_grid_color_with_alphar
    s    llnGCGGD,G- ((* C}}&&(C/ 	C&t}}'>'>'@&AB	C/C ((* C}}&&(C/ 	C&t}}'>'>'@&AB	C/Cr%   c                  R   t        j                         \  } }|j                  ddd       |j                  j                  d   j
                  j                         rJ |j                  d       |j                  j                  d   j
                  j                         sJ t        j                  ddi      5  |j                          |j                  ddd       |j                  j                  d   j
                  j                         sJ 	 d d d        y # 1 sw Y   y xY w)	NTr
  r~   )resetrO  	labelsizer   rB  rY  rm  )
r'   r   r	  r[   r
  r
  r  r  r   r  r,   s     r#   test_reset_gridr!
    s    llnGCNNWN;xx""1%..::<<<GG%G88q!**66888	d+	, =


TB?xx""1%..::<<<= = =s   ;ADD&c                 <   || fD ]P  }|j                         }|j                  d       |j                  dddddddd	d
ddd       |j                          R | j                  D ]6  }|j
                  j                          |j                  j                          8 y )NTinr~   r   r  r  rZ  r  r  r  r  r   rV  )	directionlengthr  r   padr 
  
labelcolorlabelrotation
grid_color
grid_alphagrid_linewidthgrid_linestyle)r   r  r	  r  rx  r[   reset_ticksr]   )r    r!   r-   r"   s       r#   test_reset_ticksr.
    s    " %__

2QdTA	 	 	!
 	""$% mm 

r%   c                  l   t        j                  dddddddddd		      5  t        j                         \  } }d d d         j                          j                  j
                  d
   }|j                  j
                  dd  D ]  }|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(  rJ  y # 1 sw Y   xY w)Nr#
  r   r   r  r  TrZ  r  )	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=
    s$   	#RSB t!t	= 
> !
 ,,.R!  $$Q'J##AB' 4zzZ-----{{j/////~~!5!5555""j&?&????||z11111}}
 3 33334! !s   D**D3c                      t        j                         } | j                         }|j                  d       |j	                  g d       t        |j                         d       y )Nr   )r]  r   r   r   )r]  r   )r'   r   rs  rS	  r   r   r   r,   s     r#   test_vline_limitr?
    s@    
**,C	BJJsOGG BKKM9-r%   zfv, fh, args)r9   r}  c                 
   t         j                  j                  d      }t        j                  t
        d      5   | ||dd d d d        t        j                  t
        d      5   | |d|d d d d        t        j                  t
        d      5   |||dd d d d        t        j                  t
        d      5   ||d|d d d d        y # 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   OxY w# 1 sw Y   y xY w)	Nr9   z"ymin must be a single scalar valuer  r	  r	  z"ymax must be a single scalar valuez"xmin must be a single scalar value)rh   ri   z"xmax must be a single scalar value)rW   r  num2dater   r   r  )fvfhargsbad_lims       r#   test_axline_minmaxrG
    s     ''*G	z)M	N (
DwQ'(	z)M	N (
Dqw'( 
z)M	N (
DwQ'(	z)M	N (
Dqw'( (( (( (( (( (s/   
C(
C!
C-
C9C!C*-C69Dc                      t        j                  dddd      \  } }|d   j                  g dg d       |d   j                         \  }}|d   j	                         \  }}|dk  sJ |dk\  sJ |dk  sJ |d	k\  sJ y )
Nr9   r:   T)r)  r*  r  rr  r   r  )r:   r.  r   r   r   )r'   r   r   r   r   )r-   r  rR  r4  rS  r  s         r#   test_empty_shared_subplotsrI
    s    ||!1T$GHCFKK	9%V__FBV__FB7N77N77N77N7r%   c                  d   dD ]  } t        j                  dd      \  }}|d   j                  d| d       |d   j                         dk(  sJ |d   j	                         | k(  sJ t        j                  dd      \  }}|d   j                  d|        |d   j                         d	k(  rJ  y )
Nboxdatalimr:   T)r)  r  r   )
adjustablesharer9   rN
  r  )r'   r   
set_aspect
get_aspectget_adjustable)rN
  r-   r  s      r#   test_shared_with_aspect_1rT
  	  s    ( -
<<a5SA!
$?1v  "a'''1v$$&*444<<a5SA!
31v  "f,,,-r%   c                     t        j                  ddd      \  } }|d   j                  dd       |d   j                  ddgddg       |d   j                  ddgddg       t        j                          |d   j                         |d   j                         k(  sJ |d   j                         |d   j                         k(  sJ y )	Nr:   T)r)  r  rr  r   )rO
  r9   r   r.  )r'   r   rQ
  r   r  r   r   r  s     r#   test_shared_with_aspect_2rV
    s    ||!D>HCFat$FKKAAFKKAAHHJq6??A 1111q6??A 1111r%   c                  H   dD ]  } t        j                  dd      \  }}|d   j                  d|        |d   j                  d|        |d   j                  ddgd	d
g       |d   j                  d	d
gddg       t        j                          |d   j                         |d   j                         k7  sJ |d   j                         |d   j                         k(  sJ |j                  j                  |j                  j                  z  }|D ]  }|j                         }|j                  |j                  z  }|j                  j                  |j                  j                  z  }||z  |z  }t        |d
      t        |j                         d
      k(  rJ   y )NrK
  r:   T)r)  rr  r   rP
  r9   r   r   r.  )r'   r   rQ
  r   r  r   r   bbox_inchesr  r  rb  viewLimrM  rR
  )	rN
  r-   r  
fig_aspectr"   r  
box_aspect
lim_aspectr  s	            r#   test_shared_with_aspect_3r]
  !  sv   ( C
<<a5SA!
3A#*5AQFQF#AQFQF#
1v CFOO$55551v CFOO$5555__++coo.C.CC
 	CB!AAGG+J**RZZ-=-==J!J.;H1%r}})BBBB	CCr%   c                      t        j                  dddd      \  } }|d   j                  d       t        j                  t
        d      5  | j                          d d d        y # 1 sw Y   y xY w)	Nr9   r:   Tr  rr  r   r  zset_aspect\(..., adjustable=r  )r'   r   r   r   r   RuntimeErrorr  )r-   rx  s     r#   test_shared_aspect_errorra
  5  sZ    Q$t<ICGLL	|+J	K %""$% % %s   A&&A/zerr, args, kwargs, matchr-  z@axis\(\) takes from 0 to 1 positional arguments but 2 were given)r"  z4Unrecognized string 'foo' to axis; try 'on' or 'off'zThe first argument to axis*r"  z1axis\(\) got an unexpected keyword argument 'foo'c                     t        j                  | |      5  t        j                  |i | d d d        y # 1 sw Y   y xY wNr  )r   r   r'   r   errrE
  r  r  s       r#   test_axis_errorsrf
  <  s8     
s%	( "$!&!" " "	   7A c                     t        j                         } t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  dd       d d d        t        j                  t        d      5  | j                  d       d d d        t        j                  t        d      5  | j                  d	
       d d d        t        j                  t        d      5  | j                  ddd	       d d d        t        j                  t        d      5  | j                  ddd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        t        j                  t        d      5  | j                  dd	       d d d        y # 1 sw Y   .xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   5xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzunknown value for which: 'foo'r  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   rh   zCannot pass both 'right')rC   ri   zCannot pass both 'bottom')rP   r	  zCannot pass both 'top')r?   r	  )r'   rs  r   r   r  r	  r	  r   set_prop_cycle
set_anchorticklabel_formatr(   r)   r  r  r  s    r#   test_axis_method_errorsrm
  N  sN   	B	z)I	J &
u%&	z)I	J &
u%&	y(K	L .
%u-.	z)A	B 
e	z)G	H )
a()	y(H	I .
e1-.	y(H	I -
e!,-	y(A	B $
#$	y(B	C %
!!$%	y(C	D &
11%&	y(@	A #
"# #)& && &. . ) ). .- -$ $% %& &# #s   I.%I;JJJ"<J/4J<,K	#KK"K..I8;JJJ"J,/J9<K	KK"K+.K7c                    t        j                         \  }} t        |d|               }|j                  d       |j                  d       t	        |j
                  j                  |j
                  j                         y )Nr  r   r:   )r'   r   r$  rQ
  r   bboxextents)r  r-   r"   r@  s       r#   test_twin_with_aspectrq
  h  sa    llnGC(gbD-(*GMM!qrww||++-r%   c                  r   d} d}d}d}t         j                  j                         }|j                         }|j	                  | |       |j                         | k(  sJ |j                         |k(  sJ |j	                  ||      \  }|j                         |k(  sJ |j                         |k(  sJ |j                  d       |j                         |k(  sJ |j                         |k(  sJ |j                  d       |j                          |j                         | k(  sJ |j                         |k(  sJ y )N)r  r?  )r  r[  )r  r9  FTvisible_only)
rW   r   r   r   r   r   r   r   relimr   )r4  r  rP  rQ  r-   r"   r  s          r#   test_relim_visible_onlyrv
  s  s   	B	B	B	B



"
"
$C		BGGBO;;=B;;=BGGBOED;;=B;;=BU;;=B;;=BHH$H;;=B;;=Br%   c                     t        j                         \  } }|j                  g dg d      }|j                          |j	                  |j
                        }t        |j                  j                         |j                                t        |j                  j                  |j                         |j                  ddgddgg       |j                          |j	                  |j
                        }t        |j                  j                         |j                                t        |j                  j                  |j                         |j                  ddgddg      \  }|j                  d	       |j                  d
       t        |j                  j                         ddgddgg       t        |j                  j                  ddg       y )Nr  rV  r~   r  r   r  r   r9   FTrs
  r   )r'   r   r;   ru
  get_datalim	transDatar   dataLim
get_pointsminposr	  r   r   r   )r-   r"   rL   r  r  s        r#   test_relim_collectionr}
    sT   llnGC	Iy	)BHHJ~~bll+HBJJ))+X-@-@-BCBJJ%%x7 NNRHr2h'(HHJ~~bll+HBJJ))+X-@-@-BCBJJ%%x7 GGQFQF#EDNN5HH$HBJJ))+q!fq!f-=>rzz((2r(3r%   c                     dd l m}  t        j                         \  }}|j	                  ddgddg       |j                          |j                  j                         }| j                  g       }|j                  ddgddgg       |j                  |d       |j                          t        |j                  j                         |j                                t        |j                  j                  |j                         y )	Nr   r9   r   r  r  r  F)autolim)matplotlib.collectionsr  r'   r   r   ru
  rz
  frozenr   r	  r!  r   r{
  r|
  )mcollectionsr-   r"   r  rL   s        r#   #test_relim_collection_autolim_falser
    s     2llnGCGGQFQFHHJzz  "H		$	$R	(BNNS#Jc
+,b%(HHJBJJ))+X-@-@-BCBJJ%%x7r%   c                     t        j                         \  } }|j                  d       |j                  d       |j	                  g dg d      }|j                  ddgddgg       |j                          |j                  |j                        }t        |j                  j                         |j                                t        |j                  j                  |j                         y )Nr,  )rZ  r  r   )r?  r	  r
  r?  g     @r	       j@)r'   r   rU  r  r;   r	  ru
  rx
  ry
  r   rz
  r{
  r|
  )r-   r"   rL   r  s       r#   test_relim_collection_log_scaler
    s     llnGCMM%MM%	&	8BNNS#Jc
+,HHJ~~bll+HBJJ))+X-@-@-BCBJJ%%x7r%   c                     t        j                         \  } }|j                  g g       }t        j                  ddd      }|j                  t        j                  |t        j                  |      f             |j                          |j                          |j                         }|j                         }|d   dk  r|d   dk\  s
J d|        |d   dk  r|d   dk\  s
J d|        y )Nr   r~   rY  r9   z!xlim should contain [0, 10], got r   z!ylim should contain [-1, 1], got )r'   r   r;   rj   r  r	  r  r  ru
  r   r   r   )r-   r"   rL   rv  r   r   s         r#   $test_relim_collection_autoscale_viewr
    s     llnGC	B	B	QB	BNN2??Br
#345HHJ;;=D;;=D7a<DGrMU-Ntf+UU)7b=T!W\U-Ntf+UU)\r%   c                      t        j                         } | j                         }|j                  d       |j                  d       y)z
    tests for issue #1172
    large)r 
  outr$
  N)r'   r   rs  r	  r,   s     r#   test_text_labelsizer
    s6     **,C	BNNWN%NNUN#r%   zpie_default.pngc            	      ~    d} g d}g d}d}t        j                  d      \  }}|j                  ||| |ddd	
       y )NFrogsHogsDogsLogsr   r   r  r~   yellowgreengoldlightskyblue
lightcoralr   r   r   r   )r  r   rB  %1.1f%%TrD  )exploder  r  autopctshadow
startangler'   r   pie)r  sizesr  r
  rp  r  s         r#   test_pie_defaultr
    sJ     -FEBFGV,ID#GGE76&dr  ;r%   )pie_linewidth_0.pngr
  r
  c                     d} g d}g d}d}t        j                  ||| |ddddd	i
       t        j                  d       | |||d}t        j                         }|j	                         }|j                  ddddddddd	i|	       |j                  d       t        j                          t        j                  ddddddddd	i|	       t        j                  d       y )Nr
  r
  r
  r
  r
  TrD  r5  r   r
  r  r  r
  r
  r
  
wedgepropsr  )lr  r=   exr  r
  r
  r=   )r
  r  r  r
  r
  r
  r
  r  )r'   r
  r   r   rs  )r  r
  r  r
  r  r-   r"   s          r#   test_pie_linewidth_0r
    s     -FEBFGGGE76&dr#Q') HHW e&@D
**,C	BFF3STb"A&T  3 GGG JJLGGCc#dr#Q'd4 HHWr%   zpie_center_radius.pngr  c                      d} g d}g d}d}t        j                  ||| |ddddd	id
d
       t        j                  dd
dt        dd      t        dd             t        j                  d       y )Nr
  r
  r
  r
  r
  TrD  r5  r   r-  r   )	r
  r  r  r
  r
  r
  r
  rZ   r	  zCenter point)r9   r  ->arc3)
arrowstyleconnectionstylesquare	lightgrey)boxstyler3  )r   r  r$  ro
  r  )r'   r
  r  r  r   r  r
  r  r
  s       r#   test_pie_center_radiusr
    sz     -FEBFGGGE76&dr#Q'sD LLF8 D179HDF
 HHWr%   zpie_linewidth_2.pngc                      d} g d}g d}d}t        j                  ||| |ddddd	i
       t        j                  d       y )Nr
  r
  r
  r
  r
  TrD  r5  r:   r
  r  r'   r
  r   r
  s       r#   test_pie_linewidth_2r
  !  sI     -FEBFGGGE76&dr#Q') HHWr%   zpie_ccw_true.pngc            
          d} g d}g d}d}t        j                  ||| |dddd       t        j                  d	       y )
Nr
  r
  r
  r
  r
  TrD  )r
  r  r  r
  r
  r
  counterclockr  r
  r
  s       r#   test_pie_ccw_truer
  0  sD     -FEBFGGGE76&dr HHWr%   zpie_frame_grid.pngc                  $   d} g d}g d}d}t        j                  ||| |ddddd	idd

       t        j                  |d d d   || |ddddd	idd
       t        j                  ||d d d   | |ddddd	idd
       t        j                  d       y )Nr
  r
  r
  r
  r
  TrD  r5  r   r~  )	r
  r  r  r
  r
  r
  r
  framerZ   r   )r   r:   )r   r   r  r
  r
  s       r#   test_pie_frame_gridr
  ?  s     -FEBFGGGE76&dr#Q'v'
 GGE$B$Kdr#Q'v'
 GGE74R4=dr#Q'v'
 HHWr%   zpie_rotatelabels_true.pngc            
          d} g d}g d}d}t        j                  ||| |dddd       t        j                  d	       y )
N)Hogwartsr
  r
  r
  r
  r
  r
  r
  TrD  )r
  r  r  r
  r
  r
  rotatelabelsr  r
  r
  s       r#   test_pie_rotatelabels_truer
  Z  sD     1FEBFGGGE76&dr HHWr%   zpie_no_label.pngc                      d} g d}g d}d}t        j                  ||| |dddd d	       t        j                  d	       t        j                  d
d       t        j                          y )Nr
  r
  r
  r
  r
  TrD  )r
  r  r  r
  r
  r
  labeldistancer
  r  g333333r7  )r'   r
  r   r   rI   r
  s       r#   test_pie_nolabel_but_legendr
  i  s[    ,FEBFGGGE76&dr HHWHHT3JJLr%   zpie_shadow.pngc            
      T   g d} g d}d}t        j                  dd      \  }}|d   d   j                  | ||ddddi	       |d   d
   j                  | ||ddddi	       |d
   d   j                  | ||ddddddddi	       |d
   d
   j                  | ||dddddddi	       y )Nr
  r
  r
  r:   r   TrD  r5  )r
  r  r
  r
  r
  r9   Fr  rz  r/  )oxoyshader4  r.  r   )r
  r5  r
  r
  )r
  r  r
  r  rx  s        r#   test_pie_shadowr
  w  s     EBFGll1a GAtGAJNN5'&2*A.  0 	GAJNN5'&B*A.  0 	GAJNN5'&!&ecPVW k1-=  ? 	GAJNN5'&!%AD k1-=  ?r%   c                     g d} g d}t        dddddd	      }t        j                         j                  | |d
|      \  }}}||fD ]  }|D ]  }|j	                         |d   k(  sJ |j                         |d   k(  sJ |j                         |d   k(  sJ |j                         |d   k(  sJ |j                         |d   k(  sJ |j                         |d   k(  rJ   y )N)r  "   r  )zLong name 1zLong name 2zLong name 3rZ   r?   rD  anchorr  rB  )horizontalalignmentverticalalignmentr  rotation_moder  r   %.2f)r  r
  	textpropsr
  r
  r  r
  r  r   )
r  r'   rs  r
  get_haget_vaget_rotationget_rotation_modeget_sizer'  )r  r  r
  r  textsr
  txs          r#   test_pie_textpropsr
    s   D:F', #+E	+I 	d6609 & ;Aug'" 8 	8B99;),A"BBBB99;),?"@@@@??$	*(===='')Y-GGGG;;=If$5555<<>Yw%7777	88r%   c                      t        j                         \  } }t        j                  t              5  |j                  g dg d       d d d        y # 1 sw Y   y xY w)N)r   r   r  )r   r   r   r
  r'   r   r   r   r  r
  r,   s     r#   test_pie_get_negative_valuesr
    sB    llnGC	z	" 0
z;/0 0 0   AAc                      t        j                         \  } }t        j                  t              5  |j                  g dddg       d d d        y # 1 sw Y   y xY w)Nr  r   r
  r
  r,   s     r#   test_pie_invalid_exploder
    sF    llnGC	z	" .
y3*-. . .r
  c                      t        j                         \  } }t        j                  t              5  |j                  g dddg       d d d        y # 1 sw Y   y xY w)Nr  OneTwor  r
  r,   s     r#   test_pie_invalid_labelsr
    sF    llnGC	z	" 1
y%01 1 1r
  c                      t        j                         \  } }t        j                  t              5  |j                  g dd       d d d        y # 1 sw Y   y xY w)Nr  r  )r	  r
  r,   s     r#   test_pie_invalid_radiusr
    sB    llnGC	z	" %
y$% % %s   AAc                     t        j                         \  } }g d}|j                  |d      }t        |d   d   j                  dz
        dk  sJ |j                  |d      }t        |d   d   j                  dz
        dkD  sJ y )	Nr   r   r   T)r2   	normalizer   r   g     v@rZ  F)r'   r   r
  rb  r  )r-   r"   r2   t1t2s        r#   test_normalize_kwarg_pier
    s    llnGCA	!t	$Br!uRy$&'$...	!u	%Br!uRy$&'$...r%   c                     g d}d}| j                         j                  ||       |j                         j                  |      \  }}|D cg c]  }|j                  |       c} y c c}w )Nr
  r  r  )r   r
  	set_hatch)r    r!   r2   r<  wedgesr  rp  s          r#   test_pie_hatch_singler
    s_    AEAU+  "&&q)IFA!'(AQ[[((s   A*c                    g d}g d}| j                         j                  ||       |j                         j                  |      \  }}t        ||      D cg c]  \  }}|j                  |       c}} y c c}}w )Nr
  )r:  r  r   r  )r   r
  r  r
  )r    r!   r2   r<  r
  r  rp  hps           r#   test_pie_hatch_multir
    si    AEAU+  "&&q)IFA"%fe"45BQ[[_55s   A;c                  `   t        j                         \  } }|j                  ddg      }|j                  |d      }|d   j	                         dk(  sJ |d   j	                         dk(  sJ |j                  |d      }|d   j	                         d	k(  sJ |d   j	                         d
k(  sJ y )Nr:   r   z{absval:03d}r   002r9   003z
{frac:.1%}z40.0%z60.0%)r'   r   r
  	pie_labelry  )r-   r"   r
  r
  s       r#   test_pie_label_formatterr
    s    llnGC
&&!Q.CLLn-E8%'''8%'''LLl+E8')))8')))r%   distancer  rm  rotatec                    t        j                         \  }}|j                  ddgd      }|j                  |ddg| |d      }| dk  r2|D ],  }|j	                         dk(  sJ |j                         dk(  r,J  y d	d
g}ddg}t        |||      D ]H  \  }}	}
|j	                         |	k(  sJ |r|j                         |
k(  r2J |j                         dk(  rHJ  y )Nr9   r  )r
  spameggsr  )r
  r
  	alignmentrZ   rC   rQ   rP   r?   )r'   r   r
  r
  r\   get_verticalalignmentr  )r
  r
  r-   r"   r
  r
  text
h_expected
v_expectedh_alignv_aligns              r#   test_pie_label_auto_alignr    s    llnGC
&&!QB&
'CLLff6  SE !| 	<D//1X===--/8;;;	< v&
&
&)%Z&H 	@"D'7//1W<<<113w>>>113x???	@r%   c                  
   d} d}t        j                         \  }}|j                  |       }t        j                  d      }t        j                  t        |      5  |j                  ||       d d d        y # 1 sw Y   y xY w)Nr
  )r
  r
  z<The number of labels (2) must match the number of wedges (4)r  )	r'   r   r
  reescaper   r   r  r
  )r
  r  r-   r"   r
  r  s         r#   test_pie_label_failr	    sh    EFllnGC
&&-CIITUE	z	/ "
S&!" " "s   A99Bzset_get_ticklabels.pngc                  D   t        j                  d      \  } }ddg}|d   j                  t        j                  d             |d   j                  |d          |d   j                  t        j                  d             |d   j                  |d          |d   j                  t        d             |d   j                  t        d             |d   j                  g ddd	gz  z          |d   j                  g d
dd	gz  z          |d   j                  |d   j                                |d   j                  |d   j                                |d   j                  |d   j                                |d   j                  |d   j                                y )Nr:   rm   zset_x/yticklabelsr   r~   r9   r   r#  r=   r  r   r   )11121314)r'   r   r   rj   rr   r5   r  r   r  set_xticklabelsset_yticklabelsr  
get_yticksr  get_yticklabels)r-   r"   rF   s      r#   test_set_get_ticklabelsr    s`    ll1oGC
'	(BqEJJryy}qEOOBqEqEJJryy}qEOOBqE qEU2YqEU2YqE.bT9:qE2Q"X=> qERU%%'(qERU%%'(qE"Q%//12qE"Q%//12r%   c                      t        j                         \  } }g d}t        j                  t        d      5  |j
                  j                  |d       ddd       y# 1 sw Y   yxY w)z]
    When labels=None and any kwarg is passed, axis.set_ticks() raises a
    ValueError.
    r  z)Incorrect use of keyword argument 'alpha'r  r   r  N)r'   r   r   r   r  r[   	set_ticks)r-   r"   tickss      r#   0test_set_ticks_kwargs_raise_error_without_labelsr  *  sS    
 llnGCE	z)T	U -
5,- - -s   AA'c                    |j                         }|j                  g d       |j                  g dd       |j                  g d       |j                  ddgd	       |j	                  d
dgd	       | j                         }|j                  g dg dd       |j                  g d       |j                  ddgd
dgd	       y)z
    Test that these two are identical::

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

    )r9   r:   r.  r   r  bold)
fontweightr  r:   r.  T)rM  r  r  N)r   r  r  r  r  r   s      r#   test_set_ticks_with_labelsr  5  s     
			BMM,+?MM)MM1a&M%Sz.				BMM, 4MHMM)MM1a&3*DM1r%   c                     t        j                         j                         } t        j                  t
        d      5  | j                  ddgd       d d d        t        j                  t
        d      5  | j                  ddg|        d d d        t        j                  t        d      5  t        j                  t        j                  d      j                  d             d d d        t        j                  t        d      5  t        j                  t        j                  d      j                  d	             d d d        t        j                  t        d      5  t        j                  t        j                  d      j                  d      t        d      
       d d d        t        j                  t        d      5  t        j                  t        j                  d      j                  d	      t        d      
       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   LxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzmust be a sequencer  r:   rv  r  z
must be 1Dr.  rs  rr  r  )r'   r   r   r   r   r   r  r  r  rj   rr   r   r   r  s    r#   test_xticks_bad_argsr  K  s   		!	!	#B	y(<	= #
q!fc"#	y(<	= "
q!fb!"	z	6 2

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

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

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

299Q<''0qBC C# #" "2 22 2C CC CsI   H6H#.8H0	8H=$AI	
AIH #H-0H:=I	IIc                  
   t        j                         \  } }|j                  t        j                  d             |j
                  j                  t        j                  d      dz          |j                  d       |j
                  j                  dD cg c]  }| c}       t        j                          |j
                  j                         D cg c]  }|j                          }}|g dk(  sJ y c c}w c c}w )Nr~   r   r   r
  
bcdefghijk)r#  r  r  r  r  )r'   r   r   rj   rr   r[   r  r  set_ticklabelsr  get_ticklabelsry  )r-   r"   r=   r  r  s        r#   test_subsampled_ticklabelsr#  [  s    llnGCGGBIIbMHHryy}s*+AHH51Q56HHJ$&HH$;$;$=>qajjl>F>.... 6>s   	C;D c                  J   t        j                         \  } }|j                  t        j                  d             |j
                  j                  ddg       t        j                  t              5  |j
                  j                  g d       d d d        y # 1 sw Y   y xY w)Nr~   r   rH  r  )r'   r   r   rj   rr   r[   r  r   r   r  r!  r,   s     r#   test_mismatched_ticklabelsr%  g  sn    llnGCGGBIIbMHHSz"	z	" 1
01 1 1s   2BB"c                      t        j                         \  } }|j                  ddgddg       |j                  ddg       |j	                  g        y )Nr9   r:   )r'   r   r  r  r  r,   s     r#   test_empty_ticks_fixed_locr'  o  sE    llnGCFFAq6Aq6MM1a&rr%   zretain_tick_visibility.pngc                      t        j                         \  } }t        j                  g dg d       t        j                  |j	                         d       |j                  ddd       y )	NrF  )r   r   r.  Fr
  r3   r   r   r   rO  r%
  )r'   r   r   setpr  r	  r,   s     r#   test_retain_tick_visibilityr+  w  sH    llnGCHHY
#HHR!51NN6!N4r%   c                     t        j                         \  } }t        j                  t        d      5  |j                  ddg       d d d        t        j                         \  } }|j                  g d       t        j                  t        d      5  |j                  ddg       d d d        y # 1 sw Y   kxY w# 1 sw Y   y xY w)Nz:set_ticklabels\(\) should only be used with a fixed numberr  r!  r  rE  z$The number of FixedLocator locations)	r'   r   r   r  rZ  r  r  r   r  r,   s     r#   test_warn_too_few_labelsr-    s    llnGC	N
P ) 	C<()
 llnGCMM+	zC
E )
C<() )) )) )s   B1B=1B:=Cc                     t        j                         \  } }d }|j                  j                  t        j                  |             |j                  g d       |j                  dd       | j                  j                          |j                  j                         D cg c]  }|j                          }}|g dk(  sJ y c c}w )Nc                     | dk(  rdS dS )Nr9   
unit valuer   r   r   s     r#   formatter_funcz.test_tick_label_update.<locals>.formatter_func  s     Av|-2-r%   )r   r   r9   r:   r   r  rH  )r   r   r0  r   r   )r'   r   r[   r   r   r  r  rl  r  r"  ry  )r-   r"   r1  r
  
tick_textss        r#   test_tick_label_updater3    s     llnGC.HH  !2!2>!BC MM"#KKcJJOO.0hh.E.E.GHd$--/HJH7777 Is   $Czo_marker_path_snap.pngH   c                  b   t        j                         \  } }|j                  d       t        dd      D ]/  }|j	                  ddgt        j                  d      |z   d|       1 t        j                  ddd      D ]/  }|j	                  d	d
gt        j                  d      |z   d|       1 y )Nr   r9   r   r:   r   )r  r~   r  r   r.  )r'   r   r  r   r   rj   r   r  )r-   r"   r  s      r#   test_o_marker_path_snapr6    s    llnGCJJrNArl 7
A"''!*r/3267 kk!R$ 7
A"''!*r/3267r%   c                  *   ddg} d}t        |       dz
  }t        |       }t        |       }t        j                  dd      \  }}|j                  |        |j                  d       |j                         dk(  sJ |j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ |j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ t        j                  dd      \  }}|j                  |        |j                  dd       |j                         dk(  sJ |j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ |j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ t        j                  dd      \  }	}
|
j                  |        |
j                  d	d
       |
j                         dk(  sJ |
j                         |||z
  d	z  z
  |||z
  d	z  z   fk(  sJ |
j                         |||z
  dz  z
  |||z
  dz  z   fk(  sJ y )Nr9   r~   r  r   r}  r   r:   )r   r:   皙ɿr  )r8  r   )	r  rt  r  r'   r   r   r  r   r   )r  rh   ri   r	  r	  rp  r  rq  r  rr	  r  s              r#   test_marginsr9    si   r7DDt9s?Dt9Dt9DQ"ID#HHTNKKN;;=F"""<<>ddTkQ%66"dTkQ%668 8 8 8<<>ddTkQ%66"dTkQ%668 8 8 8 Q"ID#HHTNKKQ;;=H$$$<<>ddTkS%88"dTkS%88: : : :<<>ddTkQ%66"dTkQ%668 8 8 8 Q"ID#HHTNKK$#K;;=K'''<<>ddTkT%99"dTkT%99; ; ; ;<<>ddTkS%88"dTkS%88: : : :r%   c                      t        j                         } | j                         }|j                  dd       |j	                         dk(  sJ |j                         dk(  sJ y )Nr   r   )r'   r   r   r  get_xmarginget_ymarginr,   s     r#   test_margin_gettersr=    sQ    
**,C		BJJsC>>s""">>s"""r%   c                      t         j                  j                  d       t        j                         \  } }|j                  ddgddg       |j                  dd       |j                         dk(  sJ y )Nr  r9   r:   r,  r   )r  xmarginr-  )r   r   r   r'   r   r   r   r   r,   s     r#   test_set_margin_updates_limitsr@    s[    IIMM)llnGCGGQFQFFF%F#;;=F"""r%   )r   z!margin must be greater than -0\.5rr  r   z@Cannot pass both positional and keyword arguments for x and/or yr  z&Must pass a single positional argumentc                     t        j                  | |      5  t        j                         }|j	                         } |j
                  |i | d d d        y # 1 sw Y   y xY wrc
  )r   r   r'   r   r   r  )re
  rE
  r  r  r-   r"   s         r#   test_margins_errorsrB    sQ     
s%	( $jjl__

D#F#$ $ $s   7AA!c                  x    t        j                         \  } }|j                  d       |j                  dg       y Nr9   )r'   r   r  r,   s     r#   test_length_one_histrE    s)    llnGCGGAJGGQCLr%   c                     t        j                         } | j                         }|j                  dd       |j	                         dk(  sJ |j                         dk(  sJ |j                  d       |j	                         dk(  sJ |j                         dk(  sJ |j                  d       |j	                         dk(  sJ |j                         dk(  sJ |j                  dd       |j                         dk(  sJ |j                         dk(  sJ |j                  d       |j                         dk(  sJ |j                         dk(  sJ |j                  d       |j                         dk(  sJ |j                         dk(  sJ y )	Nr   r  )r   r  r  )r	  )r   r  )r   )r  r  )	r'   r   r   r"  
get_xboundr   r#  
get_yboundr   r,   s     r#   test_set_xy_boundrI    s]   
**,C		BMM#s==?j(((;;=J&&&MMM==?j(((;;=J&&&MMM==?j(((;;=J&&&MM#s==?j(((;;=J&&&MMM==?j(((;;=J&&&MMM==?j(((;;=J&&&r%   c                      dgdz  } t        j                  dd      \  }}|j                  | |        |j                  t	        j
                                y )Nr~   r   r9   )r'   r   r  r  r  r  )mylistr-   r"   s      r#   test_pathological_hexbinrL    sA    TCZFll1a GCIIffKK

r%   c                  b    t        j                         \  } }|j                  ddgddgd        y )Nr9   r:   rY  r  r,   s     r#   test_color_NonerN    s+    llnGCGGQFQF$G'r%   c                      t        j                         \  } }|j                  ddgd      d   }d|j                         k(  sJ y )Nr   r9   r  rO  )r'   r   r   r'  r-   r"   r  s      r#   test_color_aliasrQ    sA    llnGC77Aq6V7$Q'DT^^%%%%r%   c                      t        j                         \  } }|j                  t        d      gdz  t        d             |j	                          y )Nr   r   r
  )r'   r   r  r   rI   r,   s     r#   test_numerical_hist_labelrS  %  s8    llnGCGGU2YK!O58G,IIKr%   c                      t        j                         \  } }d}d}|j                  d      d|j                  d      g}|j                  t	        d      gdz  |       |j                          y )Ns    很漂亮, römän chäráctèrss   שלוםzutf-8zhi aardvarkr   r   r
  )r'   r   decoder  r   rI   )r-   r"   r   r#  r  s        r#   test_unicode_hist_labelrV  +  se    llnGC
@A+AhhwhhwF
 GGU2YK!O6G*IIKr%   c                     t         j                  j                  d      dz  } t        j                         \  }}|j	                  |        |j
                  j                          |j                  j                  j                         }|j                  j                  j                         dk(  sJ |j                  j                          |j
                  j                          |j                  j                  j                         }|d   |d   kD  r|d   |d   k(  sJ |j                  j                  j                         dk(  sJ t        j                         \  }}|j	                  |        |j
                  j                          |j                  j                  j                         }|j                  j                  j                         dk(  sJ |j                  j                          |j
                  j                          |j                  j                  j                         }|d   |d   k(  r|d   |d   kD  sJ |j                  j                  j                         dk(  sJ y )	Nr~   g^ 9^;rQ   r   r9   rC   r?   rP   )rj   rk   r'   r   r   rl  r  r]   
offsetTextrb  r\   
tick_rightr[   r
  r   )r  r-   r"   beforeafters        r#   test_move_offsetlabelr\  9  s   99B%'DllnGCGGDMJJOOXX  --/F88668FBBBHHJJOOHH,,.E8fQiE!Hq	$99988668GCCCllnGCGGDMJJOOXX  --/F88446%???HHJJOOHH,,.E8vay U1Xq	%99988446(BBBr%   zrc_spines.pngc                      ddddd} t        j                  |       5  t        j                          d d d        y # 1 sw Y   y xY w)NF)zaxes.spines.leftzaxes.spines.rightzaxes.spines.topzaxes.spines.bottom)rW   r   r'   r   )r8  s    r#   test_rc_spinesr^  S  sE     "" #	%G
 
		w	'   s	   ;Azrc_grid.pngc                      t        j                         } ddd}ddd}ddd}|||g}t        |d      D ]6  \  }}t        j                  |      5  | j                  dd|       d d d        8 y # 1 sw Y   CxY w)NTr   )rm  zaxes.grid.axisr2   r3   r9   r   )r'   r   r  rW   r   r   )r-   rc_dict0rc_dict1rc_dict2rB  rA  r8  s          r#   test_rc_gridrc  ^  s    
**,C H
 H
 H 8X.I	1- %
7""7+ 	%OOAq!$	% 	%%	% 	%s   A//A8	c                     ddddd} t        j                  |       5  t        j                         }|j                  ddd      }|j                  }|j
                  }|j                  d   rJ |j                  d   sJ |j                  d   rJ |j                  d   sJ |j                  d   sJ |j                  d   rJ |j                  d   sJ |j                  d   rJ 	 d d d        y # 1 sw Y   y xY w)NFT)r2
  r3
  
ytick.leftytick.rightrZ  r9   tick1Ontick2Onr'   r   r   r   r[   r]   _major_tick_kw_minor_tick_kwr  r-   r  xaxyaxs        r#   test_rc_tickrp  t  s   TE	3A	1	 1jjlooaA&iiii%%i000!!),,,%%i000!!),,,!!),,,%%i000!!),,,%%i00001 1 1s   CC00C9c            	          ddddddddd} t        j                  |       5  t        j                         }|j                  ddd      }|j                  }|j
                  }|j                  d   rJ |j                  d   sJ |j                  d   rJ |j                  d   sJ |j                  d   rJ |j                  d   sJ |j                  d   rJ |j                  d   sJ 	 d d d        y # 1 sw Y   y xY w)NTF)r3
  rf  r2
  re  zxtick.minor.bottomzxtick.major.bottomzytick.major.leftzytick.minor.leftrg  r9   rh  ri  rj  rm  s        r#   test_rc_major_minor_tickrr    s   4T$E"		?A
 
1	 -jjlooaA&iiii%%i000!!),,,%%i000!!),,,%%i000!!),,,%%i000!!),,,- - -s   CC44C=c                  .   t        j                  d      } t        j                  g d      }t        j                         \  }}|j                  | |d       |j                  d       |j                         |j                         }}t        j                  |      t        j                  |      k(  sJ |j                         dk(  sJ t        |j                  d      j                  d       t        |j                  d	      j                  d
       y )Nr.  )r   r  r  r^  mor
  r9   Tr_  g      ?r   rz  rz  F)g333333?r   g      ?rz  )rj   rr   rN  r'   r   r   r   r   r   r  rR
  r   rb  rp
  )r2   r3   r-   r"   r   r   s         r#   test_square_plotrv    s    
		!A
!"AllnGCGGAq$GGH$D774=BGGDM)))==?a
&..0FH
'//1KMr%   c                     t        j                  t              5  t        j                  d        d d d        t        j                  t              5  t        j                  d d        d d d        t        j                  t              5  t        j                  t        j                  d      t        j                  d             d d d        t        j                  t              5  t        j                  t        j                  d      j                  d      t        j                  d      j                  dd      f       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr~  r#  r   rr  r   r9   )	r   r   r  r'   r   rj   r  rr   r   r   r%   r#   test_bad_plot_argsrx    s   	z	" 	z	" t	z	" 5&!288F#345	z	" O"))A,&&w/11E1Eb!1LMNO O  5 5O Os0   EE	=E&'AE2EE#&E/2E;zxy, clsr   ))r   r  )r:   r   )r9   r:   r.  r  r  r  )r.  r   r  )r   r.  c                 v    t        j                         \  }}t         |j                  g | |       |k(  sJ y r  )r'   r   ri  r  )r   r  clsr-   r"   s        r#   test_pcolorfastr{    s9     llnGC(r(4()S000r%   c                  *   t        j                         \  } }t        j                  t        d      5  |j                  t        j                  d      t        j                  d      t        j                  d             d d d        y # 1 sw Y   y xY w)Nz)the given X was 1D and the given Y was 2Dr  r   )r.  r  r	  )r'   r   r   r   r   r  rj   emptyr,   s     r#   test_pcolorfast_bad_dimsr~    sg    llnGC	I
L G
bhhqk288F#3RXXf5EFG G Gs   AB		Bc            	      N   t        j                         \  } }t        j                  t        d      5  |j                  t        j                  d      t        j                  d      t        j                  j                  dd             ddd       t        j                  t        d      5  |j                  t        j                  d	      t        j                  d      t        j                  j                  dd             ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)
am  
    Test that the sizes of X, Y, C are compatible for regularly spaced X, Y.

    Note that after the regualar-spacing check, pcolorfast may go into the
    fast "image" mode, where the individual X, Y positions are not used anymore.
    Therefore, the algorithm had worked with any regularly number of regularly
    spaced values, but discarded their values.
    zKLength of X \(5\) must be one larger than the number of columns in C \(20\)r  r   rM  r~   r  NzHLength of Y \(5\) must be one larger than the number of rows in C \(10\)r  )
r'   r   r   r   r  r  rj   rr   rk   r   r,   s     r#   ,test_pcolorfast_regular_xy_incompatible_sizer    s     llnGC	 ?
@ K 	biilBIIbM299>>"b3IJK
 
 <
= K 	biimRYYq\299>>"b3IJK KK K
K Ks   AD.ADDD$c                     t        j                  dddd      \  } }|d   j                  d       |d   j                  d       |j                  D ],  }|j                         dk(  sJ |j                         dk(  r,J  |d   j                  d       |d   j                  d       |j                  D ],  }|j                         dk(  sJ |j                         dk(  r,J  y )Nr:   Tr_
  r  r,  r}  rT  )r'   r   rU  r  r  
get_yscale
get_xscaler-   r  r"   s      r#   test_shared_scaler    s    ||Aqd;HCIIhh (}}%'''}}%'''( I"I"hh +}}(***}}(***+r%   c                     t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)NTr  rq  )r   r   r   r'   rz  r   r%   r#   test_shared_boolr    sa    	y	! !4 !	y	! !4 ! !! !! !s   A2A>2A;>Bc                  X    t        j                  t        j                  ddg             y)z4Violin plot should handle point mass pdf gracefully.r   N)r'   rn  rj   rN  r   r%   r#   test_violin_point_massr    s    NN288QF#$r%   c            
         t        dt        j                  d      g      t        dt        j                  d      g      z   } t        ddg dg dg dgt        j                  d      t        j                  d      d g      }t        d|      }t        d	|      }t        dg g      t        dg g      z   t        dg d g      z  t        d	g d g      z  }| |z  }| |z  }| |z  |z  }g ||||S )
Nr2   r   r3   re
  r9   )r9   r9   r9   r9   r9   )r:   r   r_  r`  )r
   rj   rr   r   )base_xy
err_cyclerxerr_cyyerr_cyr}  	xerr_only	yerr_onlyboth_errs           r#   generate_errorbar_inputsr    s   S299Q<.)F3,EEG /!0!0!2 "
 " $ " #J VZ(GVZ(GS2$&rd"33FRJ'(*0"d*DEE'!I'!I 7*H6Y66X666r%   c                 p    t        j                         } |j                  di | }|j                          y )Nr   )r'   rs  r[  ry  )r  r"   rq  s      r#   test_errorbar_inputs_shotgunr    s)    	B		v	BIIKr%   dash_offsetc                      t        j                         \  } }t        j                  dd      }t        j                  |      }t        ddd      D ]  }|j                  |||z  |dfdd        y )	Nr   r~   r   r:   r~   r~   r   rC  )r  rK  r   )r'   r   rj   r  rA  r   r   )r-   r"   r2   r3   r  s        r#   test_dash_offsetr  #  sd    llnGC
ArA
QA1c1 ;
1Q3Ax=Qc:;r%   c                     t        j                         \  } }|j                  dd       |j                  j	                         }|d   d| j
                  z  k(  sJ |j                  dd       |j                  j	                         }|d   dk(  sJ |j                  dd        |j                  j	                         }|d   t        j                  d   dz  | j
                  z  k(  sJ y )	Naardvarkr9  r&
  rr  g?r  zaxes.titlepadr~  )r'   r   r5   titleOffsetTrans
get_matrixr6  rW   r   )r-   r"   r  s      r#   test_title_padr  ,  s     llnGCLLL%
&&(AU8	CGG+,,,LLL$
&&(AU8r>>LLL&
&&(AU8
++O<sBSWWLMMMr%   c                  R   t        j                         \  } }dt         j                  d<   |j                  d       |j                  dd       |j                  dd       d|j	                  d      k(  sJ d|j	                  d      k(  sJ d|j	                  d      k(  sJ t        j                  t              5  |j	                  d       d d d        t        j                  t              5  |j                  dd       d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)	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    llnGC)1CLL%&LLLLVL$LLgL&R\\f\----bllwl////(3333	z	"  
 	z	" (
V'( (   ( (s    D4DDD&r  c                 R   t        j                  dd|       \  }}|d   j                  dd       |d   j                  dd       |j                          |d   j                  j                         \  }}|d   j                  j                         \  }}||cxk(  rd	k(  sJ  J y )
Nr:   r9   r  r   r  ir  r  r   )r'   r   r5   r  r1   rb  )r  r-   r  r2   r  rQ  s         r#   test_title_location_sharedr  N  s    ||Aq0HCFSc"FSc" FLL%%'EArFLL%%'EAr?s???r%   z
loglog.pngc                      t        j                         \  } }t        j                  dd      }|j	                  ||dz  d       |j                  dd       |j                  d	dd
       y )Nr9   rM  r   r   rM  r  r:   )r%
  r  r   rM  )r%
  r  rO  )r'   r   rj   rr   r  r	  )r-   r"   r2   s      r#   test_loglogr  Y  sY    llnGC
		!RAIIaA!INN"AN&NN"AWN5r%   ztest_loglog_nonpos.pnggV-?c                     t        j                  dd      \  } }t        j                  dd      }|dz  }d|d<   d|d<   t	        t        g dd	
      |j                        D ]  \  \  }}}||k(  r3|r|j                  ||dz  d	|       nY|j                  ||dz  d	       nA|j                  ||dz  d	       |r|j                  d|       |r|j                  d|       |j                  ddg        y )Nr   r9   rM  g      r  r  r.  )r  r  r   r:   )r  )rK  nonpositiverM  r,  )r  r
  g    cA)r'   r   rj   rr   r  r   r  r  rU  r  r  )r-   r  r2   r3   mcymcxr"   s          r#   test_loglog_nonposr  b  s     ||Aq!HC
		!RA	1AAaDAaDg&:1E!hh( "
cB#:		!QTaS	9		!QTa	(IIaA!I$e5e5
sCj!"r%   c                     t        j                         \  } }|j                  g d       |j                         d   dk7  sJ t        j                         \  } }|j	                  g dg d       |j                         d   dk(  sJ t        j                         \  } }|j                  g dg d       |j                         d   dk(  sJ t        j                         \  } }|j                  t        j                  d             |j                         dk(  sJ |j                         dk(  sJ t        j                         \  } }|j                  t        j                  d             |j                         dk(  sJ |j                         dk(  sJ t        j                         \  } }|j                  t        j                  d             |j                         d   dk(  sJ t        j                         \  } }|j                  t        j                  d             |j                         dk(  sJ |j                         dk(  sJ y )Nr  r   )r9   r9   r9   r9   r  rd	  r~   )r  g      #@)r'   r   r   rH  r  r  rG  rg  rj   r  r  r  rr   r   r,   s     r#   test_axes_marginsr  z  s   llnGCGGL==?1"""llnGCFF<&==?1"""llnGCGGL,'==?1"""llnGCIIbhhx !==?g%%%==?g%%%llnGCMM"((8$%==?g%%%==?g%%%llnGCGGBIIbM==?1"""llnGCIIbhhx !==?k)))==?k)))r%   )rE  c                 2    d }d }||d| j                      S )Nc                     | j                         }|j                          | j                  dd        | j                  j	                                }|d   dkD  sJ y Nr   r   r   rZ  )r  ry  r  r[   get_major_locatorr"   r  rX  s      r#   	_helper_xz&shared_axis_remover.<locals>._helper_x  K    hhj


Ar(BHH&&(*urzzr%   c                     | j                         }|j                          | j                  dd        | j                  j	                                }|d   dkD  sJ y r  )r  ry  r  r]   r  r  s      r#   	_helper_yz&shared_axis_remover.<locals>._helper_y  r  r%   r  )param)requestr  r  s      r#   shared_axis_removerr    s"     +GMM::r%   )rs  r   subplots_sharedrO  c                    | j                   dk(  r(t        j                         }|j                         }||fS | j                   dk(  rt        j                         \  }}||fS | j                   dk(  r(t        j                  dddd      \  }}|d   d   }||fS | j                   dk(  r%t        j                         }|j                  d	      }fS )
Nrs  r   r  r:   r1  r_
  r   rO  r   r   r  r  )r  r'   r   rs  r   rO  )r  r-   r"   r	  s       r#   shared_axes_generatorr    s     }}jjlWWY 7N 
*	$,,.R 7N 
+	+ll1aeDVAYq\ 7N 
*	$jjl\\*+7Nr%   c                     | \  }} ||       y r  r   )r  r  r-   r"   s       r#   test_remove_shared_axesr    s    #GCr%   c                      t        j                  dddd      \  } }|d   d   }|d   d   j                         }|j                          |j	                  dd       t        |d   d   j                         |       y )Nr:   r1  r_
  r   r9   r   )r'   r   r   ry  r  r   )r-   r	  r"   	orig_xlims       r#   test_remove_shared_axes_relimr    so    ,,q!E%@KC	1Bq	!%%'IIIKKK1vay|,,.	:r%   c                     t        j                  ddd      } t         j                  j                  | j                  | j                  f      }t        j                  dddd      \  }\  }}|j                  dd	       |j                  dd	       |j                  | | |       |j                  | | |       |j                         s|j                         rJ |j                         s|j                         rJ |j                         |j                         cxk(  rd
k(  sJ  J |j                         |j                         cxk(  rd
k(  sJ  J y )NirD  r  r:   r9   Tr_
  r  )r  r  )rj   rr   rk   random_sampler  r'   r   r  r  r  rU  rW  r   r   )r
  r  r-   r  r  s        r#   test_shared_axes_autoscaler    s   
		#r2A
		 01All1aTBOC#sLLLLKK1aKK1a$$&s/D/D/FFF$$&s/D/D/FFF<<>S\\^<}<<<<<<<>S\\^<}<<<<<r%   c                     t        j                         \  } }|j                  j                         j	                  d       |j                  dd       |j                  d       | j                  j                          t         |j                  j                                      dk(  sJ |j                  dd       | j                  j                          t         |j                  j                                      dkD  sJ y )Nr  r
  r   r  r  r:   )r'   r   r]   r  
set_paramsr  rQ
  rl  r  r  r  r,   s     r#   test_adjust_numtick_aspectr    s    llnGCHH ++&+9KK4MM'JJOO+rxx))+-.!333KK4JJOO+rxx))+-.222r%   c                      t        j                         j                  dd      } | j                  D ]4  }g |j	                         g |j                         cxk(  r	g dk(  r1J  J  y )Nr.  rE  )r'   r   r   r  r  r  r	  s     r#   test_auto_numticksr    s_    
**,

1
%Chh G!!%7r}}%7F;FFFFFGr%   c                     t        j                         \  } }dt        j                  d<   |j	                  ddgddg       t        t        j                  |j                               t        j                  ddd	             t        t        j                  |j                               t        j                  d
dd             y )Nround_numbersaxes.autolimit_modeg#B;r
  缉ؗҜ<r~   irM  r.  r4  r   r   )r'   r   r   r   r  r   rj   log10r  rr   r  r,   s     r#   test_auto_numticks_logr    s     llnGC*9CLL&'IIuclUBK(rxx0"))CQ2GHrxx0"))CA2FGr%   c                  V    t        j                         \  } }|j                  g d       y )N)r   r   )r'   r   rv  r,   s     r#   test_broken_barh_emptyr    s    llnGCNN2x r%   c                     t        j                         \  } }t        j                  dddddd      }|j                  |t        j                  d      fgddg      }|j                         d   j                  d   t        j                  |      k(  sJ |j                         d   j                  d	   t        j                  |      d
z   k(  sJ y)z9Check that timedelta works as x, dx pair for this method.rq  rM  rv  r   r9   rr  r:   r  r:   r   gUUUUUU?N)	r'   r   rG  rv  r  r  verticesrI  rJ  )r-   r"   d0pps       r#   test_broken_barh_timedeltar    s    llnGC			4Q1a	0B	"h00q9:;aV	DB<<>!%%d+vr/BBBB<<>!%%d+vr/BV/KKKKr%   c                     t        j                         \  } }|j                  dgd      }|j                         D ](  }t	        |j                         j                  ddg       * |j                  dgdd      }|j                         D ](  }t	        |j                         j                  dd	g       * |j                  dgd
d      }|j                         D ](  }t	        |j                         j                  ddg       * y )Nrd	  r  r   r:   )r~   r:   rZ   rP  rv  rM  )r  r:   r?   rK  r  )r'   r   rv  r  r   get_extents	intervaly)r-   r"   r5  r7  s       r#   test_broken_barh_alignr    s    llnGC		6	*B A4++-77!Q@A 
	7(	;B B4++-77!RAB 
	7%	8B C4++-77"bBCr%   c                     t        j                         \  } }|j                  dgd      }t        |j	                  |j
                        j                        dk(  sJ |j                  dgdd      }t        |j	                  |j
                        j                        dk(  sJ |j                  dgdd      }t        |j	                  |j
                        j                        dk(  sJ y )	Nrd	  )r   r  )r   r  rZ   rP  )gٿrD  r?   )gr   )r'   r   rv  rX  rx
  ry
  r  )r-   r"   r5  s      r#   test_broken_barh_categoricalr    s    llnGC		:	.B-778HDDD		:X	>B-778KGGG		:U	;B-778IEEEr%   c                     | j                  dd      }t        j                  d      }t        j                  j	                  dd      }t        j                         \  }}|j                  |||       y )Nz
2000-01-01r~   )r  r  r  rv  )r  rj   rr   rk   r   r'   r   r  )r  timedepthr  r-   r"   s         r#   test_pandas_pcolormeshr  &  sT    ==r=2DIIbME99>>"a DllnGCMM$t$r%   c                 f   t        j                  ddd      }t        j                  t        t	        |                  }| j                  ||d      }t        j                         }|t        j                  |j                        dz  dk(     j                         }|j                  dd	|
       y )Nz2005-02z2005-03r@  r  )r  r0  r:   r9   r  r0  ro  )rj   rr   r  r   r  r  r'   rs  rN  r  r  r   )r  r  r0  r  r"   without_zero_indexs         r#   test_pandas_indexing_datesr  /  s    IIi/BEVVE#e*%&F	8	9B	BBHHRXX.2a78==?GGGX$6G7r%   c                     | j                  t        j                  j                  d      g dg d      }t	        j
                         \  }}|j                  dddd	|
       y )N)r   r.  r  )r2   r3   xeyer  )r  r  r2   r3   r  r  r  )r  rj   rk   uniformr'   r   r[  r  s       r#   test_pandas_errorbar_indexingr  :  sV    	bii''V'44+ 
 
-B llnGCKKSt$RK8r%   c                     | j                  g dg dd      }t        j                         \  }}|j                  |j                  |d          y )NrV  )r  r9   r:   )XXYYr  )r  r'   r   r   r  r  s       r#   test_pandas_index_shaper  B  s:    	Yi8	9BllnGCGGBHHbhr%   c                     | j                  g d      }|j                  dd  }t        j                         \  }}|j	                  |       y )N)
r9   r:   r:   r   r   r.  r.  r.  r.  r   ro  r9   )r   ilocr'   r   r  )r  ser_1ser_2r-   r"   s        r#   test_pandas_indexing_histr  H  s<    II9I:EJJqrNEllnGCGGENr%   c                 0   | j                  t        d      t        d      d      }t        j                  d      \  }}|j	                  |j
                  |d   dk(  df   |j
                  |d   dk(  df   d       |j                  j                          y )Nr:   rn  r9   r   r#  rZ   rP  )r  r   r'   r   r  rA   rl  r  r  s       r#   test_pandas_bar_align_centerr  O  s    	E!H584	5Bll1oGCFF266"S'Q,#$66"S'Q,#$   JJOOr%   c                  >   t        j                         j                  } i | j                  d      }i | j                  d      }| j	                  | j
                  d      }| j	                  | j                  d      }||k(  sJ ||k(  sJ | j                  dddd	
       i | j                  d      }i | j                  d      }| j	                  |      }| j	                  |      }||k7  sJ | j
                  |k(  sJ ||k7  sJ | j                  |k(  sJ y )Nr
  rN  rM  T)reverser   rB  r
  r   )r 
  r'
  r$
  rO  )r'   rz  r]   get_tick_params_translate_tick_paramsrk  rl  set_tick_params)	r   initial_major_style_translatedinitial_minor_style_translatedtranslated_major_kwtranslated_minor_kwnew_major_style_translatednew_minor_style_translatednew_major_stylenew_minor_styles	            r#   test_axis_get_tick_paramsr  \  sb   ;;=D%L(<(<7(<(K%L"%L(<(<7(<(K%L"55T 6  55T 6  "@@@@"@@@@2%#(  8 "ID$8$8w$8$G!H!HD$8$8w$8$G!H112LMO112LMO)-GGGG/111)-GGGG/111r%   c                     t        j                         } | j                  j                  ddd       | j                  j                  d   j
                  dk(  sJ | j                  j                  d   j                  j                         dk(  sJ | j                  j                  d   j                  j                         dk(  sJ | j                  j                  d   j                  j                         dk(  sJ y )	Nr   rB  r
  )r 
  r'
  r$
  r   r  rC  r9  )
r'   rz  r]   r  r
  r6
  	tick1liner'  rx  r
  )axis_1s    r#   .test_axis_set_tick_params_labelsize_labelcolorr  w  s    [[]F
LL  2%+0 ! 2 <<""1%++s222<<""1%//99;sBBB<<""1%,,5574???<<""1%,,668EAAAr%   c                     t        j                         } | j                  dddd       | j                  | j                  fD ]  }|j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  sJ |j
                  d   j                  j                         dk(  rJ  y )Nr#  r   r   r4	  )r)
  r+
  r*
  r,
  r   r=  )r'   rz  r	  r[   r]   r
  r
  r'  get_linewidthr  rp  )r"   r   s     r#   test_axes_tick_params_gridlinesr    s    	BNNc!"+  -"((" Cq!**446#===q!**88:a???q!**446#===q!**88:dBBB	Cr%   c                  $   t        j                         } | j                  ddd       | j                  ddd       | j                  j                  d   j
                  j                         du sJ | j                  j                  d   j                  j                         du sJ | j                  j                  d   j
                  j                         du sJ | j                  j                  d   j                  j                         du sJ y )NFTr
  )	labelleft
labelrightrO  rM  r   )	r'   rz  r	  r]   r
  rx  r  label2r
  r  s    r#    test_axes_tick_params_ylabelsider    s    	BNNUt   "NNUt   " 88q!((446%???88q!((446$>>>88q!((446%???88q!((446$>>>r%   c                  $   t        j                         } | j                  ddd       | j                  ddd       | j                  j                  d   j
                  j                         du sJ | j                  j                  d   j                  j                         du sJ | j                  j                  d   j
                  j                         du sJ | j                  j                  d   j                  j                         du sJ y )NTFr
  )labeltoplabelbottomrO  rM  r   )	r'   rz  r	  r[   r
  rx  r  r  r
  r  s    r#    test_axes_tick_params_xlabelsider    s    	BNNDe   "NNDe   "
 88q!((446%???88q!((446$>>>88q!((446%???88q!((446$>>>r%   c                      t        j                         j                         } | j                  t	        d      d       \  }|j                         dk(  sJ y )Nr   rW  rU  )r'   r   r   r   r   rp  )r"   lns     r#   test_none_kwargsr    sE    				 B
''%)t'
,CB$$$r%   c                      g d} t        j                  t        j                  | t        j                        g dd      }t        |j                  |       D ]  \  }}|j                  d   |k(  rJ  y )Nr  r  )r:   r   r.  r   r?  rP  r   )r'   r  rj   rN  uint8r  r:  r   )rv  r#  r  r2   s       r#   test_bar_uint8r    s\    	B288,l&IA!))R(  
xx{a r%   zaxisbelow.pngc                     t        j                         j                  ddd      } d}t        | |      D ]  \  }}|j	                  dddd       t        j                  d	d
      }|j                  |       |j                  ddd       |j                  dddd       |j                  d d  j                  d       |j                  |       |j                         |k(  rJ  y )Nr   T)r*  r  rr  )Fr  Trd	  r~   r  r  r  rX  rY  r=   rU  )r   r   r5  F)r?   rP   rQ   rC   )r'   r   r   r  r   r  r	  r  r  r	  r	  r   set_axisbelowget_axisbelow)r  settingsr"   settingcircs        r#   test_axisbelowr!    s    
 **,

aT

BC$H3) 	-G
Rs3vS1
T
cSA6
5! 	 	0
		!  '
!!W,,,	-r%   c                     t         j                  j                  d       t        j                  d      \  } }|j	                         }|j                  d      }|j                  d      }| j                  j                          | j                  j                         }|j                  |      j                  }|j                  |      j                  }||z
  }|dk\  sJ y )Nr   r4  )r6  Xlabel2Titler   )r'   r   r   r   r  r(   r5   rl  r  get_rendererget_window_extentrS  r  )	r-   r"   r  xlabel2r1   rendererbbox_y0_titlebbox_y1_xlabel2y_diffs	            r#   test_titletwinyr,    s    IIMM'llr"GC
((*CnnY'GLL!EJJOOzz&&(H++H588M//9<<O_,FQ;;r%   c                     t        j                         \  } }| j                  d       |j                         }|j	                  d       |j	                  d       |j                  d       d}|j                  j                  |       | j                  j                         }|j                  |       |j                  j                         |k(  sJ y )Nr  )r?   Xlabelr#  r$  )r   g(\?)r'   r   r  r  r(   r5   r1   ra  rl  r%  _update_title_positionrb  )r-   r"   r  r   r(  s        r#   test_titlesetposr0    s    llnGCC 
((*CMM(NN9LL
CHH#zz&&(Hh'88  "c)))r%   c                  (   d t         j                  d<   t        j                         \  } }|j                  j                  d       |j                  d       | j                  j                          |j                  j                         d   dkD  sJ y )Naxes.titleyr?   
xlabel topr9   p=
ף?)r   r   r'   r   r[   r   r5   rl  r  r1   rb  r,   s     r#   test_title_xticks_topr5    sk    "&CLLllnGCHH&LLJJOO88  "1%,,,r%   c                     d t         j                  d<   t        j                         \  } }|j	                  ddddd       |j                  d       | j                  j                          |j                  j                         d   dkD  sJ y )Nr2  r2   Tr   rP   r?   r  r  r3  r9   r4  )
r   r   r'   r   r	  r5   rl  r  r1   rb  r,   s     r#   test_title_xticks_top_bothr8    sv    "&CLLllnGCNNDdT  KLLJJOO88  "1%,,,r%   zleft, center))rQ   r   )r   rZ   )rQ   rZ   )zleft title movedzcenter title keptzboth titles alignedc                    d t         j                  d<   t        j                         \  }}|j	                  d       |j                  | d       |j                  |       |j                          | r%|s#|j                  j                         d   dkD  sJ y | s%|r#|j                  j                         d   dk(  sJ y |j                  j                         d   }|j                  j                         d   }|dkD  sJ ||k(  sJ y )Nr2  g   vH7BrQ   r@   r9   r   )
r   r   r'   r   r  r5   r  _left_titlerb  r1   )rQ   rZ   r-   r"   yleftr  s         r#   test_title_above_offsetr<    s     #'CLLllnGCKKLL6L"LL F~~**,Q/#555fxx$$&q)S000++-a0(('')!,s{{%r%   c                     d t         j                  d<   t        j                  dddd      \  } }t	        |      D ]8  \  }}|j                  d|        |j                  t        d      dgdz         : | j                          |D ]}  }t        j                  |j                  j                         j                        sJ t        j                  t        j                  |j                         j                               r}J  y )	Nr2  r9   r:   T)rr  tight_layoutzSubplot r~   g>nllJ)r   r   r'   r   r  r5   r   r   r  rj   isfiniter1   r&  r	  r1  rb  rc  )r-   r  rA  r"   s       r#   test_title_above_hidden_offsetr@     s    
 #'CLL||AqDAHC3 (2
xs^$
b	D6B;'(   ={{288557<<===vvbkk"//"3":":;<<<=r%   c                  &   d t         j                  d<   t        j                         } | j	                  d      }|j                  ddddd       |j                  d      }| j                  j                          |j                         d   dk(  sJ y )	Nr2  )r   r  r  r   r2   Tr7  Boor9   r   )
r   r   r'   r   rO  r	  r5   rl  r  rb  )r-   r"   tts      r#   test_title_no_move_off_pagerD  0  s     #'CLL
**,C	+	,BNNDdT  K	e	BJJOO??Q3&&&r%   c                  h   d t         j                  d<   t        j                         \  } }|j	                  d       | j                          |j                  j                         d   dk(  sJ |j                  g d       | j                          |j                  j                         d   dk(  sJ y )Nr2  r$  r9   )r   r9   r9   r   rm  )	r   r   r'   r   r5   r  r1   rb  
inset_axesr,   s     r#   test_title_inset_axrG  =  s    "&CLLllnGCLL 88  "1%***MM.! 88  "1%,,,r%   c                      t        j                         \  } }|j                  g d       |j                  j	                  d       |j                  j                         j                         dk(  sJ y )Ng   @Ag   eAg   FArB  )r'
  )r'   r   r   r]   r  get_offset_textr'  r,   s     r#   test_offset_label_colorrK  I  sW    llnGCGG$%HH.88##%//1U:::r%   c                  r   t        j                         \  } }|j                  g d       |j                  j	                  dd       |j                  j                         j                         sJ |j                  j	                  d       |j                  j                         j                         rJ y )NrI  FT)label1Onlabel2On)rN  )r'   r   r   r]   r  rJ  r  r,   s     r#   test_offset_text_visiblerO  Q  s    llnGCGG$%HHed;88##%11333HHe,xx'')557777r%   c                      t        j                         \  } }|j                  dt        j                  ddg      z   dz         | j
                  j                          y )Nr9   r   g-q=gqىE)r'   r   r   rj   rN  rl  r  r,   s     r#   test_large_offsetrQ  Z  sB    llnGCGGQ1f+&&%/0JJOOr%   c            
      J   t        j                         \  } }t        ddd      D cg c]  }t        j                  dddd|       }}t	        j
                  ddt        |            }t	        j
                  dd	t        |            x}}|j                  ||||       y c c}w 
Nr   r7  r~   rC  r  r   rK  r   rY  )r'   r   r   rG  rj   r  r  barbsr-   r"   rA  r  r3   ur  s          r#   test_barb_unitsrW  `  s    llnGC<A!R<LMqXtQB2MEM
Aq#e*%AKK2s5z**AHHUAq! N    B c            
      J   t        j                         \  } }t        ddd      D cg c]  }t        j                  dddd|       }}t	        j
                  ddt        |            }t	        j
                  dd	t        |            x}}|j                  ||||       y c c}w rS  )r'   r   r   rG  rj   r  r  quiverrU  s          r#   test_quiver_unitsr[  h  s    llnGC<A!R<LMqXtQB2MEM
Aq#e*%AKK2s5z**AIIeQ1 NrX  c                  ^   t         j                  } t        j                         \  }}t	        d      D ]x  }|j                  t	        d            \  }|j                  t	        d      t	        d            }|D ]1  } | |j                                | |j                               k(  r1J  z y )Nr   r   )	r  to_rgbr'   r   r   r   r  r'  rf  )r]  r-   r"   r  r  brsbrs          r#   test_bar_color_cycler`  p  s    ^^FllnGC1X HggeAhffU1XuQx( 	HB",,.)VB4D4D4F-GGGG	HHr%   c                  `   t        j                  dd      \  } \  }}|j                  ddgddg       |j                  ddgddg       |j                  j	                  dd       |j
                  j	                  dd       |j                  d      D ],  }|j                         dk(  sJ |j                         d	k(  r,J  |j                  d      D ],  }|j                         dk(  sJ |j                         d	k(  r,J  |j                  d
dd       |j                  ddd       |j                  d      D ],  }|j                         dk(  sJ |j                         dk(  r,J  |j                  d      D ],  }|j                         dk(  sJ |j                         dk(  r,J  y )Nr9   r:   r   r   r   )rO  r  rD  rN  r  r2   5   xtick)r   r(
  labelrotation_moder3   r   ytick)r   r  r
  r
  )r'   r   r   r[   r  r]   r  r
  r
  r  r	  )r  r"   r  r   s       r#   test_tick_param_label_rotationrf  z  s   \\!Q'NC"cGGQFQFHHaVaVHH6B7HH6B7"""0 5  "b(((%%'94445 """0 5  "b(((%%'94445 OOB7OKOOrOA##'#2 3  "b(((%%'72223 ##'#2 3  "b(((%%'72223r%   c                     t        j                         \  } }t        d      D ]s  }|j                  t        d      t        d            }t	        j
                  d|       }t        |j                         j                               t        |      k(  rsJ  t        dd      D ]s  }|j                  t        d      t        d            }t	        j
                  d|       }t        |j                         j                               t        |      k(  rsJ  t	        j
                  d      }dD ]_  } |j                  t        d      t        d      fi |di}t        |j                         j                               t        |      k(  r_J  t	        j
                  d      }t        ddgd      D ]  \  }} |j                  t        d      t        d      fi |di}t	        j
                  d|       }t        |j                         j                               t        |      k(  sJ t        |j                         j                               t        |      k(  rJ  y )	Nr   r  r   rC  )r3  r9  r   r4  ro  )r|  )r'   r   r   r  r  r&  rX  r  squeezer3  r  r  )	r-   r"   r  cctargetaledge_targetelface_targets	            r#   test_fillbetween_cyclero    s   llnGC1X E__U1XuQx01QC)R&&(0023uV}DDDE
 1a[ EeAha11QC)R&&(0023uV}DDDE
 __S!F2 ER__U1XuQx=B9=R&&(0023uV}DDDE //#&KK6a@ J2R__U1XuQx=B9=oo!g.R&&(0023u[7IIIIR&&(0023u[7IIII	Jr%   c                     dt         j                  d<   t        j                         \  } }d}|j                  |       |j	                  ddgddg       |j                         \  }}|j                  j                         }|j                  ||g      \  }}|j                  ddg      \  }}	|	|z
  |z  }
t        ||
z   ||
z
  g||	g       y )Nr  r  r.  r~   r   )
r'   r   r   set_xmarginr  r   r[   r  r2  r   )r-   r"   marginxlim0xlim1r2  xlim0txlim1tx0tx1tr(  s              r#   test_log_marginsry    s    *0CLL&'llnGCFNN6KKS	B9%;;=LE5&&(I((%8NFF""B9-HC3Y& EVe^Ve^4sCjAr%   c                     d} t        j                  |       t        j                  |       }}t        j                  | dz         }t        j                         \  }}t	        j
                  t              5  |j                  |||       d d d        t	        j                  d      5  |j                  ||d       d d d        |j                  ||dg| z         y # 1 sw Y   UxY w# 1 sw Y   .xY w)Nr   r9   rO  r!  r  )r   r   r   )	rj   rr   r'   r   r   r   r  r;   r  )r  r2   r3   r  r-   r"   s         r#   test_color_length_mismatchr{    s    	A99Q<1qAYYqs^FllnGC	z	" #


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


1a?
+,JJq!(1,J-	# #, ,s   5C(C*C'*C3c                  \    t        j                  dgd       t        j                          y )Nr   Labelr
  )r'   r!	  rI   r   r%   r#   test_eventplot_legendr~    s    MM3%w'JJLr%   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        y # 1 sw Y   y xY wrc
  )r   r   r'   r!	  rd
  s       r#   test_eventplot_errorsr    s8    * 
s%	( 't&v&' ' 'rg
  c                  2   t        j                         \  } }|j                  t        d      d       |j	                  ddt        d      d       |j                  ddgddgd      \  }}|j                         |j                         cxk(  rdk(  sJ  J y )Nr.  r9   r   )rQ   r  )r   r   r   rD  r  )r'   r   r  r   r  rg  )r-   r"   rect1rect2s       r#   test_bar_broadcast_argsr    s    llnGCFF58QGGAquQxG*661a&1a&4D6ELE5 E$7$7$9M=MMMMMMr%   c                     t        j                  ddgddg       t        j                  t              5  t        j
                  t        j                         d d d        t        j                  t              5  t        j
                  t        j                         d d d        t        j                  t              5  t        j                  t        j                         d d d        t        j                  t              5  t        j                  t        j                         d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY wr  )
r'   r   r   r   r  r   rj   r  r\	  r   r   r%   r#   test_invalid_axis_limitsr    s    HHaVaV	z	" 	z	" 	z	" 	z	"      s/   $D09$D<>$E$E0D9<EEEr  rS  r,  r  c                     t        j                         }|j                  g d       |j                  |        |j	                  |       |j                          y )Nr  )r'   rz  r   rU  r  r  )r  r  r"   s      r#   test_minorticks_onr    s?     
BGGLMM&MM&r%   c                     t        j                         \  } }|j                  dd       |j                         }|j	                  ddgddg       t        j                         \  }}|j                  dd       |j	                  ddgddg       t        |j                  j                  |j                  j                         y )Nr9   r:   r   r   )r'   r   r  r  r   r   rY
  	intervalx)r-   r"   xtwinrq  r  s        r#   test_twinx_knows_limitsr     s    llnGCJJq!HHJE	JJ3x!Q ID#KK1HHaX1vu}}..0E0EFr%   c                        e Zd Z fdZ xZS )SubclassAxesc                2    t        |   |i | || _        y r  )r  rd  r"  )r  r"  rE
  r  r  s       r#   rd  zSubclassAxes.__init__   s    $)&)r%   )r  r  r  rd  r  )r  s   @r#   r  r     s     r%   r  c                     t        j                         \  } }|j                  t        d      }t	        |t              sJ |j
                  dk(  sJ |j                  t        d      }t	        |t              sJ |j
                  dk(  sJ y)z?Check that twinx/y(axes_class=...) gives the appropriate class.r9   r  r"  r:   N)r'   r   r  r  r   r"  r  r  r"   r  r  s       r#   test_twinning_with_axes_classr     su    LLNEArHH!H4Ee\***99>>HH!H4Ee\***99>>r%   c                      t        j                  t        t        d            \  } }|j	                         }t        |      t        u sJ |j                         }t        |      t        u sJ y)zk
    Check that the default class for twinx/y() is Axes,
    even if the original is an Axes subclass.
    r9   r  r\  N)r'   r   r  r  r  ri  r   r  r  s       r#    test_twinning_default_axes_classr  '   sW    
 LLDLa$HIEArHHJE;$HHJE;$r%   c                      t        j                         \  } }|j                         }|j                  j	                         sJ |j                  j	                         rJ y r  r'   r   r  r  r  r  r"   r  s      r#   &test_twinning_patch_visibility_defaultr  3   sK    LLNEAr
((*C88!!!yy$$&&&&r%   c                     t        j                         \  } }|j                  d      }|j                         |j                         dz
  k(  sJ |j                  j                         sJ |j                  j                         rJ y )Nr   delta_zorderr9   )r'   r   r  rQ  r  r  r  s      r#   4test_twinning_patch_visibility_respects_delta_zorderr  :   sp    LLNEAr
(((
#C>>r}}222299  """xx##%%%%r%   c                     t        j                         \  } }|j                         }|j                         }|j                  j	                         sJ |j                  j	                         rJ |j                  j	                         rJ y r  r  r  r"   r  r  s       r#   9test_twinning_patch_visibility_multiple_twins_same_zorderr  B   sl    LLNEAr
((*C
((*C88!!!yy$$&&&yy$$&&&&r%   c                     t        j                         \  } }|j                         }|j                  d      }|j                  j	                         sJ |j                  j	                         rJ |j                  j	                         rJ y )Nr   r  r  r  s       r#   5test_twinning_patch_visibility_updates_for_new_bottomr  K   sq    LLNEAr
((*C
(((
#C99  """yy$$&&&xx##%%%%r%   c                  v   t        j                         \  } }|j                         }|j                  j	                         sJ |j                  j	                         rJ |j                  |j                         dz
         |j                  j	                         sJ |j                  j	                         rJ y rD  )r'   r   r  r  r  
set_zorderrQ  r  s      r#   7test_twinning_patch_visibility_updates_after_set_zorderr  T   s    LLNEAr
((*C88!!!yy$$&&&NN2==?Q&'99  """xx##%%%%r%   c                     | j                         j                  g dg ddd       |j                         j                  g dg ddd       y )Nr  r  TrV  )rK  r  rU  )r   rW  r    r!   s     r#   test_stairs_fill_zero_linewidthr  _   sN     oDT  ;oDS  :r%   c                      t        j                         \  } }|j                  g g g d       |j                  g g g d       |j                          y )Nzempty y)r_  r0   zempty x)r`  r0   )r'   r   r[  rI   r,   s     r#   test_empty_errorbar_legendr  h   sB    llnGCKKBRyK1KKBRyK1IIKr%   c                 ~   t        j                  ddd      }|D cg c]  }d|dz  z  d|dz  z  z
  d|z  z   d	z    }}|D cg c]  }t        |       }}|D cg c]  }t        |       }}| j                         j	                  ||       |j                         j	                  ||       y c c}w c c}w c c}w )
Nr  r~   r   g@r   r  r:   g\(\@r  )rj   rr   r   r   r   )r    r!   rR  r2   rS  rA  r3   s          r#   test_plot_decimalr  o   s    	3C	 B@B	C1#Q,qAv
%q
03
6	CB	C  A   A Q"B# 
D  s   !B0B5B:c                     | j                         j                  dddd       |j                         j                  dddd       y )Nr   r   r/  r   )r  r  rp  )r   r   r  s     r#   test_markerfacecolor_none_alphar  {   sB    Qr:As26r%   c                     dt         j                  d<   dt         j                  d<   t        j                         \  } }|j                  | j                  j                               }|j                  d       |j                  | j                  j                               }|j                  |j                  k  sJ |j                  |j                  k  sJ y)z5Test that tick padding gets turned off if axis is offr
  r0
  zytick.directionoffN)	r'   r   r   get_tightbboxrl  r%  r   rR  rS  r-   r"   bbbb2s       r#   test_tick_padding_tightbboxr     s    &+CLL"#&+CLL"#llnGC			#**113	4BGGEN


3::224
5C55366>>55366>>r%   c                      t        j                         \  } }| j                         }|j                  |d      }|j	                  d       |j                  |d      }|j
                  |j
                  kD  sJ y )NF)for_layout_onlyIloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong)r'   r   _get_rendererr  r(   r  )r-   r"   r(  bbox_no_xlabelbbox_long_xlabels        r#   "test_tightbbox_includes_long_labelr     sv    llnGC  "H%%h%FNMMSU''%'H !!N$8$8888r%   c                  (   d\  } }t         j                  t        dd|z   |      t        dd| z   |       f   \  }}t        j                  |      dz  t        j                  d||z  z         t        j                  |      z  z   }t        j                         \  }}|j                  |||ddddf          |j                  d       |j                          dd	g}d
dg}|d   |d   |d   |d   z
  |d   |d   z
  g}	|j                  |	      }
|
j                  J |j                  j                          t        j                  ddgd	dgg      }t        j                  |
j                   j#                         j%                         |k(        sJ y)z:
    Ensure that inset_ax argument is indeed optional
    r.  r.  r9   r   r~   Nr   r   r   333333@r:   rH  r   )rc  r   )rj   mgridr   r  rv  r'   r   r  rQ
  apply_aspectindicate_inset
connectorsrl  r  rN  r1  	rectangleget_bboxr{
  )dxdyr3   r2   r  r-   r"   r   r   rj  insetr  s               r#   
test_insetr     s    FB88E!QVR(!QVR() *DAq
q	R"&&a!e,rvvay88AllnGCMM!Q#2#ss($MM"OO ;Ds8DGT!Wd1gQ/a471BCDT*E###JJOO	C9#;  
!B66%//**,779R?@@@r%   c                     d\  } }t         j                  t        dd|z   |      t        dd| z   |       f   \  }}t        j                  |      dz  t        j                  d||z  z         t        j                  |      z  z   }t        j                         \  }}|j                  |||d dd df          |j                  d       |j                          |j                  g d      }|j                  |||d dd df          |j                  dd	       |j                  d
d       |j                  |j                                t        j                  t         j"                        5  |j%                  |      \  }}	d d d        |j&                  j)                          t+        	      dk(  sJ t        j,                  ddgd	dgg      }
t        j.                  j1                         j3                         |
k(        sJ t        j,                  ddgddgg      }
t         j4                  j7                  |j9                         j3                         |
d       y # 1 sw Y   xY w)Nr  r9   r   r~   r   r   )r  r  r  r  r   r  r:   rH  r.  r   g=
ףp=?gKXc'?g(\?g?g-C6?rtol)rj   r  r   r  rv  r'   r   r  rQ
  r  rF  r  r  rR
  r   r  r   r8	  indicate_inset_zoomrl  r  r  rN  r1  r  r{
  r   r   rb  )r  r  r3   r2   r  r-   r"   axin1recr  r  s              r#   test_zoom_insetr     s   FB88E!QVR(!QVR() *DAq
q	2rAaCx(266!944AllnGCMM!Q#2#ss($MM"OO MM01E	Q1SbS#2#X;'	NN3	NN1c	R]]_%	c66	7 8007Z8JJOOz?a	C":#;  
!B66#,,.++-3444	FH%H%' 
(BJJ'')2D  :8 8s   -II(zinset_polar.pngc                  "   t        j                         \  } }|j                  g dd      }t        |t              sJ t        j                  ddd      }dt
        j                  z  |z  }|j                  ||       |j                  ||       y )N)r   r   r  r  Tr0  r   r:   r  )	r'   r   rF  r   r   rj   rr   r  r   )r  r"   axinsrX  r  s        r#   test_inset_polarr     ss    LLNEArMM0M=EeY'''
		!QAIMEGGE1	JJuar%   c                      t        j                         \  } }|j                  g dd      }t        |t              sJ y )Nr   r   r   r   hammerr  )r'   r   rF  r   r   r  r"   r  s      r#   test_inset_projectionr     s4    LLNEArMM.8MDEeZ(((r%   c                      t        j                         \  } }|j                  g dt        j                        }t        |t        j                        sJ y )Nr  )r  )r'   r   rF  AAr   r   r  s      r#   test_inset_subclassr     s<    LLNEArMM.277MCEeRWW%%%r%   
x_inverted
y_invertedc                 n   t        j                  dd      \  }\  }}t        j                  d      }|j	                  ||d       | r|j                          |r|j                          |j                  g d|      }|j                  \  }}}	}
| rdnd}|rdnd}||	j                  d   |j                  d   z
  z  dkD  sJ ||
j                  d   |j                  d   z
  z  dkD  sJ ||j                  d   |j                  d   z
  z  dkD  sJ ||
j                  d   |	j                  d   z
  z  dkD  sJ y)	zR
    Test that the inset lines are correctly located with inverted data axes.
    r9   r:   r~   r   )r:   r:   r   r.  r   r   N)
r'   r   rj   rr   r   r  r  r  r  r	  )r  r  r-   r  r  r2   r  
lower_left
upper_leftlower_rightupper_rightsign_xsign_ys                r#   test_indicate_inset_invertedr     s7    ll1a(OC#s
		"AHHQ3|S1E7<7G7G4J
KR1FR1F[__Q'*..*;;<q@@@[__Q'*..*;;<q@@@Z^^A&)::;a???[__Q'+//!*<<=AAAr%   c                  6   t        j                         \  } }|j                  d       |j                  g dd       t	        j
                  |j                         j                  d      sJ |j                  d       |j                  g dd       t	        j
                  |j                         j                  d      sJ |j                  d       |j                  g dd	       t	        j
                  |j                         j                  d      sJ y )
Nr  )r   r   rD  rD  r   rN  r   r   r`  r  active)r'   r   rQ
  ra  rj   r|  rb  r  r,   s     r#   test_set_positionr  !  s    llnGCMM"OO(O7;;r(..444MM"OO(
O;;;r(..555MM"OO(O9;;r(..444r%   c                     t        j                         \  } }|j                  j                  j	                  | j
                  j                               }|j                  ddd dd       |j                  j                  j	                  | j
                  j                               }t        j                  j                  |j                         |j                         d       y )N)r  r  r  r  r#
  Fgư>r  )r'   r   r	  rP   r&  rl  r%  _set_view_from_bboxrj   r   r   r{
  r  s       r#   !test_spines_properbbox_after_zoomr  !  s    llnGC				+	+CJJ,C,C,E	FB//
))


,
,SZZ-D-D-F
GCJJr}}0@tLr%   c                     t        j                         \  } }d}d}|j                  |       |j                  |d   |d          |j	                  d       t
        j                  j                  ||j                         d       t
        j                  j                  ||j                         d       |j	                  d	       d
}d}|j                         }|j                         }t
        j                  j                  |d   |d   z
  d       t
        j                  j                  |d   |d   z
  d       t
        j                  j                  ||d       t
        j                  j                  ||       |j	                  d       |j                         }|j                         }t
        j                  j                  |d   |d   z
  d       t
        j                  j                  |d   |d   z
  d       t
        j                  j                  ||d       t
        j                  j                  ||d       y )Nr  r   )r   r:   r   r9   rA
  )r  r  r   r  atol)r  r  r   )gB!Bؿg{?)g      ڿg     ?r   r   )r  r  r   r   )
r'   r   r  r  r  rj   r   r   r   r   )r-   r"   r   r   r  new_ylimres_xlimres_ylims           r#   test_limits_after_scroll_zoomr  %!  s   llnGCDDKKKKT!W47K+ >*JJtR[[]?JJtR[[]? >*9H"H{{}H{{}HJJx{Xa[8#>JJx{Xa[8#>JJx>JJx2 ?+{{}H{{}HJJx{Xa[8!<JJx{Xa[8!<JJtXE:JJtXE:r%   c                  0   t        j                         \  } }t        |        |j                  t        j
                  dd       | j                  j                         }t        j                  j                  |j                  |      j                  d       y )Nr9   rB  i  )r'   r   r   r   rj   r  rl  r%  r   r   r  r  )r-   r"   r(  s      r#   test_gettightbbox_ignore_nanr  I!  sd    llnGCC GGBFFAuzz&&(HJJr//9??Er%   c                 8   t        dd      }| j                  t        j                  j	                  d      |      }| j                  t        j                  j	                  d      |      }| j                  g d|      }t        j                  |||       y )Nr~   rK  r  r  r  )r9   r9   r9   r9   r9   r   r   r   )r   r   rj   rk   r  r'   r;   )r  r*  r2   r3   r=   s        r#   "test_scatter_series_non_zero_indexr  Q!  sx    
B-C
		"))###+3	7A
		"))###+3	7A
		*#	6AKK1ar%   c                  b    t        j                  g g        t        j                  g g g g        y )N)r  r=   )r'   r;   r   r%   r#   test_scatter_empty_datar  Z!  s"    KKBKKB"#r%   zannotate_across_transforms.pngg?)r   r  r   c            
         t        j                  ddd      } t        j                  |        t        j                  |       z  }t	        j
                  d      \  }}|j                  | |       |j                  g d      }|j                  d       |j                  j                  d       |j                  j                  d       |j                  d	| d
   |d
   f|j                  d|j                  t        d             y )Nr   r~   r  )gQ@r   rB  )rD  r   r   r   r   Fr   r  r  r
  )r
  )r   r  r  r  r$  )rj   r  r  r  r'   r   r   rF  rQ
  r[   r   r]   r  ry
  r>  r  )r2   r3   r-   r"   r  s        r#   test_annotate_across_transformsr  `!  s     	Ar3A
r
RVVAYAll9-GCGGAqMMM./E	S	KKE"	KKE"KK##'",,%//40  2r%   c                   &    e Zd ZdZdZd Zd Zd Zy)_Translationr9   c                     || _         y r  r  )r  r  s     r#   rd  z_Translation.__init__u!  s	    r%   c                      || j                   z   S r  r  )r  r0  s     r#   r2  z_Translation.transformx!  s    r%   c                 .    t        | j                         S r  )r  r  r  s    r#   r	  z_Translation.inverted{!  s    TWWH%%r%   N)r  r  r  
input_dimsoutput_dimsrd  r2  r	  r   r%   r#   r  r  q!  s    JK &r%   r  zsecondary_xy.pngg~jt?c                     t        j                  dddd      \  } }d }t        |      D ]  \  }}|j                  t	        j
                  dd      t	        j
                  dd             |dk(  r|j                  }n|j                  } |d	||f
        |dd d f
        |dd d f
        |d        ||dk(  rdndt        d      
        |d|j                          y )Nr9   r:   r  T)r  rk  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wNr  r  r9   rj   r  rH	  s    r#   invertz!test_secondary_xy.<locals>.invert!  *    [[) 	q5	 	 	   &/rM  r   r   	functionsrD  c                     d| z  S Nr:   r   rH	  s    r#   r  z#test_secondary_xy.<locals>.<lambda>!  s
    A r%   c                     | dz  S r  r   rH	  s    r#   r  z#test_secondary_xy.<locals>.<lambda>!  s
    Q r%   r  c                     | dz  S r  r   rH	  s    r#   r  z#test_secondary_xy.<locals>.<lambda>!  s
    1 r%   c                     | dz  S )Nr   r   rH	  s    r#   r  z#test_secondary_xy.<locals>.<lambda>!  s
    C r%   r  r?   rC   g      @r  )
r'   r   r  r   rj   rr   secondary_xaxissecondary_yaxisr  ry
  )r-   r  r  nnr"   secaxs         r#   test_secondary_xyr  !  s     ||Aq'dKHC C. ,B
		!R "))Ar"237&&E&&Ecff-.co?@cn.@ABc
rQweG|AGdbll+,r%   c                     t        j                         \  } }|j                  t        j                  dd      t        j                  dd             t        j                  t              5  |j                  dd        d d d        t        j                  t              5  |j                  d       d d d        t        j                  t              5  |j                  d       d d d        t        j                  t              5  |j                  dd	       d d d        y # 1 sw Y   xY w# 1 sw Y   ~xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)
Nr:   rM  r   c                     d| z  S rD  r   rH	  s    r#   r  z%test_secondary_fail.<locals>.<lambda>!  s
    QU r%   r  rC   rP   errorr  )r'   r   r   rj   rr   r   r   r  r  r  r   r,   s     r#   test_secondary_failr  !  s    llnGCGGBIIabii2./	z	" =
3?<=	z	" $
7#$	z	" %
8$%	y	! 3
3'23 3= =$ $% %3 3s0   +D$!D0D<E$D-0D9<EEc                  |   t        j                  d      \  } }|j                  t        j                  dd      t        j                  dd             d }|j                  d||f       | j                  j                          | j                  d       t        |j                         j                  g d	       y )
Nr  rB  r:   rM  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wr  r  rH	  s    r#   r  z%test_secondary_resize.<locals>.invert!  r	  r
  r?   r  )r  r.  ru  )r'   r   r   rj   rr   r  rl  r  re	  r   rb  rp
  )r-   r"   r  s      r#   test_secondary_resizer  !  s    ll7+GCGGBIIabii2./ u(89JJOOBOO%--/EFr%   c                  .   t        j                  d      \  } }|j                  t        j                  dd      t        j                  dd             d }|j                  d||f      }t        |j                  j                         t        j                        sJ |j                          t        |j                  j                         t        j                        sJ |j                  d       t        j                          t        |j                  j                         t        j                        sJ |j                  d	       t        j                          t        |j                  j                         t        j                        sJ y )
Nr  rB  r:   rM  c                 d    t        j                  d      5  d| z  cd d d        S # 1 sw Y   y xY wr  r  rH	  s    r#   r  z'test_secondary_minorloc.<locals>.invert!  r	  r
  r?   r  r,  rT  )r'   r   r   rj   rr   r  r   _axisget_minor_locatorr   NullLocatorr  AutoMinorLocatorrU  r  
LogLocator)r-   r"   r  r  s       r#   test_secondary_minorlocr%  !  s7   ll7+GCGGBIIabii2./ u0@AEekk335))+ + +	ekk335..0 0 0MM%HHJekk335((* * *MM(HHJekk335))+ + +r%   c                  l   t        j                         \  } }|j                  d       |j                  d      }|j                  j                  t        j                                | j                  j                          t        |j                  j                         t        j                        sJ y )Nr,  r?   )r'   r   rU  r  r[   r   r   ScalarFormatterrl  r  r   r   r-   r"   r  s      r#   test_secondary_formatterr)  !  s    llnGCMM%u%E	KK##G$;$;$=>JJOO'')7+B+BD D Dr%   c                  Z   t        j                         \  } }|j                  dddg      }t        |j                  j                         t        j                        sJ t        j                  t              5  |j                  ddg       d d d        |j                  dddg      }t        |j                  j                         t        j                        sJ t        j                  t              5  |j                  ddg       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr9   r   )r  )r  )r'   r   r  r   r[   r  r   r  r   r   r   r  r  r]   r  r(  s      r#   test_secondary_init_xticksr+  !  s    llnGCq!Q0Eekk335w7K7KLLL	y	! !!Q !q!Q0Eekk335w7K7KLLL	y	! !!Q ! !	! !! !s   :D8D!D!D*c                  t    t        j                         \  } }|j                  d      }t        |      dk(  sJ y )Nr?   z<SecondaryAxis: >)r'   r   r  r6   r(  s      r#   test_secondary_reprr-  !  s4    llnGCu%E;----r%   zaxis_options.pngc            	         t        j                  dd      \  } }t        d      D ]  \  }}|d|f   j                  dd       |d|f   j	                  |       |d|f   j                  t        j                  ddd	d
             |d|f   j                  dd       |d|f   j	                  |       |d|f   j                  t        j                  ddd	d
              y )Nr:   r   )scaledr  imager   r-  )r9   r  )r   r   r   r/  rC  r	  r9   )r9   g      @)r9   r   )r   re  r  )r'   r   r  r   r   r9  r  r	  )r-   rx  rA  options       r#   test_axis_optionsr2  !  s    Q"IC;< P	6 	QT
)QT
QT
hooj8>#O 	P 	QT
	9-QT
QT
hook$8>#O 	PPr%   c                 D   | j                   j                          g }t        |j                  |j                  g      D ]u  \  }}|j                         }|rXt        j                  |j                  |j                  f|j                  |j                  ddddd      }| j                  |       ||gz  }w g }t        g d      D ]  \  }}|j                  |   j                         }t        j                  |j                  |j                  f|j                  |j                  ddddd      }	| j                  |	       ||gz  } |j                         }t        j                  |j                  |j                  f|j                  |j                  d	d
ddd      }
| j                  |
       |}|j                         }t        j                  |j                  |j                  f|j                  |j                  ddddd      }
| j                  |
       |}||||fS )zS
    Helper for the tests below that test the extents of various Axes elements
    r  r3   r/  Nr   )r  r  r5  r4  r3  r2  r  )rP   r?   rQ   rC   r   r   r7  r:   rB  r9   )rl  r  r  r[   r]   r  r  r  rR  rS  r  r  r9  r	  r&  )r-   r"   bbaxisr  axxr  axisrbbspinesr   spinerr  bbaxr  bbtbs                 r#   color_boxesr;  !  s    JJOOFbhh12 C &&bhhryy$E NN5!2$ H=> AYYq\++-##UUBEEN"((299W$ 	vRD 
			B	bhhryyfE NN5D



C			#**u$E NN5D8T4''r%   c                  4   t        ddi      5  t        j                  dd      \  } }| j                  j	                          t        j
                  |        t        | |      \  }}}}d d d        g dg dg}t              D ]F  \  }}t        j                  j                  ||    }	t        |j                  |	j                  d	       H g d
g dg dg dg}t              D ]F  \  }}t        j                  j                  ||    }	t        |j                  |	j                  d	       H g d}t        j                  j                  | }	t        j                  |	j                  d	       g d}t        j                  j                  | }	t        j                  |	j                  d	       j                         j                   j                        j                  }
t        |
|j!                         j                  d	       y # 1 sw Y   xY w)Nr  Fr  ro  r6  r  )g      _@p=
R@g     @g
ףp=@@))\U@gQX@g      J@gq=
ף
@r9   )decimal     b@-]@     @F8&@rB  g     @rD  r  rB  Nё\]@rE        @gR!@rH  rE  rI  r:   rB  g]@rD  rI  )r?  r>  g{G؏@g{Gȏ@)r   r'   r   rl  r  r|  r;  r  r  Bboxfrom_boundsr   rc  rb  transformedtransFigurer&  )r-   r"   r4  r7  r9  r:  rj  r  r#  targetbbaxbbs              r#   test_normal_axesrR  %"  s   	-u5	6 <,,37R

		#'23';$$	< 	%$F 6" HA##//<!!((HOOQGH
 	(#(,	F 8$ HA##//<!!((HOOQGH 7F++V4Hdkk8??AF-F++V4Hdkk8??AF ??((9@@DdB$8$8$:$A$A1MG< <s   AHHc                     t        ddi      5  t        j                  dd      \  } }| j                  j	                          |j                  g g        t        | |      \  }}}}d d d        t              D ]	  \  }}|	J  g dg dg d	g d
g}t              D ]F  \  }}t        j                  j                  ||    }	t        |j                  |	j                  d       H g d}t        j                  j                  | }	t        j                  |	j                  d       g d}t        j                  j                  | }	t        j                  |	j                  d       y # 1 sw Y   xY w)Nr  Fr  ro  r=  xticklabelsyticklabelsrA  rF  rG  rJ  r  r  rK  )rB        ^@rD  rI  )r   r'   r   rl  r  r   r;  r  r  rL  rM  r   rc  )
r-   r"   r4  r7  r9  r:  r  r#  rj  rP  s
             r#   test_nodecoratorrX  L"  sM   	-u5	6 <,,37R


22.'23';$$	< 6" Ayy 	(#(,	F 8$ >A##//<(//=> 7F++V4HDKKt<%F++V4HDKKt<5< <s   AE--E7c                  
   t        ddi      5  t        j                  dd      \  } }|j                  g g        |j                  j
                  j                  d       | j                  j                          t        | |      \  }}}}d d d        g dg d	g d
g dg}t        |      D ]C  \  }}t        j                  j                  | }	t        |j                  |	j                  d       E g d}t        j                  j                  | }	t        j                  |	j                  d       g d}t        j                  j                  | }	t        j                  |	j                  d       y # 1 sw Y   xY w)Nr  Fr  ro  r=  rT  )rx  r]  )rB        8@rD  gs~8&@rF  rG  rJ  r  r  rK  )rB  rZ  rD  g     @)r   r'   r   r   r	  rP   ra  rl  r  r;  r  r  rL  rM  r   rc  )
r-   r"   r4  r7  r9  r:  targetsrj  bbspinerP  s
             r#   test_displaced_spiner]  j"  sA   	-u5	6 <,,37R
22.
		%%n5

'23';$$< 	%#(,	G w1 D##//8dCD 7F++V4HDKKt<%F++V4HDKKt</< <s   A>E99Fc                     g dg dgg dg dgg dg dgg} t        g d      D ]  \  }}t        dd	i      5  t        j                  d
d      \  }}|j	                  |       |j
                  j                          t        ||      \  }}}}t        ddg      D ]L  \  }	}
t        j                  j                  | |   |	    }t        ||
   j                  |j                  d       N 	 ddd        y# 1 sw Y   xY w)zG
    Switch the tickdirs and make sure the bboxes switch with them
    )rB  rW  rD  +e8&@)rB  rW  rE  rI  )rB  gZӼ8[@rD  88&@)g r\a@r  rE  rI  )rB  gqq\@rD  r`  )g88b@rC  rE  rI  )r#
  r
  inoutr  Fr  ro  r=  r
  r   r:   r  r  N)r  r   r'   r   r	  rl  r  r;  r  rL  rM  r   rc  )r[  dnumdirsr-   r"   r4  r7  r9  r:  r  r   rP  s               r#   test_tickdirsrd  "  s    /-/<-/F<>	?G   67 	F
d159: 	FllsF;GCNNTN*JJOO+6sB+?(FHdD$aV, FC&++77r9JKSM(((//FF	F 	F	F	F 	Fs   B4C88D	c                     t        ddi      5  t        j                  dd      \  } }| j                  j	                          |j                  dd       t        | |      \  }}}}t        | |      \  }}}}g d	g d
g}t        d      D ]I  }t        j                  j                  ||    }t        ||dz     j                  |j                  d       K t        j                  dd      \  } }| j                  j	                          |j                  dd       |j                          |j                  ddd       | j                  j	                          t        | |      \  }}}}g dg dg}t        d      D ]I  }t        j                  j                  ||    }t        ||dz     j                  |j                  d       K 	 d d d        y # 1 sw Y   y xY w)Nr  Fr  ro  r=  r   r
  )rO  r$
  )rB  g88[@rD  r`  )gCiq\a@rH  r_  rI  r:   r  r  rM  r   r)  )rB  gPUUUUUB@rD  gVUUUUT@)gz6P@rW  goTT@rI  )r   r'   r   rl  r  r	  r;  r   r  rL  rM  r   rc  r  )	r-   r"   r4  r7  r9  r:  r[  r  rP  s	            r#   test_minor_accountedforrf  "  s   	-u5	6 D,,37R

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

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

'23';$$G35 q 	DA"''33WQZ@HQ&&dD	D1D D Ds   F>GGc                 *   | j                  d      j                  d       |j                  d      j                  d       | j                  d      }|j                  d       |j                  d       |j                  d      j                  d       y )Nro  Fr  rp  Ton)r   r   r   s      r#   test_axis_bool_argumentsri  "  su     ""5)!!%(			c	"BGGENGGDM!!$'r%   c                      t        j                         \  } }d}d}d}d}|j                  ||||g      }t        |      ||||fk(  sJ ||f|j	                         k(  sJ ||f|j                         k(  sJ y )Nr   r~   r   r  r'   r   r   rX  r   r   r-   r"   rh   ri   r	  r	  r  s          r#   test_axis_extent_argrm  "  s    llnGCDDDDWWdD$-.F =T4t4444 $<2;;=((($<2;;=(((r%   c                      t        j                         \  } }d}d}d}d}|j                  ||||      }t        |      ||||fk(  sJ ||f|j	                         k(  sJ ||f|j                         k(  sJ y )Nr   r~   r   r  )rh   ri   r	  r	  rk  rl  s          r#   test_axis_extent_arg2ro  "  s    llnGCDDDDWW$T4W@F =T4t4444 $<2;;=((($<2;;=(((r%   c                  n    t        j                  g dg dgd      \  } }} |d   dk  sJ |d   dk\  sJ y )	Nr  )r   r.  r   r   r  r  r   r9   r   r   )r'   r  r  r  s     r#   test_hist_auto_binsrr  "  s=    9l3&AJAtQ7a<<8q==r%   c                     t        j                  d      \  } \  }}g d}|t        j                  gz   }|j	                  |      \  }}}t        j
                  d      5  |j	                  |      \  }}	}d d d        t        j                  j                  |       t        j                  j                  |	       y # 1 sw Y   JxY w)Nr:   r  r  r  )r'   r   rj   r  r  r  r   r   )
r-   r  r  r  nan_datar  rz  r  nanbinsnanedgess
             r#   test_hist_nan_datarw  "  s    ll1oOC#sDrvvhHXXd^ND%	X	& 2"xx112 JJtW-JJuh/	2 2s   B>>Cc                      t        j                  t        j                  j	                  d      ddd      \  } }} |d   dk(  sJ |d   dk(  sJ y )	Nr~   r  r  T)r   r9  r   r   r9   )r'   r  rj   rk   r   rq  s     r#   test_hist_range_and_densityry  "  sL    "))..,f &6JAtQ7a<<8q==r%   c                  D   t        j                         \  } }g d}|j                  |||dd      }|j                  j                  \  }}}|j
                  D ]F  }|D ]  }|j                  |j                  kD  rJ  |D ]  }	|	j                  |j                  kD  rJ  H y )Nr  r   r   )r2   r  r`  r;  r  )r'   r   r  r[  rj  r:  r  )
r-   r"   r2   barcont	data_linecaplinesbarlinecolsr  capline
barlinecols
             r#   test_bar_errbar_zorderr  #  s     llnGCAffqAaf@G'.'7'7'='=$Ix 2 	/G>>CJJ...	/% 	2J$$szz111	22r%   c                      t        j                         \  } }|j                          |j                  ddg       |j	                         dk(  sJ |j                  dg       |j	                         dk(  sJ y )Nr   r  r  r   rr  )r'   r   r  r  r   r,   s     r#   test_set_ticks_invertedr  #  sa    llnGCOOMM2r(;;=F"""MM2$;;=G###r%   c                     t        j                  d      } | j                         }|j                  ddgddg       |j	                  ddddd	d
       |j                  d       | j                  j                  |j                               }|j                  |j                  z  t        j                  d      k(  sJ y )Nr  rB  rD  r  r,  r  logit)F]tE?g'^P?r9   rL
  r  r   r  r   r   rN
  r   r:   )r'   r   r   r   r   r  rO  transform_bboxrb  r  r  r   approx)r-   r"   r   s      r#   $test_aspect_nonlinear_adjustable_boxr  #  s    
**X
&C		BGGRHr2hFF%g  ' JJqM
//
(
():
;C::		!V]]1%5555r%   c                  l   t        j                  d      } | j                  d      }|j                  ddgddg       |j	                  dddd	d
d       |j                  d       |j                          |j                         t        j                  ddg      k(  sJ |j                         d	k(  sJ y )Nr  rB  r  rD  r  r,  )r9   r   r  )gbeF?r  r9   rM
  r  r   gS[:XL	@g'In?@)r'   r   rO  r   r   r  r  r   r   r  r   r,   s     r#   (test_aspect_nonlinear_adjustable_datalimr  '#  s    
**X
&C	&	'BGGRHr2hFF%h 1	  + JJqMOO;;=FMM;*FGGGG;;=----r%   c                     t        j                         \  } }|j                         }|j                  ddg       |j	                  d       |j                         dk(  sJ t        j                         \  }}|j                  d       |j                  ddgddg       |j                  d	d
       | j                  j                          |j                  j                          |j                         }|j                         }|j                         }t        |j                  |j                         t        |j                  |j                         y )Nr  iX  r9   r   r   r:   r   r  r  rL
  rP
  )r'   r   r  r   set_box_aspectget_box_aspectr  rQ
  rl  r  rb  r   rp
  )rp  r  axtwinrq  r  bb1bbtr  s           r#   test_box_aspectr  6#  s    ID#YY[F
KKS	q3&&&ID#KKNHHaVaVNN7uN-KKKK



C



C



Cs{{CKK0s{{CKK0r%   c                  @   t        j                         \  } }|j                  g d       | j                  j	                          |j                  d       t        j                         \  }}|j                  d       |j                  j	                          |j                  g d       | j                  j	                          |j                  j	                          |j                         }|j                         }t        |j                  |j                         y )N)r   r   rz  r   r   )	r'   r   ra  rl  r  r  rb  r   rp
  )rp  r  rq  r  r  r  s         r#   test_box_aspect_custom_positionr  Q#  s     ID#)*KKrID#rKK)*KKKK



C



Cs{{CKK0r%   c                  l   t        j                  ddt        d      d      \  } }| j                  j	                          | j                  j                         }g }|j                  D ]:  }|j                  |      }|j                  |j                  |j                  g       < t        ||d          y )Nr:   r   r9   )r[
  T)r  rk  r   )r'   r   r  rl  r  r%  r  r&  r  r  r  r   )r-   r  r(  r
  r"   r  s         r#   test_bbox_aspect_axes_initr  h#  s     ||AqTQ-?/35HCJJOOzz&&(HEhh ,!!(+bhh		*+, E58$r%   c                  t   t        j                         \  } }t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |j                  t        j                         d d d        t        j                  t        d      5  |j                  t        j                          d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   y xY w)Nzmust be finite and positiver  r   r   )r'   r   r   r   r  rQ
  rj   r\	  r,   s     r#   test_set_aspect_negativer  w#  s    llnGC	z)F	G 
b	z)F	G 
a	z)F	G 
bff	z)F	G 
rvvg     s/   D
(D D" !D.
DD"D+.D7c                      t        j                  dd      \  } }|j                  g d       | j                  j	                          |j                          y )Nr9   r  )r'   r   r   rl  r  redraw_in_framer,   s     r#   test_redraw_in_framer  #  s<    ll1a GCGGIJJOOr%   c                      t        j                         \  } }| j                  j                  d      J |j	                  d       | j                  j                  d      J y )N)r  r  F)r'   r   rl  inaxesr   r,   s     r#   test_invisible_axes_eventsr  #  sS    llnGC::Z(444NN5::Z(000r%   c                      dt         j                  d<   t        j                         } | j                  j	                         }|D ]!  }|j
                  j                         dk7  r!J  y Nr9  lines.markeredgecolor)r'   r   rx  r[   r
  r  get_markeredgecolorr"   r  r
  s      r#   "test_xtickcolor_is_not_markercolorr  #  X    ,3CLL()	BHH$$&E ?~~113w>>>?r%   c                      dt         j                  d<   t        j                         } | j                  j	                         }|D ]!  }|j
                  j                         dk7  r!J  y r  )r'   r   rx  r]   r
  r  r  r  s      r#   "test_ytickcolor_is_not_markercolorr  #  r  r%   r   r  )TFNc                    t        j                         \  }}t        j                  d      }t        j                  ddd      }|j                  ||       t        |d|  d      }t        |d|  d      }t        |d|  d      }| |       n|}	 |d	|
       |	 |       k(  sJ |j                  j                          t         |       d	       y )Nr   r]  r   get_autoscale_onr*  limget_r  )r  )
r'   r   rj   rr   r  r;   r$  rl  r  r   )
r   r  r-   r"   r2   r3   r  set_limget_lim	post_autos
             r#   test_unautoscaler  #  s     llnGC
		#A
CS!AJJq!r]4&#<=bDc*+GbDc*+G&*l "IKd#(****JJOOwy+.r%   c                 Z   | j                  d      j                  dt        j                  dz  gddg      \  }d|j	                         _        |j                  d      j                  t        j                  dt        j                  dz  d      t        j                  ddd             y )Nr1  r  r   r:   r9   r   e   )r   r   rj   r  r  r  r  )r    r!   r
  s      r#   )test_polar_interpolation_steps_variable_rr  #  s    					1	6	62557|aV	LBA(+AJJL%7+00
AruuQw$bkk!Q&<>r%   c                      t        j                         \  } }|j                  dd       | j                  j	                          |j                         dk(  sJ y )Nr   g&.>)r   g	>)r'   r   r  rl  r  r   r,   s     r#   test_autoscale_tiny_stickyr  #  s@    llnGCFF1dOJJOO;;=L(((r%   c                  6   dt         j                  d<   dt         j                  d<   t        j                         } | j                  j	                         }|D ]@  }|j
                  j                         dk(  sJ |j                  j                         dk(  r@J  y )Nr  r1
  r   r5
  )r'   r   rx  r[   r
  r  r'  rx  r  s      r#   &test_xtickcolor_is_not_xticklabelcolorr  #      "*CLL'-CLL#$	BHH$$&E 1~~'')X555{{$$&&0001r%   c                  6   dt         j                  d<   dt         j                  d<   t        j                         } | j                  j	                         }|D ]@  }|j
                  j                         dk(  sJ |j                  j                         dk(  r@J  y )Nr  ytick.colorr   ytick.labelcolor)r'   r   rx  r]   r
  r  r'  rx  r  s      r#   &test_ytickcolor_is_not_yticklabelcolorr  #  r  r%   c                  j   dt         j                  d<   t        j                         } | j                  j                  j                         dk(  sJ dt         j                  d<   dt         j                  d<   t        j                         } | j                  j                  j                         dk(  sJ y )Nr   r5
  r  r1
  inherit)r'   r   rx  r[   rX  r'  r  s    r#   test_xaxis_offsetText_colorr  #  s    '-CLL#$	B88((*f444"*CLL'0CLL#$	B88((*h666r%   c                  j   dt         j                  d<   t        j                         } | j                  j                  j                         dk(  sJ dt         j                  d<   dt         j                  d<   t        j                         } | j                  j                  j                         dk(  sJ y )Nr   r  rB  r  r  )r'   r   rx  r]   rX  r'  r  s    r#   test_yaxis_offsetText_colorr  #  s    '.CLL#$	B88((*g555"'CLL'0CLL#$	B88((*e333r%   r  )r  r~   r  c                    | t         j                  d<   | t         j                  d<   t        j                         \  }}|j                  j                          t        ddg|j                  |j                  g      D ]H  \  }}|j                         D ]0  }|j                  j                         |j                  |      k(  r0J  J y )Nr4
  zytick.labelsizer2   r3   )r   r   r'   r   rl  r  r  r[   r]   r
  rx  r
  _get_tick_label_size)r  r-   r"   namer   r
  s         r#   test_relative_ticklabel_sizesr  #  s     '+CLL"#&*CLL"#llnGCJJOO3*rxx&:; M
d((* 	MD;;'')T-F-Ft-LLLL	MMr%   c                      t        j                         } | j                  ddd      \  }}|j                  g dg d       |j	                  dd       |j                         }t        j                  |d	d
g      sJ y )Nr:   r9   r1  r  )PF  iJG  iDH  i>I  )r:   r   r:   r   r  r   r  ipI  )r'   r   r   r   r  r   rj   r|  )r-   r  r  r   s       r#   test_multiplot_autoscaler  #  se    
**,C||Aq|/HCHH)<8KKA<<>D;;teU^,,,r%   c                  6   t        j                         } | j                  d      }| j                  d|      }|j	                         }| j                  d       |j	                         j                         |j                         k(  j                         sJ y )Nr  )r  r  r   r   r  r   rQ   )r'   r   r   rO  rb  r  r{
  r1  )r-   r~  r  init_poss       r#   $test_sharing_does_not_link_positionsr  $  s    
**,C
//#
C
,,',
4C!HQ))+x/B/B/DDIIKKKr%   )r  c                    t        j                  g d      }| j                  d      }|d   j                  ddgddg|j	                  d             t        j                  d	      5  |d   j                  ddgddg|j	                  d             d d d        |d   j                  ddgddg|j	                  d             |d
   j                  t        j                  d      |j	                  d             |d   j                  t        j                  d      t        j                  d      |j	                  d             |j                  d      }|d   j                  ddgddg|j	                  d             |d   j                  ddgddg|j	                  d             |d   j                  ddgddg|j	                  d             |d
   j                  t        j                  d      |j	                  d             |d   j                  t        j                  d      t        j                  d      |j	                  d             y # 1 sw Y   xY w)Nr   r   r   r9   r:   r   rO  r!  r  r   r~   rY  r.  rr  )rj   rN  r   r   r   r   r  r;   r  r  rr   r  )r    r!   r   r  s       r#   test_2dcolor_plotr  $  s   HH_%E


A
CFKKAA%--"3K4	F	G <A1v1vr):;<FKKAA%--"3K4FKK		"U]]2%6K7FJJryy}biim5==3DJE


1
CFKKAA%--"8K9FNNAq6Aq6U]]7%;N<FKKAA%--"8K9FKK		"U]]7%;K<FJJryy}biim5==3IJJ< <s   )+II(c                 ~   t        j                  ddt         j                  z  d      }t        j                  |      }|j	                  dddd      }|j
                  D ]  }|j                  ||        | j	                  dddd      }|j
                  D ]$  }|j                          |j                  ||       & y )Nr  r:   r  Tr_
  )rj   rr   r  r  r   r  r   r  )r    r!   r2   r3   r  r"   s         r#   test_shared_axes_clearr  $$  s    
		#qw%A
q	A


1aT

:Chh 
1 

Aqd

;Chh 


1r%   c                     t        j                  dddd      \  } }|j                  D ]  }|j                  ddgd        |d   j	                  g d       |j                  D ](  }|j                         |d   j                         k(  r(J  |d   j                  g d       |j                  D ](  }|j                         |d   j                         k(  r(J  y )	Nr:   r1  r_
  r   zo-r  )r  r   r9   r   )r  r   r:   rH  )r'   r   r  r   r  r   r  r   r  s      r#   test_shared_axes_retickr  3$  s    ||Aqu=HChh 
A I*+hh 5{{}D	 2 2 44445 I*+hh 5{{}D	 2 2 44445r%   rF   )rQ   rZ   rC   c                     t               }|j                         }|j                  dd|        |j                  j	                  d       |j                  j
                  j                         | k(  sJ y )Ntestr9   rE   rC   )r   r   r)   r]   set_label_positionr0   r
  )rF   r-   r"   s      r#   test_ylabel_ha_with_positionr  B$  sW    
(C	BMM&A"M%HH(88>>  "b(((r%   c                     t        j                         } ddgddg}}| j                  ||      }| j                  |      }|d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y )	Nr9   r:   r   r   rZ   rP   r?   r'   rs  r  	bar_labelr   r\   r
  r"   rv  r  ri  r  s        r#    test_bar_label_location_verticalr  K$  s    	Ba&1b'BFF2wE\\% F!9<<BqE71:....!9,,.(:::!9**,888!9<<BqE71:....!9,,.(:::!9**,555r%   c                     t        j                         } | j                          ddgddg}}| j                  ||      }| j	                  |      }|d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y )	Nr9   r:   r   r  r   rZ   r?   rP   )r'   rs  r  r  r  r   r\   r
  r  s        r#   *test_bar_label_location_vertical_yinvertedr  X$  s    	BOOa&1b'BFF2wE\\% F!9<<BqE71:....!9,,.(:::!9**,555!9<<BqE71:....!9,,.(:::!9**,888r%   c                     t        j                         } ddgddg}}| j                  ||      }| j                  |      }|d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y 	Nr9   r:   r   r  r   rQ   rZ   rC   r'   rs  r  r  r   r\   r
  r"   rw  r  ri  r  s        r#   "test_bar_label_location_horizontalr  f$  s    	BQ!RBGGBE\\% F!9<<F1Ir!u----!9,,.&888!9**,888!9<<F1Ir!u----!9,,.'999!9**,888r%   c                     t        j                         } | j                          ddgddg}}| j                  ||      }| j	                  |      }|d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y r  )r'   rs  r  r  r  r   r\   r
  r  s        r#   ,test_bar_label_location_horizontal_yinvertedr  s$  s    	BOOQ!RBGGBE\\% F!9<<F1Ir!u----!9,,.&888!9**,888!9<<F1Ir!u----!9,,.'999!9**,888r%   c                     t        j                         } | j                          ddgddg}}| j                  ||      }| j	                  |      }|d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j
                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y 	Nr9   r:   r   r  r   rC   rZ   rQ   )r'   rs  r  r  r  r   r\   r
  r  s        r#   ,test_bar_label_location_horizontal_xinvertedr  $  s    	BOOQ!RBGGBE\\% F!9<<F1Ir!u----!9,,.'999!9**,888!9<<F1Ir!u----!9,,.&888!9**,888r%   c                     t        j                         } | j                          | j                          ddgddg}}| j	                  ||      }| j                  |      }|d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   |d   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y r  )	r'   rs  r  r  r  r  r   r\   r
  r  s        r#   -test_bar_label_location_horizontal_xyinvertedr  $  s   	BOOOOQ!RBGGBE\\% F!9<<F1Ir!u----!9,,.'999!9**,888!9<<F1Ir!u----!9,,.&888!9**,888r%   c                     t        j                         } ddgddg}}| j                  ||      }| j                  |d      }|d   j                  dk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  dk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ y )	Nr9   r:   r   r  rZ   
label_typer   ra	  r  r  s        r#   test_bar_label_location_centerr  $  s    	BQ!RBGGBE\\%H\5F!9<<:%%%!9,,.(:::!9**,888!9<<:%%%!9,,.(:::!9**,888r%   z%test_centered_bar_label_nonlinear.svgc                      t        j                         \  } }|j                  g dg d      }|j                  d       |j	                  dd        |j                  |d       |j                          y )N)r=   r#  r   )r  i  iX  r,  r9   rZ   r  )r'   r   r  rU  r  r  r|  )r  r"   r  s      r#   !test_centered_bar_label_nonlinearr  $  sV    LLNEArGGO-BCMMM%KK4LL8L4OOr%   c                     t        j                         \  } }d}t        g dg d      D ]2  \  }}|j                  d|||      }|j	                  |d       ||z  }4 |j                  d d       | j                          y )	Nr   r  )r~   r  rY  rz  )r0   rQ   rZ   r  r  )r'   r   r  r  r  r  r  )r-   r"   lastr0   rM  r  s         r#   +test_centered_bar_label_label_beyond_limitsr  $  s{    llnGCDO\: uuEE
]x8 KKb r%   c                     t        j                         } ddgddg}}| j                  ||d      }| j                  |      }|d   j                  |d   |d   dz   fk(  sJ |d   j                         dk(  sJ |d   j                         dk(  sJ |d   j                  |d   |d   dz
  fk(  sJ |d   j                         dk(  sJ |d   j                         d	k(  sJ y )
Nr9   r:   r   r  r@  r   rZ   rP   r?   r  r  s        r#   !test_bar_label_location_errorbarsr  $  s    	Ba&1b'BFF2wQF'E\\% F!9<<BqE71:>2222!9,,.(:::!9**,888!9<<BqE71:>2222!9,,.(:::!9**,555r%   r   r
  z{:.2f}c                     t        j                         }|j                  ddgddg      }|j                  ||       }|d   j	                         dk(  sJ |d   j	                         dk(  sJ y )	Nr9   r:   r   r  r   r   z3.00z-4.00r'   rs  r  r  ry  )r   r"   ri  r  s       r#   test_bar_label_fmtr  $  so     
BFFAq6Ar7#E\\%S\)F!96)))!97***r%   c                      t        j                         } | j                  ddgddg      }t        j                  t
        d      5  | j                  |d      }d d d        y # 1 sw Y   y xY w)	Nr9   r:   r   r  zstr or callabler  r~   r  )r'   rs  r  r   r   r   r  )r"   ri  r  s      r#   test_bar_label_fmt_errorr  $  s[    	BFFAq6Ar7#E	y(9	: (LLBL'( ( (s   A##A,c                      t        j                         } | j                  ddgddg      }| j                  |ddg      }|d   j	                         dk(  sJ |d   j	                         dk(  sJ y )	Nr9   r:   r   r  r  r  r  r   r  )r"   ri  r  s      r#   test_bar_label_labelsr  $  sq    	BFFAq6Ar7#E\\%c
\3F!93&&&!93&&&r%   c                  B   t        j                         } | j                  ddgt        j                  dg      }| j                  |      }|D cg c]  }|j                          c}ddgk(  sJ |d   j                  dk(  sJ |d   j                         dk(  sJ y c c}w 	Nr:   r   r9   r   r"  r   r  rP   )	r'   rs  r  rj   r  r  ry  r   r
  r"   r  r  r
  s       r#   test_bar_label_nan_ydatar  $  s    	B661a&2661+&D\\$F"()QAJJL)b#Y666!9<<6!!!!9**,888 *s   Bc                  b   t        j                         } | j                          | j                  ddgt        j
                  dg      }| j                  |      }|D cg c]  }|j                          c}ddgk(  sJ |d   j                  dk(  sJ |d   j                         dk(  sJ y c c}w r   )
r'   rs  ru  r  rj   r  r  ry  r   r
  r  s       r#   !test_bar_label_nan_ydata_invertedr  $  s    	B661a&2661+&D\\$F"()QAJJL)b#Y666!9<<6!!!!9**,888 *s   B,c                     t        j                         } ddgddg}}| j                  ||      }| j                  |d      }|d   j                  d   dk(  sJ |d   j                  d   dk(  sJ | j                  |ddg      }|d   j                  d   dk(  sJ |d   j                  d   dk(  sJ t        j                  t        d	
      5  | j                  |g d       ddd       y# 1 sw Y   yxY w)z>Test that bar_label accepts both float and array-like padding.r9   r:   r   r.  r   )paddingr   r  zpadding must be of lengthr  r  N)r'   rs  r  r  xyannr   r   r  )r"   rv  r  ri  labels1labels2s         r#   test_bar_label_paddingr
  $  s    	Ba&1a&BFF2wEll5!l,G1:A!###1:A!###ll51a&l1G1:A!###1:A!###	z)D	E /
UI./ / /s   C--C6c                     t        j                         \  } }|j                  g dt        j                  ddgg d      }|j                  |      }|D cg c]  }|j                          c}g dk(  sJ t        j                  |j                         d      sJ t        j                         \  } }|j                  g dg dd	t        j                  d
g      }|j                  |      }|D cg c]  }|j                          c}g dk(  sJ t        j                  |j                         d      sJ t        j                         \  } }|j                  g dt        j                  ddgt        j                  t        j                  d
g      }|j                  |      }|D cg c]  }|j                          c}g dk(  sJ t        j                  |j                         d      sJ y c c}w c c}w c c}w )Nr  r9   r:   r  r@  )r   r"  2)r  r  rF  r   r  )r!  r"  r  )r  r  )	r'   r   r  rj   r  r  ry  r|  r   r-   r"   r  r  r
  s        r#   test_nan_barlabelsr  %  s}   llnGC66)bffa^/6BD\\$F"()QAJJL)^;;;;;r{{}j111llnGC66)Yc2663-?6@D\\$F"()QAJJL)_<<<;;r{{}k222llnGC66)bffa^26626632G6HD\\$F"()QAJJL)^;;;;;r{{}j111 * * *s   G32G8+G=c                      t        j                         \  } }|j                  ddgddg      }|j                  |d      }|D cg c]  }|j	                          c}ddgk(  sJ y c c}w )	Nr"  r  r   r  z{:d}r  r  7)r'   r   r  r  ry  r  s        r#   test_int_fmt_bar_labelr  !%  sa    llnGC665%.1a&)D\\$F\+F"()QAJJL)c3Z777)s   A'c            	         t        j                         \  } }|j                  t        j                  ddddd             dt        j                  dt
        j                  z  d	z        d
z  z  }t
        j                  j                  t        j                  d|dz    d|dz   f      |j                  j                  d       y )N)r   r   r  r7  r  r   rt  gffffff?r   r  r:   gr.  r  )r'   r   r  r  Wedgerj   r  r  r   assert_array_almost_equal_nulprN  rz
  rc  )r-   r"   bots      r#   test_patch_boundsr  (%  s    llnGCLLr3cBC
bffRXc\"A%
%CJJ--
&CH+tSW56

8I8I2Or%   c            	          t        j                  t        d      5  t        j                  dgdgdddd       d d d        y # 1 sw Y   y xY w)	Nz"You passed an edgecolor/edgecolorsr  r   r  r  rX  r#  )r   r  r3  r4  )r   r  rZ  r'   r;   r   r%   r#    test_warn_ignored_scatter_kwargsr  0%  sG    	kA
C OQC!SC3#NO O Os   AAc            
      b   t        j                         \  } }t        d      D cg c]-  }|j                  t	        j
                  ||dz               d   / }}|j                  t	        j
                  d      t	        j
                  d            }|j                  t	        j                  d            }|j                  t        j                  ddd            }|j                  ddd      }t        |j                        |gk(  sJ t        |j                        |gk(  sJ t        |j                         |k(  sJ t        |j"                        |gk(  sJ |j$                  rJ t        |j&                        |gk(  sJ |j                   d   |d   u sJ |j                   d   |d   u sJ t)        j*                  t,        d	      5  |j                   t/        |      d
z       d d d        |j                   g dz   g |d
ddk(  sJ g d|j                   z   d
ddg|k(  sJ |j                   dz   g |d
ddk(  sJ d|j                   z   d
ddg|k(  sJ |j1                          |j                  rJ |j1                          |j                  rJ |j1                          |j"                  rJ |j$                  rJ |j1                          |j&                  rJ |j                   D ]  }|j1                           t/        |j                         dk(  sJ y c c}w # 1 sw Y   AxY w)Nr   r   r   r   r   r  r"  r   zout of ranger  r9   r  r:   r   )r'   r   r   r   rj   rr   r;   r   r  r  r  r  r   r.  r  imagesrj  r:  tablesr
  r   r   
IndexErrorr  ry  )	r-   r"   rA  rj  rz  r  r  r   r  s	            r#   test_artist_sublistsr  7%  s   llnGC6;Ah?RWWRYYq!a%()!,?E?
**RYYq\299Q<
0C	288F#	$BLL++FAq9:E771aD C5(((		?rd""">U"""

w&&&yy=>dV### 88A;%("""88B<59$$$	z	8 !
Ua ! 88i#4U#4A#4q#4!#4444rxxAq!#4e#4444 88i#4U#4A#4q#4!#4444rxxAq!#4e#4444 JJL~~IIKyy=	LLNzz>yy=KKMxx<hh 
		rxx=AS @"! !s   2L	L$$L.c                  <   t        j                  d      } t        j                  d      }t        j                         \  }}|j	                  | |      }t        |      dk(  sJ t        j                         \  }}|j	                  g g       }t        |      dk(  sJ y )Nr~   )r~   r   r   r9   )rj   r   r'   r   r   r  )r2   r3   r  r"   r  s        r#   test_empty_line_plotsr   e%  s{    
A
ALLNEAr771a=Dt9>> LLNEAr772r?Dt9>>r%   z
fmt, match))r  z?'f' is not a valid format string \(unrecognized character 'f'\))zo+z9'o\+' is not a valid format string \(two marker symbols\))z:-z;':-' is not a valid format string \(two linestyle symbols\))rkz7'rk' is not a valid format string \(two color symbols\))z:o-rz=':o-r' is not a valid format string \(two linestyle symbols\))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                         \  }}||j                  dd      }t        j                  t
        d|z   dz         5  |j                  d| |       d d d        y # 1 sw Y   y xY w)Nnotzneither a data key norz\Az\Zr  r"  ro  )r'   r   replacer   r   r  r   )r   r  r  r-   r"   s        r#   test_plot_format_errorsr&  s%  sh     llnGCe%=>	z)>	? *
#D)* * *s   A++A4c                     t        j                         \  } }|j                  g dd      }|d   j                         dk(  sJ |d   j	                         dk(  sJ t        j                         \  } }|j                  g dd      }|d   j	                         dk(  sJ t        j                         \  } }|j                  ddgddgdd      }| j
                  j                          |d   j                         dk(  sJ |j                         d   j                         dk(  sJ t        j                         \  } }|j                  ddgddgdd      }| j
                  j                          |d   j	                         dk(  sJ |j                         d   j                         dk(  sJ t        j                         \  } }|j                  g dd	      }|d   j	                         d
k(  sJ |d   j                         dk(  sJ t        j                         \  } }|j                  g dd      }|d   j	                         dk(  sJ |d   j                         t        j                  d      k(  sJ |d   j                         dk(  sJ y )Nr  z1.0r   )r   r   r   r   rL  r"  r9   r:   k3r   rC  z.C12:r   C12r  )r'   r   r   r'  r_  rl  r  r  ry  r  r&  rp  rP  s      r#   test_plot_formatr*  %  sS   llnGC779e$D7"666676)))llnGC779c"D73&&&llnGC77Aq6Aq65#.DJJOO7"6666"++-444llnGC77Aq6Aq63.DJJOO73&&&"++-666llnGC779d#D73&&&7#%%%llnGC779g&D73&&&7'//%"88887  "c)))r%   c                     t        j                         \  } }|j                  ddddi       |j                         }| j                  j                          |j                         d   j                         dk(  sJ |j                         d   j                         dk(  sJ t        j                         \  } }|j                  dddddi       |j                         }| j                  j                          |j                         d   j                         dk(  sJ |j                         d   j                         dk(  sJ |j                         d   j                         dk(  sJ y )Nr   r#  r  r:   ro  r   r=   )
r'   r   r   rI   rl  r  	get_textsry  r  r  )r-   r"   legs      r#   test_automatic_legendr.  %  s3   llnGCGGCC8G$
))+CJJOO==?1&&(C///"++-444llnGCGGCcaG)
))+CJJOO==?1&&(C///"++-444"++-444r%   c            	         t        j                  t        d      5  t        j                  g dd       d d d        t        j                  t
        d      5  t        j                  g dg dg dg ddd	g
       d d d        t        j                  t
        d      5  t        j                  g ddg       d d d        t        j                  t
        d      5  t        j                  t        j                  d             d d d        t        j                  t
        d      5  t        j                  ddddddi       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   y xY w)Nz"plot\(\) got an unexpected keywordr  r  r9   rH	  zplot\(\) with multiple groupsrU  r"  r  r
  zx and y must have same firstzx and y can be no greater than)r:   r:   r:   zUsing arbitrary long args withr   r#  r=   r  r:   ro  )r   r   r   r'   r   r  rj   r   r   r%   r#   test_plot_errorsr0  %  s"   	y(M	N !a !	z)I	J OIy)C:NO	z)G	H !QC !	z)I	J %#$%	z)I	J 4c33(34 4! !O O! !% %4 4s;   E%E!E))E5*FEE&)E25E>F
c            
         t        j                         j                         } t        | j                  t        d      t        d      t        d            t        | j                  ddgddgg      t        | j                  ddgddgg      t        | j                  ddgddgg      t        | j                  ddgddgg      fD ]4  }d} ||      j                  }|j                  |j                  f|k(  r4J  y )Nr   rO  r   r9   r:   )r  r  )clim)r'   r   r   r   r;   r   r   rg  r  r  r  r  r  )r"   plot_methodr2  r  s       r#   	test_climr4  %  s    		!	!	#BBJJa%(eAh?BIIAA/0BII!Q!Q 01BMMQFQF#34BMMQFQF#34 	. %**		499%---	.r%   c                     ddgddgddgddgg} t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  g}t        j                  | |      }t        j                         \  }}|j                  t        j                  |             |j                          |j                         d   dk(  sJ y )Nr   r   r9   r  )mpathr8  r<  CURVE3	CLOSEPOLYr'   r   r  r  r;  rw  r   )r$  codesr  r-   r"   s        r#   test_bezier_autoscaler:  %  s     !WWVVE ZZZZZZZZ!!#E 	

5% AllnGCLL##A&'LLN ;;=t###r%   c                     t        j                  g ddgddgddgddgddgddgddgddgddgddgddgddgddgddgd	dgd	dgd
dgd
dgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgddgdd gd!d gd!d"gd#d"gd#d$gd%d$gd%d&gd'd&gd'd(gd)d(gd)d*gd+d*gd+d,gd-d,gd-d.gd/d.gd/d0gd1d0gd1d2gd3d2gd3d4gd5d4gd5d2gd6d2gd6d4gd.d4gd.d7gd8d7gd8d0gd9d0gd9d:gd;d:gd;d*gd<d*gd<d(gd=d(gd=d&gd>d&gd>d$gd?d$gd?d@gdAd@gdAd gdBd gdBdgdCdgdCdgdDdgdDdEgdFdEgdFdGgdHdGgdHdgdIdgdIdgdJdgdJdgdKdgdKdgdLdgdLdgdMdgdMdgdNdgdNdgdOdgdOdgdPdgdPdgdQdgdQdgdRdgdRdgdSdgdSdgdTdgdTdgdUdgdUdgdVdgdVdgdWdgdWdgdXdgdXdg      } t        j                  | d d dYf         }t        j                  | d d dZf         }t        j                  | d d dYf         }t        j                  | d d dZf         }t	        j
                  |       }t        j                         \  }}|j                  t        j                  |             |j                          |j                         dY   |k  sJ |j                         dZ   |k\  sJ |j                         dY   |k  sJ |j                         dZ   |k\  sJ y )[Ngr  g)\(gQgzGg=
ףp=gg(\gRQgGzg
ףp=
ggQg=
ףp=g(\
gGz	r  gffffffgQgףp=
r&  g(\g{Gz?gHzGg      ru  gQ g{Gz?gzGr   gRQrf  g(\gQ?g333333g(\?gr(  g=
ףp=g)\(?g\(\r  g=
ףp=gHzG?gQg(\?r  r   g(\տg{Gz?g
ףp=
ǿr	  g{Gzgp=
ף?gףp=
?r  gQ?gQ?p=
ף?g(\?gq=
ףp?re  g(\?r  r  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   )rj   rN  rt  r  r6  r8  r'   r   r  r  r;  rw  r   r   )r$  minxminymaxxmaxyr  r-   r"   s           r#   test_small_autoscalerA  %  sQ   HH 	t}',dm6;T]	t}',dm6;T] 
 t} (-dm 7<T] 
	 t}	 (-dm	 7<T]	
 

 t}
 (-dm
 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T] 
 t} (-dm 7<T]  
!  t}!  (-dm!  7<T]!" 
#" t}#" (-dm#" 7<T]#$ 
%$ t}%$ (,Tl%$ 6:4L%$ DH,%& 
t'& Tl'& &*4L'& 48,'& BFt'( 
t)( Tl)( &*4L)( 48,)( BFt)* 
t+* Tl+* &*4L+* 48,+* BFt+, 
t-, Tl-, &*4L-, 48,-, BFt-. 
t/. Tl/. &*4L/. 48,/. BFt/0 
t10 Tl10 &*4L10 48,10 BFt12 
t32 Tl32 &*4L32 48,32 BFt34 
t54 Tl54 &*4L54 48,54 BFt56 
t76 Tl76 &*4L76 48,76 BFt78 
t98 Tl98 &*4L98 48,98 BFt9: 
t;: Tl;: &*4L;: 48,;: BFt;< 
t=< Tl=< &*4L=< 48,= EB 66%1+D66%1+D66%1+D66%1+D

5AllnGCLL##A&'LLN;;=t###;;=t###;;=t###;;=t###r%   c                  6   t        j                         \  } }|j                  t        j                  d             t        d      D ]P  }|j                         |   j                         | k(  sJ |j                         |   j                         | k(  rPJ  y )Nr~   )	r'   r   r   rj   rr   r   r  ry  r  )r-   r"   rQ  s      r#   test_get_xticklabelrC  &  s    llnGCGGBIIbMRy @!!#C(113#???!!#C(113#???@r%   c                     t        j                  dt              } t        j                  g d      }t        j                  dgdz        }t         j                  | d<   t        j                         \  }}|j                  | ||      }|j                  | ||      }||fD ]  }|^}}	t        j                  |j                         j                         sJ t        j                  |j                               sJ |	D ]V  }
t        j                  |
j                        j                         sJ t        j                  |
j                               rVJ   y )Nr   r  )r   r   r   r<  r   r-  r  )rj   rr   r  rN  r  r'   r   r  r  r?  r   any	get_widthr1  )barx
barheights	barstartsr-   r"   r  hbarsbar_setnanfulrestr#  s              r#   test_bar_leading_nanrN  &  s   99Qe$D/*J$"IffDGllnGC66$
965DGGD*9G5E%= .VYY'',,...{{6++-... 	.A;;qtt$((***;;q{{}---	..r%   c                 v   t         j                  j                  d       | j                         }|j                         }|j	                  t
        j                  gt
        j                  g       |j	                  dgdg       |j	                  dgdg      j                          |j	                  dgdg       y )Nr   r9   )r   r   r   r   r  rj   r  ry  r  s       r#   test_bar_all_nanrP  7&  s    IIMM'!GFKK266(#KKaS
JJsQC!
JJsQCr%   zextent_units.pngc            	         t        j                  dd      \  } }t        j                  dd      }t        j                  dd      }t	        d      D cg c]  }t	        d      D cg c]  }||z   	 c}  }}}|d   j                  d       |d   j                  |dd	d
||gt        j                  d         }|d   j                  d       |d   j                  |d||d	d
gt        j                  d         }|d   j                  j                  t        j                  d             |d   j                  |d||||gt        j                  d         }|d   j                  j                  t        j                  d             |d   j                  d       |d   j                  |dt        j                  d         }|j                  ||||g       |d   j                  j                  t        j                  d             |d   j                  d       t        j                   t"        d      5  |j                  dd||gd       d d d        y c c}w c c}}w # 1 sw Y   y xY w)Nr:   r  rh  z
2020-01-11r~   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%dr  zDay of Jan 2020)r	  r}  )r   r   z set_extent\(\) got an unexpectedr  r  Fr  )r'   r   rj   rz  r   r5   r   r   r  r[   r   rI  DateFormatterr   
set_extentr   r   r   )r  r  
date_first	date_lastr  rA  arrr  s           r#   test_extent_unitsrY  D&  sD   \\!QFAs|S1JlC0I-22Y
7r#AAaC#
7C
7I01	T		#g"#RY!?"}}X6 
 
8B IBC	T		#g",iB!?"}}X6 
 
8B IOO''(<(<T(BC	T		#g",i",i"9"}}X6 
 
8B IOO''(<(<T(BCIMM*M+	T		#g"}}X6 
 
8BMM9j)Z@AIOO''(<(<T(BCIMM*M+	y(K	L B
q"j)45AB B5 $
74B Bs$   I$&I2I$>I*I$*I3c                  T   t        j                         \  } }|j                  g g g g       }|j                  dgg      }||gz   D ]&  }|j                  |u sJ |j                         | u r&J  |j                          ||gz   D ]"  }|j                  J |j                         "J  y rD  )r'   r   r   r   rx  
get_figurer  )r-   r"   rj  r}  arts        r#   %test_cla_clears_children_axes_and_figr]  g&  s    llnGCGGBB#E
))aSE
Cu} 'xx2~~~~3&&&' HHJu} (xx~~'''(r%   c                      t        j                         \  } }|j                  g d|      }|j                         }|j	                          |j                  dd       y )N)r9   r   r   r9   rq  rs  ru  rw  )r'   r   rF  r  ry  r   )r-   r"   marginalmarginal_twins       r#   test_child_axes_removalra  t&  sI    llnGC}}]2}6HNN$MOOFFhF'r%   c                      d } d}t        j                  t        |      5  d}t        j                  j
                  j                  |d i d|        d d d        y # 1 sw Y   y xY w)Nc                       yr  r   r   r%   r#   r   z5test_scatter_color_repr_error.<locals>.get_next_color~&  rD  r%   zZ'c' argument must be a color, a sequence of colors, or a sequence of numbers, not 'red\\n'r  zred
r:   rQ  )r   r   r  r   rx  r   r'  )r   msgr=   s      r#   test_scatter_color_repr_errorre  |&  sf    8  
z	- M//tBa^ 	0 	MM M Ms   1AA$c                  
   t        j                         \  } }|j                  d       |j                  t	        d      dd      \  }t        j                         5 }| j                  |d       d d d        y # 1 sw Y   y xY w)Nr   Tr9   )r  r  r  )r   )r'   r   set_rasterization_zorderr   r   r  r  r  )r-   r"   r  r#  s       r#   &test_zorder_and_explicit_rasterizationrh  &  si    llnGC"
''%(tA'
6CB	 %Ae$% % %s   A99Bzpreset_clip_paths.pngc            	      R   t        j                         \  } }t        j                  j	                  ddgddgddgddggdddd      }|j                  |       t        j                  j                  d	d
d|      }|j                  t        j                         g       |j                  |       t        j                  j                  d	ddd|      }|j                  |       t        j                  j	                  ddgddgddggddddd|      }|j                  |       |j                  dddddid|       t        j                  j	                  ddgddgddgddggddddd|      }| j                  |d       |j                  dd       |j                  dd       y )Nr9   r   r   z#ddffddz#00ff00r:   r   )r3  r4  r5  r  rs  ra	  T)clip_onr  )r  r  rX  )r   rj  r  rc  z#beefc0r   z#faded0)r3  r  r4  r5  rj  r  r-  )rb  rb  )r   rd  r   rC  )r  r$  rj  r  r  r3   )r3  r4  r5  r  rj  r  rS  )r'   r   r   r:  Polygonr  rj  r   set_path_effectsr   withTickedStroker9  r  r  r  )r-   r"   polyr  poly2poly3s         r#   test_preset_clip_pathsrq  &  s    llnGC;;
Q!Q"a1b'*iq  5D LL99GZND;779:;MM$99G\d&*  ,DMM$KK
a1a&1e*%#q$$   HE MM% KKn[#S>44  I KK
Q!SC:Qx0C33   >E NN5tN$KKAKKAr%   c                     dt         j                  d<   dt         j                  d<   dt         j                  d<   t        j                         } | j                  j
                  j                         dk(  sJ | j                  j
                  j                         dk(  sJ | j                  j
                  j                         dk(  sJ y )NrB  zaxes.labelcolorr  zaxes.labelsizer  zaxes.labelweight)	r   r   r'   rx  r[   r0   r'  get_fontsizeget_fontweightr  s    r#   test_rc_axes_label_formattingru  &  s    &+CLL"#%'CLL!"'-CLL#$	B88>>##%...88>>&&(B...88>>((*f444r%   c                    t        j                  dt         j                   t         j                   t         j                  dddg      }t        t	        |            }| j                  dd      }t        |ddg      D ]  \  }}|j                  ||      }|j                  ddt         j                  j                  |      |d	|d
d
d      }t	        |j                               t        j                  |       j                         dz   k(  sJ t	        |j                               t	        h |t        j                  |                dz   k(  rJ  |j                  dd      }	|	d   j                  t         j                   t         j                   t         j                   ddddt         j                  gt        j                  d      dz  d       |	d   j                  t         j                   dddt         j                  t         j                  gt        j                  g d      dz  dd       |	d   j                  t        j                  d      dz  t         j                   t         j                   t         j                   ddddt         j                  gd       |	d   j                  t        j                  g d      dz  t         j                   dddt         j                  t         j                  gdd       y )Nr   r9   r:   r  rR   rS   r  rp  )r  rp  Tr  )r  rT   complementarycompressr  r  r  rh  )ds)r  r  rK  rZ  r   r   r  z	steps-pre)ry  r  )rj   rN  r\	  r   r  r   r  ecdfr	   	get_xdataisnanr  r   rr   )
r    r!   r  r  r   r"   rT   l0l1r   s
             r#   	test_ecdfr  &  sn   88Q"&&"&&!Q:;DCIG  A&Hx*l)CD HKWWT{W3WWS#"%%++d*;'$J!,#'$3  @ 2<<>"&;&;&=&AAAA2<<>"c*BD"((4.,A*B&Ca&GGGGH q!$GAJOObffWrvvgw1aBFFCIIaL1$  7AJOObffWaArvvrvv6HH34r9"s  , AJOOBIIaL1$ffWrvvgw1aBFFC"  $ AJOOBHH34r9ffWaArvvrvv6#  -r%   c                  v   t        j                  t              5  t        j                  dt
        j                  g       d d d        t        j                  t              5  t        j                  t
        j                  j                  ddgddg             d d d        y # 1 sw Y   dxY w# 1 sw Y   y xY w)Nr9   r:   TFr  )	r   r   r  r'   rz  rj   r  r	   rN  r   r%   r#   test_ecdf_invalidr  &  s    	z	" !RVV	z	" :aV4-89: : : :s   &B#!9B/#B,/B8c            
         t        j                         \  } }t        j                  ddt        j                  z  d      }dt        j
                  |      z  }d}|j                  ||d       |j                         |j                         f}|j                  |dd	d
       |j                  |dd||kD  dd|j                                |j                         |j                         f|k(  sJ y )Nr   r.  r  r   g333333?r8  rY  r   r:   r  )r   rK  r  r9   r   )r;  r   r  r2  )r'   r   rj   rr   r  r  r   r   r   rt   r  r	  )r-   r"   r2   r3   	thresholdoriginal_limss         r#   test_fill_between_axes_limitsr  &  s    llnGC
		!QY%ABFF1IAIGGAqG [[]BKKM2MJJyASJ9OOAq!1y=!8N8N8P  R KKM2;;=)]:::r%   c                  T   t        j                         \  } }|j                  g dg d       |j                  dd       |j	                  dd       |j                  dd	       t        j                  d
       |j                         D ]  }|j                         d   dk(  rJ  y )Nr  zX label in Impact fontImpact)fontnamezY label in xkcd scriptzxkcd scriptrX  	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    llnGCGGL,'MM*XM>MM*]MCNNkN:II#$""$ 7""$Q';6667r%   c                  d   t        j                         \  } }|j                  dd      }t        j                  |j
                  d   j                         d      sJ t        j                  |j
                  d   j                         d      sJ t        j                  |j                  j                         d   d      sJ t        j                  |j                  j                         d   d      sJ t        j                  |j                  j                  j                         d      sJ y )Nr?   rB  rY  rP   r   r'
  )r'   r   r  r  rT  r	  rg  r[   r  r0   r'  )r-   r"   saxs      r#   test_set_secondary_axis_colorr   '  s    llnGC


U%

0Ccjj2@@BEJJJcjj/==?GGGcii779'BEJJJcii779,GOOOciioo7795AAAr%   c                  4   t        j                  ddd      \  } }g }|d   j                  j                  d|j                         |d   j                  j                  d|j                         |d   j                  ddgdd	g
       ||d   |d   gk(  sJ y )Nr:   Tr_
  r9   xlim_changedylim_changedr   r   r.  rw  )r'   r   	callbacksconnectr  r   )r-   r  eventss      r#   test_xylim_changed_sharedr  
'  s    ||Ad48HCFF^V]];F^V]];FJJQF!QJ(c!fc!f%%%%r%   zaxhvlinespan_interpolation.pngc                  f   t        j                         j                  d      } | j                          | j	                  dd       | j                  ddd	       | j                  d
dddd	       | j                  ddd       | j                  dddd       | j                  dddddd       y )Nr1  r  r   r  rO  r   r   r  )fcrD  r   r  r9   )r=   r  r  rz  )r  r  r  r  )r'   r   r   r|  rS	  r  rt   r  r  s    r#   test_axhvlinespan_interpolationr  '  s    		!	!W	!	5BOOJJrTJJJr2$JJJr2r2$J'JJqDJ#JJr2$bJ)JJr2r2$bJ1r%   rO  c                 p   |j                         }| j                         }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| |j                          |j                  d       |j                  d       y")$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  r  r(
  r  r'
  zxkcd:shocking pinkr)
  zxkcd:fluorescent greenr*
  r   r+
  r   r,
  r  rP   Fr?   TrQ   rC   )r  r  r  r  r   Nr   )r   r	  r  r  )r!   r    rO  rw   rx   rj  s         r#   test_axes_clear_behaviorr  '  sW    !GFT" 	 		
 	q 	7 	! 	 	* 	. 	c 	! 	#  	%!" 	t#$ 	%& 	'( /F4 F,E,V,G-U-f-MMO
KKLLr%   )r   r  r   finalz/https://github.com/python/cpython/issues/124538)reasonc                     d } t               }|j                         }t        j                  j	                  d      }|j                  ||       |j                  ||       |j                         }|j                          |D cg c]  }t        |t        t        f      r| }}t        |      dkD  sJ |D ]
  } | |        t        |      dkD  sJ |D ]  }	 |j                           y c c}w # t        $ r Y 'w xY w)Nc                 >   t        | g      }t               }t        |      dkD  ry|j                         }t	        j
                  |      D ]A  }t        |      |v r|| usJ |j                  t        |             |j                  |       C t        |      dkD  rxy y rb  )	r   r   r  popleftgcget_referentsidaddr  )r|  to_visitexploredparentchilds        r#   assert_not_in_reference_cyclezFtest_axes_clear_reference_cycle.<locals>.assert_not_in_reference_cycleO'  s    %>5(ma%%'F))&1 'e9(E)))RY'&' (mar%   r  r   )r   r   rj   rk   r   r   r;   r>  r  r   r   r   r  ry  NotImplementedError)	r  r-   r"   r  ax_childrenr   big_artists
big_artistr  s	            r#   test_axes_clear_reference_cycler  J'  s   
' (C		BYY^^D!FGGFFJJvv//#KIIK a&.12 	
K  {a! 2
%j12{a 	LLN # 		s   C.C33	C?>C?c                  H   t         j                  j                  d       t         j                  j                  d      } t        j                         \  }}|j                  | g d       |j                         D cg c]  }|j                          c}g dk(  sJ y c c}w )Nr`   )r~   r   r  r  )rj   rk   rl   r'   r   r  r  ry  )r  r-   r"   r
  s       r#   test_boxplot_tick_labelsr  u'  sp    IINN899G$DllnGCJJtJ1"$"4"4"67QAJJL7?JJJ7s   =Bc                     g d}| j                         }|j                  |dddi       |j                         }|j                  |dddi       y )N)r  r~   r5  z%1.0f%%usetexT)r
  r
  z%1.0f\%%)r   r
  )r    r!   r  r"   r  s        r#   test_latex_pie_percentr  '  sS     D				BFF4x.>F?



CGGD+(D1AGBr%   c                    t        j                  dd      \  }}t        j                  j	                  d       t        dd      D cg c]#  }t        j                  j                  d|d      % }}|d   j                  |       t        |d   j                         t        j                  g d	      k(        sJ t        |d   j                         t        j                  g d
      k(        sJ |d   j                  |d       t        |d   j                         t        j                  g d
      k(        sJ t        |d   j                         t        j                  g d	      k(        sJ t        j                          t        j                  t        j                   d      5  |j                         }|j                  |d       d d d        | j                         }|j                  |d       y c c}w # 1 sw Y   2xY w)Nr9   r   r(  r`   r   r~   r   r   )	r   r   r   r   rH  r  rF  r  r  g      >g      4r  r  r?  r[  r9  rR   rS   z,vert: bool was deprecated in Matplotlib 3.11r  F)vert)r'   r   rj   rk   rl   r   rm   rn  r1  r  rN  r  r|  r   r  r   r8	  r    r!   r-   r  r  all_datarx   rw   s           r#   test_violinplot_orientationr  '  s    ||!1-HCIINN89>q"F#		  C-FHFFhs1v  "bhh1'3 3 4 4 4s1v  "bhh-'/ / 0 0 0 FhL9s1v  "bhh-'/ / 0 0 0s1v  "bhh1'3 3 4 4 4 IIK 
c66J
L 0 !!#(/0 !Gx\:9 G(0 0s   (G=-$HHc                 p   t        j                  dd      \  }}t        j                  j	                  d       t        dd      D cg c]#  }t        j                  j                  d|d      % }}|d   j                  |       t        |d   j                         t        j                  g d	      k(        sJ t        |d   j                         t        j                  g d
      k(        sJ |d   j                  |d       t        |d   j                         t        j                  g d
      k(        sJ t        |d   j                         t        j                  g d	      k(        sJ t        j                          t        j                  t        j                   d      5  t        j"                  ddi      5  |j                         }|j                  |       d d d        | j                         }|j                  |d       d d d        y c c}w # 1 sw Y   :xY w# 1 sw Y   y xY w)Nr9   r:   r(  r`   r   r~   r   r   r  r  rR   rS   z!was deprecated in Matplotlib 3.10r  zboxplot.verticalF)r'   r   rj   rk   rl   r   rm   r  r1  r  rN  r  r|  r   r  r   r8	  r   r  s           r#   test_boxplot_orientationr  '  s    ||!1-HCIINN89>q"F#		  C-FHFFNN8s1v  "bhh'    s1v  "bhh-'/ / 0 0 0 FNN8N6s1v  "bhh-'/ / 0 0 0s1v  "bhh'     IIK 
c66?
A 	< ^^/78 	%%%'FNN8$	% ##%l;	< 	<+ G2	% 	%		< 	<s*   (H-H,"H '+H, H)	%H,,H5zuse_colorizer_keyword.pngr.  c            	      p   t         j                  j                  d       t         j                  j                  d      } t         j                  j                  d      }t        j                  dd      j	                  d      }t        j                  dd      \  }}t        j                  j                  dd	      }t        j                  j                  |d
      }|d   j                  ||||       |d   j                  | ||d       |d   j                  ||       |d   j                  ||       |d   j!                  ||       |d   j#                  ||       |d   j#                  dd||       |d   j#                  |j$                  ||d dd df   |       |d   j'                  ||       |d   j)                  ||       |d   j+                  |j$                  j-                         |j-                         |j-                         |       |d   j/                  |j$                  j-                         |j-                         |j-                         |       |j1                  t        j2                  t        j2                  |dd      dd      |       t5        |       y ) Nr   r   r  float32r  r  r   r.  r  r  r  r   r  r=   	colorizerr  r~  r  r  r  )r  r   r   r  r}  r-  rs  r   r9   r:   r   r   r   r9   r   r  r:   r9   r#  r   r  r9   )rj   rk   rl   rr   r   r'   r   r   r  r  r  	Colorizerr;   r  r   rg  r  r  r  r  r  
tricontourrx  tricontourffigimager  r   )rand_xrand_yr=   r-   rx  r  cls          r#   test_use_colorizer_keywordr  '  s?    IINN1YYc"FYYc"F
		"I&..v6AQ"IC::2&D		 	 d	 	8BJq!qB/JffVDJa2&Ja2&J!r*J!r*J,.@1$&  (J!##q!BQBF)r:JqB'JR(J!##))+qwwy!'')rJJ13399;	1779KLL299Q3Ra@BLOC r%   c            
         t         j                  j                  d       t         j                  j                  d      } t         j                  j                  d      }t        j                  dd      j	                  d      }t        j                  dd      \  }}t        j                  j                  dd	      }t        j                  j                  |d
      }d}ddiddiddiddig}|D ]@  }	t        j                  t        |      5   |d   j                  ||f||d|	 d d d        B |D ]@  }	t        j                  t        |      5   |d   j                  ||f||d|	 d d d        B |D ]@  }	t        j                  t        |      5   |d   j                   | |f|dd|	 d d d        B |D ]>  }	t        j                  t        |      5   |d   j"                  |fd|i|	 d d d        @ |D ]>  }	t        j                  t        |      5   |d   j$                  |fd|i|	 d d d        @ |D ]>  }	t        j                  t        |      5   |d   j&                  |fd|i|	 d d d        @ |D ]>  }	t        j                  t        |      5   |d   j(                  |fd|i|	 d d d        @ |D ]@  }	t        j                  t        |      5   |d   j(                  dd |fd|i|	 d d d        B |D ]S  }	t        j                  t        |      5   |d!   j(                  |j*                  ||d dd df   fd|i|	 d d d        U |D ]>  }	t        j                  t        |      5   |d"   j,                  |fd|i|	 d d d        @ |D ]>  }	t        j                  t        |      5   |d#   j.                  |fd|i|	 d d d        @ |D ]t  }	t        j                  t        |      5   |d   j0                  |j*                  j3                         |j3                         |j3                         fd|i|	 d d d        v |D ]t  }	t        j                  t        |      5   |d$   j4                  |j*                  j3                         |j3                         |j3                         fd|i|	 d d d        v |D ];  }	t        j                  t        |      5   |j6                  |fd|i|	 d d d        = y # 1 sw Y   9xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   %xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   6xY w# 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   xY w)%Nr   r   r  r  r  r  r   r.  r  r  r  z5The `colorizer` keyword cannot be used simultaneouslyr  r  r  r,  r   r  r  r  r  r  r~  r  r  r  r  r  r}  r-  rs  r  r  r  r  r#  )rj   rk   rl   rr   r   r'   r   r   r  r  r  r  r   r   r  r;   r  r   rg  r  r  r  r  r  r  rx  r  r  )
r  r  r=   r-   rx  r  r  	match_strkwrdskwrds
             r#   test_wrong_use_colorizerr  '  s   IINN1YYc"FYYc"F
		"I&..v6AQ"IC::2&D		 	 d	 	8BGIa[61+8KLE @]]:Y7 	@DJq!?qB?$?	@ 	@@  @]]:Y7 	@DJq!?qB?$?	@ 	@@  U]]:Y7 	UDJffTVTtT	U 	UU  7]]:Y7 	7DJa6266	7 	77  7]]:Y7 	7DJa6266	7 	77  ;]]:Y7 	;!DJ!!!:r:T:	; 	;;  ;]]:Y7 	;!DJ!!!:r:T:	; 	;;  8]]:Y7 	8!DJ!!"46H1 8,.8268	8 	88  K]]:Y7 	K!DJ!!!##q!BQBF)JrJTJ	K 	KK  8]]:Y7 	8DJq7B7$7	8 	88  9]]:Y7 	9DJ8R848	9 	99  *]]:Y7 	*!DJ!!!##))+qwwy!'') *r *$(*	* 	**  +]]:Y7 	+"DJ""13399;	1779 +PR +%)+	+ 	++  2]]:Y7 	2CLL1b1D1	2 	22S	@ 	@	@ 	@	U 	U	7 	7	7 	7	; 	;	; 	;	8 	8	K 	K	8 	8	9 	9	* 	*	+ 	+	2 	2s   TT,T9U U#U &U-)U:..VV	V!AV.AV;>WT)	,T6	9U	U	U	 U*	-U7	:V	V	V	!V+	.V8	;W	W	c                  X   t        j                         \  } }|j                  g dg d      }|D ](  }t        j                  |j                         d      r(J  |j                  g dg dd      }|D ](  }t        j                  |j                         d      r(J  |j                  g dg dd	      }|D ](  }t        j                  |j                         d      r(J  |j                  g d
g ddd      }|D ](  }t        j                  |j                         d      r(J  y )Nr  rV  r   r  rB  rY  )r  r  r  r  rE  )   r   !   r   )r   r3  )r'   r   r  r  rT  rf  )r-   r"   r  r  s       r#   test_bar_color_precedencer  3(  s#   llnGC 66)Y'D ?!!#"3"3"5v>>>? 66,	67D >!!#"3"3"5u===> 66,	X6>D A!!#"3"3"5x@@@A 66,	'6JD @!!#"3"3"5w???@r%   c                 
   t        j                  ddgddgg      }| j                  |      }|j                  g d       |j                  |j
                  |j                  |j                  fdk(  sJ |j                  d      }y )Nr  r   )r  r  r   r   )r  r  r   r   )r  rL  rO  ra  rR  rS  r  r  )r    r!   ro
  rw   rx   s        r#   .test_axes_set_position_external_bbox_unchangedr  L(  sy     c3Z#s45D%G/0GGTWWdjj$++6:NNNN45Fr%   c                      ddg} g d}d}t        j                  t        |      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)Nr"  r  r  zHMismatch is between 'x' with shape \(2,\) and 'height' with shape \(3,\)r  )r   r   r  r'   r  )r2   r  error_messages      r#   test_bar_shape_mismatchr  W(  sK    	AFS  
z	7 6  s   AAc                  :   t        j                  ddd      } dt        j                  d<   d}t	        j
                         \  }}|j                  | t        j                  |       d|      }|d   D ](  }t        j                  |j                         |      r(J  y )	Nr   r~   r   r  rB  r   )r`  r  r:   rj   r  r   r   r'   r   r[  r  r  rT  rg  )r2   r  r-   r"   	errorbarscaps         r#   test_caps_colorr  a(  s     	Ar2A,3CLL()FllnGCArvvays6BI | ?!!#"3"3"5v>>>?r%   c                  4   t        j                  ddd      } dt        j                  d<   t	        j
                         \  }}|j                  | t        j                  |       d      }|d   D ](  }t        j                  |j                         d      r(J  y )	Nr   r~   r   r  r   r@  r:   r   r  )r2   r-   r"   r  r  s        r#   test_caps_no_ecolorr  p(  s     	Ar2A,3CLL()llnGCArvvays3I | ?!!#"3"3"5v>>>?r%   c                      t        j                         \  } }dt        d      t        d      g}t        j                  t
        d      5  |j                  |g d       d d d        y # 1 sw Y   y xY w)Nr   r  r\	  z"Wedge sizes must be finite numbersr  r  r  )r'   r   r  r   r   r  r
  )r-   r"   r  s      r#   test_pie_non_finite_valuesr  }(  sY    llnGC
U5\5<	(B	z)M	N +
r/*+ + +s   
A))A2c                      t        j                         \  } }t        j                  t        d      5  |j                  ddgddg       d d d        y # 1 sw Y   y xY w)NzAll wedge sizes are zeror  r   r  r  r  r
  r,   s     r#   test_pie_all_zerosr  (  sM    llnGC	z)C	D *
1vsCj)* * *s   AAc                  8   t        j                  d      \  } \  }}t        j                  j                  d      }|d   }|j	                  |d      }|j                  |d      \  }t        j                  j                  j                  |dd	      5 }t        j                  j                  j                  |dd
	      5 }| j                          d d d        d d d        j                          j                          y # 1 sw Y   2xY w# 1 sw Y   6xY w)Nr:   r  )r  r  r   T)animatedr  zim.draw)r  zln.draw)r'   r   rj   rk   r   r   unittestmockr  objectr  assert_not_called)	r-   r  r  imdatalndatar  r  mocked_im_drawmocked_ln_draws	            r#   *test_animated_artists_not_drawn_by_defaultr  (  s    ll+OC#sYYh'FAYF	FT	*BHHVdH+ER
--


$
$Ri
$
@ %N
--


$
$Ri
$
@%DR""$% % $$&$$&% % % %s$   -DDDD		DDc                     t        j                  dddd      5  t        j                         \  } }|j	                  g dg dg dd	      }d d d        j
                  \  }}}|J |sJ t        |D cg c]  }|j                          c}d
       t        |D cg c]  }|j                          c}d       |D ]  }t        |j                         d        y # 1 sw Y   xY wc c}w c c}w )Nr  rH  r   )zerrorbar.capsizezerrorbar.capthickzerrorbar.elinewidthrF  r  r   r/  r	  r?  )
r   r   r'   r   r[  rj  r   get_markersizeget_markeredgewidthr  )r-   r"   rq  r|  r}  r~  r  barcols           r#   test_errorbar_uses_rcparamsr  (  s    	 # 
 Q
 ,,.R[[IO[PQ (*xx$IxO8X>cS'')>E(C3S,,.CSI 7--/67Q Q ?Cs   3C6C+C0C(c                      t        j                         \  } }|j                  t        j                  j                  d      g t        j                  t        j                  gg      }t        |d         dk(  sJ y )Nr   r  r   )r'   r   rn  rj   rk   r  r  r  )r-   r"   r  s      r#   test_violinplot_empty_datasetr  (  sW    llnGCMM299??3/bffbff5EFGEuX1$$$r%   r  (  r%  r  r   r   rG  r@  r   	functoolsr   r  r)  r  	itertoolsr   platformr  sysr3  r   unittest.mockr  r  r  rj   r	   r
   r   rW   r   r   r   matplotlib.colorsr  r  matplotlib.datesr  rI  matplotlib.containerr   matplotlib.figurer   matplotlib.axesr   ri  r   r
  r   matplotlib.font_managerfont_managermfont_managermatplotlib.markersrI	  r  matplotlib.patchesr:  r  matplotlib.pathr7  r6  matplotlib.projections.geor   matplotlib.projections.polarr   r  r  r'   matplotlib.textr   r,  matplotlib.tickertickerr   matplotlib.transforms
transformsr  mpl_toolkits.axisartist
axisartistr  numpy.testingr   r   r   matplotlib.testing.decoratorsr   r   r   matplotlib.testing._markersr   r$   r.   r7   rN   rU   rX   r^   r{   r   r   r   r   r   machiner   r   r   r  r  r;  r<  r'  rB  rR  r\  re  rh  rm  r  r  r  r  r  r   r=  r  r  r  r  r  r  r  r  r  r  r  r  r   r'  r5  rR  r\  rd  ri  rp  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r  rr   r-  r5  r@  rI  rQ  rV  r^  rh  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*  r,  r.  r2  r6  r=  rB  rD  rF  rJ  rL  rT  rW  r\  r`  rk  rm  ro  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&  r6  r:  rA  rD  rJ  rJ  rO  Patchr  rj  rR  rU  rX  rq  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r@  rA  rN  rH  r  rN  rR  rU  COLOR_TEST_CASESrV  rY  r]  rl  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r  r  r'  r+  r-  r0  r3  r6  r9  rD  rJ  rP  rS  rU  rY  rd  ri  ro  rs  rv  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.  r2  r>  rB  rG  rJ  rS  r\  r`  rc  re  ri  rl  rt  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r	  r	  r	  r	  r	  r)	  r+	  r/	  r1	  r;	  r>	  rA	  rE	  rJ	  rM	  rQ	  rT	  rW	  r]	  rb	  rf	  rh	  rw	  r|	  r	  r	  r  rn	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r
  r
  r
  r!
  r.
  r=
  r?
  rS	  rt   r  r  rG
  rI
  rT
  rV
  r]
  ra
  r   r  rX  rf
  rm
  rq
  rv
  r}
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r	  r  r  r  r  r#  r%  r'  r+  r-  r3  r6  r9  r=  r@  rB  rE  rI  rL  rN  rQ  rS  rV  r\  r^  rc  rp  rr  rv  rx  r0  	AxesImagePcolorImagerk   QuadMeshr   r   r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  fixturer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r,  r0  r5  r8  r<  r@  rD  rG  rK  rO  rQ  rW  r[  r`  rf  ro  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  	Transformr  r  r  r  r%  r)  r+  r-  r2  r;  rR  rX  r]  rd  rf  ri  rm  ro  rr  rw  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  font_scalingsr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r
  r  r  r  r  r  r   r&  r*  r.  r0  r4  r:  rA  rC  rN  rP  rY  r]  ra  re  rh  rq  ru  r  r  r  r  r  r  r  r  skipifversion_inforeleaselevelr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )rA  r  s   00r#   <module>r"     s:    )    	  	   	 
 !         . # ! - $   # 1 / % %  1 2   # + $D DD D 4  
(M / /$ . .$ / /(@, ( ($ ( (( , ,*3 , , E!QKHq&qgT2HPW+8++-9atE$E$NJ4G2 67wG H2". ,J -J  ,'%  -'%T '(+8++-9auFF"," ,
= -
= , - ,I -I1h0f/   -.DX% Y% 9! !. 93 3" 90 0$   )*GL6 M6$ ,-4wO P,@ ?#WE; F; %&DP) Q)4('' #$UBKwO PB5 
J 
J; >>2'B' C'"  / $%4wG/ H/ &'w7* 8* &'w7* 8* &(;<$')<)<	- %&DP
* Q
*' #$G4/ 5/$$ &'wDI	( J	($ ## ##L$4 %&g6 7 9<>
< > 
< 8X&DH I( =/+8++-9atE&E&,F -.DX Y 	&	1a 	34	 ("((6"2A6	34	 !XRXXf%56  
#
# 	&	1a 	34	 ("((6"2A6	34	 !XRXXf%56  
$
$ 12'+8++-9auF'F'. <=T33& 56D')1)1& <.0 1 =/t?K	  L	 ( <.d/.h..0I=d1F2F2. )*/B C2 %&E5>t'-X--/9<c!EFEFB '9:G  ;G 
. 
.  ( 12'B# C#0 -.g># ?#0  .5 p
-. 0 0 0 0// %/(  0(" ;-w+8++-9atEE
 #$$iH IB =/t?K! L!H0 ?#WE
 F
 '(d'J
 K
 01t'U4;4;0 78d'))4 -.DX; Y;4 ()M? N?. 56D'););2 >"OL= M= .0KL!	>!	> 

 01A B DEWU V 
# 
# 
= 
= 
+ 
+ 
- 
-64 ()9 :4P  $%W5 6  , 
 
     '-'"+:3&% 9
%  
% A	a|nc*	,	,	(	,(@	!<	1	,	3V	=880
 >"OL( M( 7 72 '(d/R  S + ()t?S! T! )*OTH UH$ %&g6  7 -! *)),,+EG/	  0E0E" 9q'4)8Q-)*:	*: + #++"3"3":":;!399#3#3#:#:;'):):)A)ABDE,	E,:	
 ( (V # #2  . 
K 
K*+
#
)' ,-W$O P. -.g> ?   %&DH I %&g+8++-9atE%E%* <.DP= Q=" )*GL
. M
.' 7! !h1 h1V	*4 *
Y
, iHBHHl^457nHBHHl^457C HBHHl^457 CHBHHl^457S#Jc
8288\=,I#JKM44  !
fd^
Sk4
cC 
sCj!C:.
S3
fv&
fv&
SS)3/
SCC0#6
os
$c*	4	4M 	 V_w)*i34  )9:9 ;9$ )9:3 ;392)X5 -/IJ!!( 01t')E)E0  (@(! 4$ %&!&!## &'!&!#7#7 +,!&!#6#6 )*!&!#0#0 '("!&!	
@
@ )*5"+YW@ X@ ()"!&!#9	#9 ./"!&!#G	#G *+"!&!#A	#A
 12"!&!#	# &'"!&!#9	#9
 )*"!&!#<	#<
 &'"!&!#9	#9
 *+"!&!#<	#<
 B B &'"!&!#8	#8 #$"!&!#6	#6 ?#"!&!#5	#5 +,"!&!#8	#8 +,"!&!#F	#F *+"!&!#E	#E ()"!&!#2	#2 )*"!&!#G	#G ,-"!&!#>	#>6
<
 -.!&!#F#F ,-!&!#5#59
 =-0d)L M$ 
 
 12!&9>7>7 %&D	J K $%"!&!#	# 98:!##  ./!&$y*:5*:5z -."5"+YPP  45"5"+YPP99C6$ ;<"5"+YP#P# 113:AC0C0 237C% D% 45WE% F% 45WE$ F$ 01AN BN 89I0 J0 9:'J1 K1 237C8 D8 56gF7 G7 34GD8 E8 56gF7 G7 12'BN CN 9:'JC KC :;7KD LD )*GLE ME2KKKG
K0B@A '4 '4TLDI6 5 5 E E	+F) T!3;!3;l 23')<)<BE > >9$ ()9+4 :+4\4&C$3"  (5"7*6 (3 (3V 	(0(;()(+ ,N,N+ . . 	. 	. 02OP!
A!
A $%W5 6 ?#_M N ()9A :A -.g>M ?M :,g4@ A6>4B )*'tL& M&D 67wGF HF *+7;5 <5 ,-W=2 >2 )*OT= U=1	14040 )*':E ;E" [/$B%0/$B%,.>$?%02B$C%0+$>%,o$>$@ A + A+  9
 )5s),3@ADcK(.),3@AI3P(4s),./2C9(.),./7>(4s),./2C9(.),./7>(4),3@ADcK(.S),./7>(4sCS#N(.=xM(43GcR(.SA8TR(43GsS(.SA9cR&5tSA&/DA/CD:N;D:N"9
 ' ()t?S3 T3 >"OL M  '(d/R S5.5* <.d/J" K": ?O4$')(+)(+V 01t'))  ( & 
1
1*2( 67T')")"8 2$aV1vrl!CD(HI J E   &'TQ@ R@ &'w+8++-9auF&F& '(d/R S +-BC7+8++-9atE)E)8 	, 	, ! !, ) )  ( (&( R!#!#L? R!#!#L? 1aBFFA"6"$%%"4"4_a"H"J KJ KJ 89I	 J	 #%56D'S22> %&DP Q2? 8$i1J	1J@ L$i1J	1JB =$i1,	1,D% ) )"- HO8)8)> ! O	-)	-)@-   $%4+8++-9auF)&F)&X +-EF"/;E;E: C F 
0
0= C
=  & 74 4*. 3;;T*J+.;;V*L*N O(O(	
-2C(% 3$fb./ &y"#$ %1vj"8:$egt}#$""
#4 ,- --2428$8V $ $%W5; 6; W!!> *+7+8++-9atEE& ()9 : %&g6 7 '(8 94 ./w? @ %&g6
 7
 #$G?? @?.8,0.1%/ ) ) 6 6
* c3Z0E4=1@ 2 1@2" +,G+8++-9atE3E32- 2 2*C 	/1 /0@5 A5)8& +,UBKwW7 X7!:H## 3	UB DE	Wb"FG	UWsBi)MN	UWsBi)MN	E+	K	M	EC8	K	M	Ir#KL
6 
$
$'0(&C4 ?#E2;gN O =/%GL% M%*1(-.MO 	SYY  !	399../
(E!H	syy223
L	)				 
))

6
"BII$4$4V$<	=		!	!	#
 
YRYYr]""6*BIINN1a,CD1
1
GK*+$!%
7, #;#=> ? =/t?K; L;N ($ D%=1 2 <.d/tT6 U6 +,$g"", 9* *B Sz"; #;$ IJ K ;="	3 9G G 9H H!
LC	F%89 
26
B	C?? %  ?#_M- N-&*--    
 
 &= 
'	-;8H3. 9J J6B	.
 3	qcU]B/1NO	qcU]B/1NO	qcU\2.0LM	qcU\2.0LM	qcUWbM+BC	aS"AB	qcU]QF3	@	B	qcU]QF3	@	B	qcU\Aq62	?	A	qcU\Aq62	?	A	qcUWq!f-	:	<	qcUX1v.	;	=#6 (')('
N	 He#45He#45 6 6G4 	'&'&& 7:  : $ $ 7 7
	9A::D $%4wG	 H	)& t}5t}5B 6 6B0
5M!;HF$ 34GQU+8++-9auF2F2&;(( & %&g+8++-9auF,F,,
3G+0D	!. %&DHP IP"*(Z$NN=<=6F,D> ( () )"02$
6.161.%	1?? ,!45/ 6 -/$ > > 9) )1174 =3N3N "74%)%5 #' "79D"E F9M FM-L (K )K&  5 :;) <)
69
9999
9 :;7K L
!
6 
Hhoo! ++('99/"2(8O 9O O+\  (  $58(<!=>* ?**:5"
4.$*1$h@.0 	 	 %&g6B 7BD
((M% *+W+8++-9atE!E!H 95 5 - -2:; 7B& 34IF2 G2 *-& . &R RaJ&S3+;+;+H+HG+S<  $	$NK C  C !; !;H #< #<L ./+8++-9atE!E!:92x@2 6 6?
?+*'"7&%{} I|W"7s   4BqbBq
