
    o[weE                     v   d Z ddlmZ ddlmZ ddlZddlZddlmZ ddl	m
Z
 ddlmc mZ ddlZddlmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#  ej$        d	          Z% ej$        d
          Z&ej'        d             Z(ej'        d             Z)ej'        d             Z* G d d          Z+dS )z Test cases for Series.plot     )datetime)chainN)is_platform_linux)np_version_gte1p24)	DataFrameSeries
date_rangeplotting)_check_ax_scales_check_axes_shape_check_colors_check_grid_settings_check_has_errorbars_check_legend_labels_check_plot_works_check_text_labels_check_ticks_props_unpack_cycler
get_y_axis
matplotlibzmatplotlib.pyplotc                  ,    t          j        d          S )Ntsname)tmmakeTimeSeries     Alib/python3.11/site-packages/pandas/tests/plotting/test_series.pyr   r   &   s    $''''r   c                  ,    t          j        d          S )Nseriesr   )r   makeStringSeriesr   r   r   r!   r!   +   s    H----r   c                  ,    t          j        d          S )Niseriesr   )r   makePeriodSeriesr   r   r   r$   r$   0   s    I....r   c                      e Zd Zej        j        ej                            dddiddig          d                         Zej        j        d             Zej        j        ej                            dd	d
iddigdd
iddigdd
idddgg          d                         Z	ej        j        d             Z
ej        j        d             Zd Zej                            dddd ej        dej                  ddg          d             Zd Zd Zej                            di d d!id d"ig          d#             Zd$ Zd% Zej                            di d&d
ig          d'             Zd( Zd) Zd* Zd+ Zd, Zd- Zd. Zd/ Zd0 Zd1 Z d2 Z!ej                            d3d4 e"j#        d56          g          d7             Z$d8 Z%d9 Z&ej        '                    e(o	 e)            d:d;          ej                            d<d=d>g          d?                         Z*ej        '                    e(o	 e)            d:d;          ej                            d@g dAg dBg          dC                         Z+dD Z,dE Z-dF Z.dG Z/dH Z0dI Z1dJ Z2dK Z3dL Z4dM Z5dN Z6dO Z7dP Z8dQ Z9dR Z:dS Z;dT Z<dU Z=dV Z>ej                            dWdXdYg          dZ             Z?d[ Z@ej                            d\d]d^gd4d^gd4 eAjB        d^          gd_ eAjC        d`dad^          gg          db             ZDdc ZEdd ZFde ZGej        '                    dfg          dh             ZHej                            deIjJ        jK        eIjJ        jL        z             di             ZMej                            deIjJ        jK        eIjJ        jL        z             dj             ZNej                            deIjJ        jK                  dk             ZOej                            deIjJ        jK                  dl             ZPej                            deIjJ        jK                  dm             ZQdn ZRdo ZSdp ZTej        j        ej                            dddg          ej                            dq eU eAjV        eAjW        X                    dr          Y                    ds                               eAjV        eAjW        X                    dr          Y                    ds                     eZ eAjV        eAjW        X                    dr          Y                    ds                               e[ eAjV        eAjW        X                    dr          Y                    dt                    dudvgw          g          dx                                     Z\ej        j        dy             Z]ej        j        ej                            dq eU eAjV        eAjW        X                    dr          Y                    dz                               e[ eAjV        eAjW        X                    dr          Y                    d{                    dudvgw          g          d|                         Z^ej        j        d}             Z_ej        j        d~             Z`ej        j        d             Zaej        j        d             Zbej        j        d             Zcej                            dg d          d             Zdd Zed Zfd Zgd Zhd Zid Zjd Zkej        '                    dg          d             Zlej                            dddg          d             Zmd Znd Zoej                            dg dg dfg dg dfg          d             Zpd Zqej                            dg d          ej                            dg d          d                         Zrej                            d3 esjt        ddrd           esju        d           esju        dr          gg          d             Zvd Zwej        j        d             Zxd4S )TestSeriesPlotskwargslabelfoo	use_indexFc                 *    t          |j        fi | d S Nr   plot)selfr   r(   s      r   	test_plotzTestSeriesPlots.test_plot6   s"     	"',,V,,,,,r   c                 T    t          |j        d          }t          |d           d S )Nr   )rotxrot)r   r/   r   )r0   r   axess      r   test_plot_tick_propsz$TestSeriesPlots.test_plot_tick_props;   s/     a0004a((((((r   zscale, exp_scalelogyTyaxisloglogxxaxisloglog)r<   r9   c                 H    t          |j        fddi|}t          |fi | d S )Nstyle.)r   r/   r   )r0   r   scale	exp_scaleaxs        r   test_plot_scalesz TestSeriesPlots.test_plot_scales@   s<     rw;;c;U;;))y)))))r   c                 H    t          |d d         j        j                   d S N
   )r   r/   barr0   r   s     r   test_plot_ts_barz TestSeriesPlots.test_plot_ts_barM   s#    "SbS',*+++++r   c                 <    t          |j        j        d           d S )NFstacked)r   r/   arearI   s     r   test_plot_ts_area_stackedz)TestSeriesPlots.test_plot_ts_area_stackedQ   s    "',666666r   c                 .    t          |j                   d S r-   r.   )r0   r$   s     r   test_plot_iseriesz!TestSeriesPlots.test_plot_iseriesU   s    ','''''r   kindlinerH   barhkde)markshistboxc                 B    t          |d d         j        |           d S )N   rR   r.   )r0   r!   rR   s      r   test_plot_series_kindsz&TestSeriesPlots.test_plot_series_kindsX   s'     	&!*/555555r   c                 H    t          |d d         j        j                   d S rF   )r   r/   rT   r0   r!   s     r   test_plot_series_barhz%TestSeriesPlots.test_plot_series_barhf   s$    &"+*/00000r   c                     t          t          t          j                            d                              d                    j        j        d          }t          |j	        d         gdg           d S )N   rG   blackcolorr   
facecolors)
r   r   nprandomdefault_rngstandard_normalr/   rH   r   patches)r0   rC   s     r   test_plot_series_bar_axz'TestSeriesPlots.test_plot_series_bar_axi   sm    29((++;;B??@@EIQX
 
 
 	rz!}o7)<<<<<<r   layout)   )ro   rn   c                 R    t          |j        fddi|}t          |dd           d S )NsubplotsTro   ro   ro   )axes_numrm   )r   r/   r   )r0   r   r(   rC   s       r   test_plot_6951zTestSeriesPlots.test_plot_6951o   s;     rw@@@@@"q888888r   c                     t           j                                        \  }}|                    dd|          }t	          |j        d           t          |ddd           d S )NTest)      )titlefigsizerC   ro   rr   )rs   rm   rz   )mplpyplotrq   r/   r   ry   r   )r0   r!   _rC   s       r   test_plot_figsize_and_titlez+TestSeriesPlots.test_plot_figsize_and_titleu   s_    
##%%2[[vw2[>>28V,,,"qIIIIIIr   c                     d}t           j        j        |         }t           j                                        \  }}t	          g d                              |           |t           j        j        |         k    sJ d S )Nzaxes.prop_cyclero   ra      rC   )r{   r|   rcParamsrq   r   r/   )r0   keycolorsr}   rC   s        r   test_dont_modify_rcParamsz)TestSeriesPlots.test_dont_modify_rcParams|   sq    $S)
##%%2yyy"%%%,S1111111r   secondary_yc                 t   t           j                                        \  }} |j        dd|i|}|                                \  }}|                                }||d                             d          d         d         k    sJ ||d                             d          d         d         k    sJ d S )NrC   r   Forigrn   r   )r{   r|   rq   r/   get_xlim	get_linesget_data)r0   r   r(   r}   rC   xminxmaxliness           r   test_ts_line_limz TestSeriesPlots.test_ts_line_lim   s    
##%%2RW%%%f%%[[]]
duQx((e(44Q7:::::uQx((e(44Q7;;;;;;;r   c                 p   t           j                                        \  }}|j                            d|          }|                                \  }}|                                d                             d          d         }||d         k    sJ ||d         k    sJ t          |d           d S )NF)rM   rC   r   r   rn   r4   	r{   r|   rq   r/   rN   r   r   r   r   r0   r   r}   rC   r   r   rS   s          r   test_ts_area_limz TestSeriesPlots.test_ts_area_lim   s    
##%%2W\\%B\//[[]]
d||~~a ))u)55a8tAwtBx2A&&&&&&r   c                 r   t           j                                        \  }}|j                            dd|          }|                                \  }}|                                d                             d          d         }||d         k    sJ ||d         k    sJ t          |d           d S )	NFTrM   x_compatrC   r   r   rn      r4   r   r   s          r   test_ts_area_lim_xcompatz(TestSeriesPlots.test_ts_area_lim_xcompat   s    
##%%2W\\%$2\>>[[]]
d||~~a ))u)55a8tAwtBx2B''''''r   c                    |                                 }|                    d                              d          |_        t          j                                        \  }}|j                            dd|          }|	                                \  }}|
                                d                             d          d         }||d         k    sJ ||d         k    sJ t          |d	           d S )
NGMTCETFTr   r   r   rn   r4   copytz_localize
tz_convertindexr{   r|   rq   r/   rN   r   r   r   r   r0   r   tz_tsr}   rC   r   r   rS   s           r   test_ts_tz_area_lim_xcompatz+TestSeriesPlots.test_ts_tz_area_lim_xcompat   s    		''..99%@@
##%%2Z__UTb_AA[[]]
d||~~a ))u)55a8tAwtBx2A&&&&&&r   c                    |                                 }|                    d                              d          |_        t          j                                        \  }}|j                            dd|          }|	                                \  }}|
                                d                             d          d         }||d         k    sJ ||d         k    sJ t          |d	           d S )
Nr   r   FT)rM   r   rC   r   r   rn   r4   r   r   s           r   'test_ts_tz_area_lim_xcompat_secondary_yz7TestSeriesPlots.test_ts_tz_area_lim_xcompat_secondary_y   s    		''..99%@@
##%%2Z__U_DD[[]]
d||~~a ))u)55a8tAwtBx2A&&&&&&r   c                    t           j                            ddd          \  }\  }}t          |                              |d           t          |                              |d           t          |                              ||          sJ t          |                              ||          sJ t                              |           d S )Nro   ra   T)shareyrN   )rC   rR   )	r{   r|   rq   absr/   r   joinedpltclose)r0   r   figax1ax2s        r   test_area_sharey_dont_overwritez/TestSeriesPlots.test_area_sharey_dont_overwrite   s    *--a4-@@Zc3B&)))B&)))#%%c3/////#%%c3/////		#r   c                     t          ddg          }t          j                                        \  }}|                    dd|          }t          |dg           t          j                            d           d S )Nro   ra   LABELT)r)   legendrC   labelsallr   r{   r|   rq   r/   r   r   r0   sr}   rC   s       r   
test_labelzTestSeriesPlots.test_label   sp    Aq6NN
##%%2VV'$2V66R	2222
r   c                     t          ddg          }t          j                                        \  }}|                    d|          }t          |dg           t          j                            d           d S )Nro   ra   Tr   rC    r   r   r   r   s       r   test_label_nonezTestSeriesPlots.test_label_none   sn    Aq6NN
##%%2VV4BV''R----
r   c                     t          ddgd          }t          j                                        \  }}|                    d|          }t          |dg           t          j                            d           d S )	Nro   ra   NAMEr   Tr   r   r   r   r   s       r   test_label_ser_namez#TestSeriesPlots.test_label_ser_name   su    Aq6'''
##%%2VV4BV''R1111
r   c                     t          ddgd          }t          j                                        \  }}|                    dd|          }t          |dg           t          j                            d	           d S )
Nro   ra   r   r   Tr   r   r)   rC   r   r   r   r   s       r   test_label_ser_name_overridez,TestSeriesPlots.test_label_ser_name_override   sw    Aq6'''
##%%2VV4w2V66R	2222
r   c                 T   t          ddgd          }t          j                                        \  }}|                    dd|          }|                                J |                                 t          |dg           t          j                            d	           d S )
Nro   ra   r   r   Fr   r   r   r   )	r   r{   r|   rq   r/   
get_legendr   r   r   r   s       r   &test_label_ser_name_override_dont_drawz6TestSeriesPlots.test_label_ser_name_override_dont_draw   s    Aq6'''
##%%2VV5BV77}}&&&
		R	2222
r   c                     t          g d          }t          |j        d           d}t          j        t
          |          5  t          |j                   d d d            d S # 1 swxY w Y   d S )N)FFTT)include_boolno numeric data to plotmatch)r   r   r/   pytestraises	TypeError)r0   r   msgs      r   test_booleanzTestSeriesPlots.test_boolean   s    '''((!&t4444']9C000 	& 	&af%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A''A+.A+r   N   )kc                    ddt           j        dg}t          ||          }t          |j                  }|j        d                                         }t          j        g dt           j                  }t          j
        t          j        |j        d          |           t          j
        |j        t          j        g d                     t          j        g d	t           j                  }t          |j        d
          }t          j
        |j        d                                         |           t          |j        j                  }t          j
        |j        d                                         |           t          |j        j        d          }t          j
        |j        d                                         |           d S )Nro   ra   r   r   r   r   dtype)FFTF)ro   ra   r   r   TrL   F)rg   nanr   r   r/   r   	get_ydataarrayfloat64r   assert_numpy_array_equaldeletedatamaskrN   )r0   r   valuesdrC   maskedexpexpecteds           r   test_line_area_nan_seriesz)TestSeriesPlots.test_line_area_nan_series   su   Q"6'''qv&&!&&((hyyy
333
#BIfk1$=$=sCCC
#FK:U:U:U1V1VWWW8LLL
;;;qvt444
#BHQK$9$9$;$;XFFFqv{++
#BHQK$9$9$;$;XFFFqv{E:::
#BHQK$9$9$;$;XFFFFFr   c                     t          g dg d          }d|j        _        t          j                                        \  }}|                    d|          }|                                }|dk    sJ d S Nr   abcr   z	The IndexFr+   rC   r   )r   r   r   r{   r|   rq   r/   
get_xlabel)r0   r   r}   rC   r)   s        r   test_line_use_index_falsez)TestSeriesPlots.test_line_use_index_false  so    999OOO444"
##%%2VVeV++{{{{{{r   c                     t          g dg d          }d|j        _        t          j                                        \  }}|j                            d|          }|                                }|dk    sJ d S r   )	r   r   r   r{   r|   rq   r/   rH   r   )r0   r   r}   rC   r   label2s         r   "test_line_use_index_false_diff_varz2TestSeriesPlots.test_line_use_index_false_diff_var  ss    999OOO444"
##%%2fjj5Rj00!!||||||r   zWeird rounding problems)reasonstrictz
axis, meth)r9   rH   )r<   rT   c                 <   t          j        g d          }t          j                                        \  }} t          t          ddg          j        |          d|          }t          j	        t          ||          
                                |           d S )N)皙?      ?      $@g      Y@g     @@g     @   i  T)r:   rC   )rg   r   r{   r|   rq   getattrr   r/   r   r   get_ticklocs)r0   axismethr   r}   rC   s         r   test_bar_logzTestSeriesPlots.test_bar_log  s     8;;;<<
##%%23WVS#J'',d33DDD
#GB$5$5$B$B$D$DhOOOOOr   zaxis, kind, res_meth)r9   rH   get_ylim)r<   rT   r   c                    t          j        g d          }t          j                                        \  }}t          g d                              d||          }d}d} t          ||                      }	t          j	        |	d         |           t          j	        |	d         |           t          j
        t          ||                                          |           d S )	N)gh㈵>g-C6?MbP?{Gz?r   r   r   )r   r  r  T)r:   rR   rC   g!,NJ?gЄ-??r   ro   )rg   r   r{   r|   rq   r   r/   r   r   assert_almost_equalr   r   )
r0   r   rR   res_methr   r}   rC   yminymaxress
             r   test_bar_log_kind_barz%TestSeriesPlots.test_bar_log_kind_bar!  s     8DDDEE
##%%2&&&'',,DR,HH$"#gb(##%%
s1vt,,,
s1vt,,,
#GB$5$5$B$B$D$DhOOOOOr   c                     t          g dg d          }t          j                                        \  }}|j                            d|          }t          |                                g d           d S )Nro   ra   r   r   r   r   r   r   r   Fr   )0123)r   r{   r|   rq   r/   rH   r   get_xticklabels)r0   dfr}   rC   s       r   test_bar_ignore_indexz%TestSeriesPlots.test_bar_ignore_index7  sv    LLL(<(<(<===
##%%2W[[5R[002--//1E1E1EFFFFFr   c                     t          g d          }|j                            g d          }d |j        D             }g d}||k    sJ d S )Nr
  )redbluer  r  rc   c                 6    g | ]}|                                 S r   )get_facecolor).0ps     r   
<listcomp>z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>@  s"    888!//##888r   )r           r  r   r  r  r   r   r  r  )r   r/   rH   rk   )r0   r   rC   resultr   s        r   test_bar_user_colorsz$TestSeriesPlots.test_bar_user_colors=  sn    <<<  VZZ<<<Z==88RZ888
 
 
 !!!!!!r   c                    t          t          j                            d                              d                    }t
          j                                        \  }}|                    |          }t          |d           d S )Nra   rZ   rZ   r   r   r4   
r   rg   rh   ri   rj   r{   r|   rq   r/   r   r0   r  r}   rC   r6   s        r   test_rotation_defaultz%TestSeriesPlots.test_rotation_defaultI  sn    ry,,Q//??GGHH
##%%2ww"w~~4a((((((r   c                    t          t          j                            d                              d                    }t
          j                                        \  }}|                    d|          }t          |d           d S )Nra   r!  r   )r3   rC   r4   r"  r#  s        r   test_rotation_30z TestSeriesPlots.test_rotation_30P  sr    ry,,Q//??GGHH
##%%2ww2"w%%4b))))))r   c                 (   ddl m} t          dd          }|g d         }t          t          j                            d                              t          |                    |          }t          j
                                        \  }}|                    |          }|                    t          dd	d	          d
|          }|                    dd           ||                                d         k    sJ t#          |d           d S )Nr   )DatetimeConverter1/1/2000z3/1/2000)	r   ro   ra   r   rZ   	   rG         ra   r   i  ro   r   z1/1/19991/1/2001r   r4   )%pandas.plotting._matplotlib.converterr(  r	   r   rg   rh   ri   rj   lenr{   r|   rq   r/   convertr   set_xlimr   r   )r0   r(  rngserr}   rC   xps          r   test_irregular_datetimez'TestSeriesPlots.test_irregular_datetimeV  s    KKKKKKZ000001RY**1--==c#hhGGMM
##%%2XXX__&&xa';';RDD
J
+++R[[]]1%%%%%2B''''''r   c           
         t          ddt          j        ddddgddddt          j        ddg          }t          j                                        \  }}|                    |	          }|                                \  }}|                                }|t          j	        |d
         
                    d          d
                   k    sJ |t          j        |d
         
                    d          d
                   k    sJ d S )Nr  r   g      @g      @g      @g      @g       @r   r   r   Fr   )r   rg   r   r{   r|   rq   r/   r   r   nanminr   nanmax)r0   r3  r}   rC   r   r   r   s          r   test_unsorted_index_xlimz(TestSeriesPlots.test_unsorted_index_xlimc  s    #rvsCc2S#rvsC8
 
 
 
##%%2XXX__[[]]
dryq!2!2!2!>!>q!ABBBBBBryq!2!2!2!>!>q!ABBBBBBBBr   c                 *   t          t          j                            d                              dd          g dd          }t          |j        j                  }t          |j	        |j
                   |                                dk    sJ d S )Nra   ro   rZ   r   r   r   r   eYLABELr   r   )r   rg   rh   ri   integersr   r/   pier   textsr   
get_ylabelr0   r!   rC   s      r   test_pie_serieszTestSeriesPlots.test_pie_serieso  s     I!!!$$--a33+++
 
 

 v{//28V\222}}(******r   c                     t          t          j                            d                              dd          g dd          }t          |j        j        d           }t          |j	        dgdz             d S )	Nra   ro   rZ   r;  r=  r>  r   r   )
r   rg   rh   ri   r?  r   r/   r@  r   rA  rC  s      r   test_pie_series_no_labelz(TestSeriesPlots.test_pie_series_no_label{  s{    I!!!$$--a33+++
 
 

 v{t<<<28bTAX.....r   c                    t          t          j                            d                              dd          g dd          }g d}t          |j        j        |          }g d	}t          |j	        |
           d S )Nra   ro   rZ   r;  r=  r>  )rgr   r   )rH  rI  r   rH  rI  re   )
r   rg   rh   ri   r?  r   r/   r@  r   rk   )r0   r!   
color_argsrC   color_expecteds        r   )test_pie_series_less_colors_than_elementsz9TestSeriesPlots.test_pie_series_less_colors_than_elements  s    I!!!$$--a33+++
 
 

 %__
v{zBBB222bj^<<<<<<r   c                 .   t          t          j                            d                              dd          g dd          }g d}g d}t          |j        j        ||	          }t          |j	        |           t          |j        |
           d S )Nra   ro   rZ   r;  r=  r>  )ABCDErH  rI  r   r   m)r   r   re   )r   rg   rh   ri   r?  r   r/   r@  r   rA  r   rk   )r0   r!   r   rK  rC   s        r   !test_pie_series_labels_and_colorsz1TestSeriesPlots.test_pie_series_labels_and_colors  s    I!!!$$--a33+++
 
 
 +**...
v{vjQQQ28V,,,bjZ888888r   c                    t          t          j                            d                              dd          g dd          }g d}t          |j        j        |dd	
          }d |j        |	                                z  D             }t          t          j        t          |j        |                              }t          |j        |           |j        D ]}|                                d	k    sJ d S )Nra   ro   rZ   r;  r=  r>  rT  z%.2f   )r   autopctfontsizec                     g | ]	}|d z  d
S )d   z.2fr   )r  r   s     r   r  zHTestSeriesPlots.test_pie_series_autopct_and_fontsize.<locals>.<listcomp>  s     EEE11S5EEEr   )r   rg   rh   ri   r?  r   r/   r@  r   sumlistr   from_iterablezipr   r   rA  get_fontsize)r0   r!   rK  rC   pctsexpected_textsts          r   $test_pie_series_autopct_and_fontsizez4TestSeriesPlots.test_pie_series_autopct_and_fontsize  s   I!!!$$--a33+++
 
 

 /..
KOJ
 
 
 FE

(DEEEe1#flD2I2IJJKK28^444 	) 	)A>>##q(((((	) 	)r   c                     t          g dg d          }t          j        t          d          5  |j                                         d d d            d S # 1 swxY w Y   d S )N)ro   ra   r   r   rn   r;  r   z&pie plot doesn't allow negative valuesr   )r   r   r   
ValueErrorr/   r@  r^   s     r   test_pie_series_negative_raisesz/TestSeriesPlots.test_pie_series_negative_raises  s    (((0I0I0IJJJ]:-UVVV 	 	KOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     t          ddt          j        dgg dd          }t          |j        j                  }t          |j        g d           d S )Nro   ra   r   r  r=  r>  )r   r   r   r   )r   rg   r   r   r/   r@  r   rA  rC  s      r   test_pie_series_nanz#TestSeriesPlots.test_pie_series_nan  sX    Arvq)1E1E1EHUUUv{//28%8%8%899999r   c                     t          dt          j        ddg          }t          j                                        \  }}|j                            d|          }g d}d |j        D             }||k    sJ d S )Nro   Tr   )r  r   r  r  c                 6    g | ]}|                                 S r   )get_text)r  xs     r   r  z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>  s     1111!**,,111r   )	r   rg   r   r{   r|   rq   r/   r@  rA  )r0   r   r}   rC   r   r  s         r   test_pie_nanzTestSeriesPlots.test_pie_nan  s    Arvq!$%%
##%%2VZZtZ++&&&11111!!!!!!r   c                    t          t          j                            d                              d          t          d                    }t          t          j                            d                              d          d          }t          j        	                                \  }}|
                    |          }|
                    d	d	|
           t          |g d           |                                                                sJ |j                                                                        sJ d S )Nra   r   r   abccolumnsr   rn  r   r   Tr   r   rC   r   r   r   	x (right)r   r   rg   rh   ri   rj   r^  r   r{   r|   rq   r/   r   	get_yaxisget_visibleright_axr0   r  r   r}   rC   s        r   test_df_series_secondary_legendz/TestSeriesPlots.test_df_series_secondary_legend  s   I!!!$$44W==tE{{
 
 
 29((++;;B??cJJJ 
##%%2WWW^^	d444 	R(D(D(DEEEE||~~))+++++{$$&&224444444r   c                    t          t          j                            d                              d          t          d                    }t          t          j                            d                              d          d          }t          j        	                                \  }}|
                    |          }|
                    |d	d	
           t          |g d           |                                                                sJ |j                                                                        sJ d S )Nra   rq  rr  rs  r   rn  r   r   TrC   r   r   rv  r   rx  r|  s        r   )test_df_series_secondary_legend_with_axesz9TestSeriesPlots.test_df_series_secondary_legend_with_axes  s   I!!!$$44W==tE{{
 
 
 29((++;;B??cJJJ
##%%2WWW^^	"Tt444 	R(D(D(DEEEE||~~))+++++{$$&&224444444r   c                    t          t          j                            d                              d          t          d                    }t          t          j                            d                              d          d          }t          j        	                                \  }}|
                    d|	          }|
                    dd|
           g d}t          |j        |           |j                                                                        rJ |                                                                sJ d S )Nra   rq  rr  rs  r   rn  r   Tr   rC   ru  z	a (right)z	b (right)z	c (right)rw  r   r   rg   rh   ri   rj   r^  r   r{   r|   rq   r/   r   left_axry  rz  r0   r  r   r}   rC   r   s         r   $test_df_series_secondary_legend_bothz4TestSeriesPlots.test_df_series_secondary_legend_both  s$   I!!!$$44W==tE{{
 
 
 29((++;;B??cJJJ
##%%2WW"W--	d444 HGGRZ9999:''))5577777||~~))+++++++r   c                    t          t          j                            d                              d          t          d                    }t          t          j                            d                              d          d          }t          j        	                                \  }}|
                    d|	          }|
                    |dd
           g d}t          |j        |           |j                                                                        rJ |                                                                sJ d S )Nra   rq  rr  rs  r   rn  r   Tr  r  r  r  r  s         r   .test_df_series_secondary_legend_both_with_axisz>TestSeriesPlots.test_df_series_secondary_legend_both_with_axis  s!   I!!!$$44W==tE{{
 
 
 29((++;;B??cJJJ
##%%2WW"W--	"Tt444 HGGRZ222:''))5577777||~~))+++++++r   c                    t          t          j                            d                              d          t          d                    }t          t          j                            d                              d          d          }t          j        	                                \  }}|
                    dd	|
          }|
                    |dd           g d}t          |j        |           |j                                                                        rJ |                                                                sJ d S )Nra   rq  rr  rs  r   rn  r   TF)r   
mark_rightrC   r  rv  r  r  s         r   0test_df_series_secondary_legend_both_with_axis_2z@TestSeriesPlots.test_df_series_secondary_legend_both_with_axis_2  s"   I!!!$$44W==tE{{
 
 
 29((++;;B??cJJJ
##%%2WW%BW??	"Tt444 0//RZ222:''))5577777||~~))+++++++r   zinput_logy, expected_scale)Tr:   )symsymlogc                    t          t          j                            d                              d                    }t          t          j                            d                              d                    }|                    |          }|                    d|          }|                                |k    sJ |                                |k    sJ d S )Nra   r\  )r8   T)r   r8   )r   rg   rh   ri   rj   r/   
get_yscale)r0   
input_logyexpected_scales1s2r   r   s          r   test_secondary_logyz#TestSeriesPlots.test_secondary_logy  s    
 BI))!,,<<SAABBBI))!,,<<SAABB gg:g&&gg$Zg88~~>1111~~>111111r   c                 b   t          t          j                            d                              d                    }t
          j                                        \  }}d}t          j	        t          |          5  |                    dd|           d d d            d S # 1 swxY w Y   d S )Nra   zCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolr   zk--r   )r?   rd   rC   )r   rg   rh   ri   rj   r{   r|   rq   r   r   rg  r/   )r0   rn  r}   rC   r   s        r   )test_plot_fails_with_dupe_color_and_stylez9TestSeriesPlots.test_plot_fails_with_dupe_color_and_style$  s    29((++;;A>>??
##%%2 	
 ]:S111 	2 	2FFcbF111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   >B$$B(+B(zbw_method, indscott         ?r\  c                 f    t          j        d           t          |j        j        ||           d S )Nscipy	bw_methodind)r   importorskipr   r/   rU   )r0   r   r  r  s       r   test_kde_kwargszTestSeriesPlots.test_kde_kwargs/  s4     	G$$$"'+DDDDDDr   c                     t          j        d           t          j        ddd          }t	          |j        j        d|           d S )Nr  r  r\  r  r  r  )r   r  rg   linspacer   r/   density)r0   r   sample_pointss      r   test_density_kwargsz#TestSeriesPlots.test_density_kwargs<  sE    G$$$D#r22"'/SmLLLLLLr   c                 H   t          j        d           t          j                                        \  }}t          j        ddd          }|j                            dd||          }t          |d	           t          |j                                        d
           d S )Nr  r  r\  r  Tr  )r8   r  r  rC   r:   r9   Density)r   r  r{   r|   rq   rg   r  r/   rU   r   r   r9   	get_label)r0   r   r}   rC   r  s        r   test_kde_kwargs_check_axesz*TestSeriesPlots.test_kde_kwargs_check_axesA  s    G$$$
##%%2D#r22W[[dc}[LL5))))28--//;;;;;r   c                    t          j        d           t          t          j                            d                              d                    }t          j        |d<   t          |j	        j
                  }t          t          j        |j        d                                                              sJ d S )Nr  ra   2   )sizer   )r   r  r   rg   rh   ri   uniformr   r   r/   rU   anyisnanr   	get_xdata)r0   r   r6   s      r   test_kde_missing_valsz%TestSeriesPlots.test_kde_missing_valsI  s    G$$$29((++333<<==v! ,, BHTZ]44667778888888r   zApi changed in 3.6.0)r   c                 `   t           j                                        \  }}|j                            d|          }t          |d           |                                }t          ||j        g           |	                                }t          |dgt          |          z             d S )NT)r8   rC   r:   r  r   )r{   r|   rq   r/   rX   r   r  r   r   get_yticklabelsr/  )r0   r   r}   rC   xlabelsylabelss         r   test_boxplot_seriesz#TestSeriesPlots.test_boxplot_seriesR  s    
##%%2W[[dr[**5))))$$&&7RWI...$$&&7RD3w<<$788888r   c                    t          j        d           t          t          d                    }t          j                                        \  }}|                    ||           t          j                                         d S )Nr  r   rR   rC   )	r   r  r   ranger{   r|   rq   r/   r   r0   rR   r   r}   rC   s        r   test_kind_kwargzTestSeriesPlots.test_kind_kwarg\  so    
 	G$$$588
##%%2	DR   
r   c                    t          j        d           t          t          d                    }t          j                                        \  }} t          |j        |                       t          j        	                                 d S )Nr  r   )
r   r  r   r  r{   r|   rq   r   r/   r   r  s        r   test_kind_attrzTestSeriesPlots.test_kind_attrg  ss    
 	G$$$588
##%%2
r   c                    t          t          d                    }t          j                                        \  }}d}t          j        t          |          5  |                    ||           d d d            d S # 1 swxY w Y   d S )Nabcdr   r   r  )	r   r^  r{   r|   rq   r   r   r   r/   r0   rR   r   r}   rC   r   s         r   test_invalid_plot_dataz&TestSeriesPlots.test_invalid_plot_datar  s    4<<  
##%%2']9C000 	% 	%FFF$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   B  BBc                     t          j        d           t          t          d          t                    }t          |j        |           d S )Nr  rG   r   r[   )r   r  r   r  objectr   r/   )r0   rR   r   s      r   test_valid_object_plotz&TestSeriesPlots.test_valid_object_plotz  sF    G$$$599F+++!&t,,,,,,r   c                    t          g d          }t          j                                        \  }}d}t	          j        t          |          5  |                    ||           d d d            d S # 1 swxY w Y   d S )N)r   r   r   ra   r   r   r  )r   r{   r|   rq   r   r   r   r/   r  s         r    test_partially_invalid_plot_dataz0TestSeriesPlots.test_partially_invalid_plot_data  s    %%%&&
##%%2']9C000 	% 	%FFF$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   A55A9<A9c                     t          ddg          }t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nro   ra   z%invalid_kind is not a valid plot kindr   invalid_kindr[   )r   r   r   rg  r/   r0   r   s     r   test_invalid_kindz!TestSeriesPlots.test_invalid_kind  s    Aq6NN]:-TUUU 	( 	(FFF'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   AAAc                 ,   t          dd          }t          dd          }|                    |          }t          j                            d                              |j                  }t          ||          }t          |j	                   d S )Nz1/1/2009r   periodsz1/2/2009ra   r   )
r	   appendrg   rh   ri   rj   r  r   r   r/   )r0   dr1dr2r   r   r   s         r   test_dup_datetime_index_plotz,TestSeriesPlots.test_dup_datetime_index_plot  s    Q///Q///

3&&q))99%*EE6'''!&!!!!!r   c                 &   t          t          j        d          d          }t          j                            d                              d          }|                    ||          }t          j        d |j        d                                         D                       }|j	        t          j
        d	dg          z  |                                                    d	d          z   }t          j        ||           d
t          |           d}t!          j        t$          |          5  |                    t          j                            d                              d                     d d d            d S # 1 swxY w Y   d S )NrG   rn  r   ra   )ra   rG   )yerrxerrc                 0    g | ]}|j         d d df         S )Nro   )verticesr  is     r   r  z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>  s'    TTTAJqqq!t,TTTr   ro   rn   z?Asymmetrical error bars should be provided with the shape \(2, z\)r   )ra   r+  r  )r   rg   arangerh   ri   r/   vstackcollections	get_pathsTr   to_numpyreshaper   r   r/  r   r   rg  )r0   r   errrC   r  r   r   s          r   test_errorbar_asymmetricalz*TestSeriesPlots.test_errorbar_asymmetrical  s   29R==s+++i##A&&--g66VV3V''TTbnQ6G6Q6Q6S6STTTUUEBHb!W---1E1Eb!1L1LL
#FH5550$'FF0 0 0 	 ]:S111 	B 	BFF	--a0077@@FAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   2AFF
F
r  ra   rG   )rG   ra   rn  yrs  c                     t          t          j        d          d          }t          |j        ||          }t          |dd           d S )NrG   rn  r   )r  rR   r   ro   r  r  )r   rg   r  r   r/   r   )r0   rR   r  r   rC   s        r   test_errorbar_plotz"TestSeriesPlots.test_errorbar_plot  sO     29R==s+++qvDt<<<Raa000000r   c                 $   t          t          j        d          d          }t          j        t          j                            d                              d                    }t          |j        |          }t          |dd           d S )	NrG   rn  r   ra   )r  ro   r   r  )
r   rg   r  r   rh   ri   rj   r   r/   r   )r0   r   s_errrC   s       r   test_errorbar_plot_yerr_0z)TestSeriesPlots.test_errorbar_plot_yerr_0  sx    29R==s+++ry,,Q//??CCDDqvE222Raa000000r   r,  )r,  ra   c                     t          ddd          }t          t          j        d          |d          }||_        t          |j        |          }t          |d	d
           d S )Nr)  r-  M)freqr,  rn  r>  r  r   ro   r  )r	   r   rg   r  r   r   r/   r   )r0   r  ixr   rC   s        r   test_errorbar_plot_tsz%TestSeriesPlots.test_errorbar_plot_ts  sj     
JS999BIbMM#666
rwT222Raa000000r   c                     t          t          j        d          d          }t          j        t
                    5  |                    t          j        d                     d d d            d S # 1 swxY w Y   d S )NrG   rn  r   r+  r  )r   rg   r  r   external_error_raisedrg  r/   r  s     r   %test_errorbar_plot_invalid_yerr_shapez5TestSeriesPlots.test_errorbar_plot_invalid_yerr_shape  s    29R==s+++%j11 	' 	'FF	"F&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   )A33A7:A7c                     t          t          j        d          d          }dgdz  }t          j        t
                    5  |                    |           d d d            d S # 1 swxY w Y   d S )NrG   rn  r   zzzr  )r   rg   r  r   r  r   r/   )r0   r   r  s      r   test_errorbar_plot_invalid_yerrz/TestSeriesPlots.test_errorbar_plot_invalid_yerr  s    29R==s+++"%i00 	 	FFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A''A+.A+c                 2    t          |j        d           d S )NTtabler.   r^   s     r   test_table_truezTestSeriesPlots.test_table_true  s    &+T222222r   c                 2    t          |j        |           d S )Nr  r.   r^   s     r   test_table_selfzTestSeriesPlots.test_table_self  s    &+V444444r   c                     t          j        d           t          t          g d          t          j        j        t          j        j        z              d S )Nr  r   )r   r  r   r   r
   PlotAccessor_series_kinds_common_kinds)r0   s    r   test_series_grid_settingsz)TestSeriesPlots.test_series_grid_settings  sT     	G$$$999!/(2G2UU	
 	
 	
 	
 	
r   r   )rH  r  greenz#FF0000c                     ddl m}  |d|          }||gk    sJ  |d|g          }||gk    sJ  |d|          }||gdz  k    sJ  |d|g          }||gdz  k    sJ d S )Nr   get_standard_colorsro   rc   r   )!pandas.plotting._matplotlib.styler  )r0   r   r  r  s       r   test_standard_colorsz$TestSeriesPlots.test_standard_colors  s    IIIIII$$Qa000!}}}}$$Qqc222!}}}}$$Qa000!q    $$Qqc222!q      r   c                    ddl m} ddlm} |j        D ]b} |d|          }||gk    sJ  |d|g          }||gk    sJ  |d|          }||gdz  k    sJ  |d|g          }||gdz  k    sJ c|j        j        D ]b} |d|          }||gk    sJ  |d|g          }||gk    sJ  |d|          }||gdz  k    sJ  |d|g          }||gdz  k    sJ cd S )Nr   rJ  r  ro   )
num_colorsrd   r   )r   r   r  r  cnamesColorConverter)r0   r   r  r   r  s        r   test_standard_colors_allz(TestSeriesPlots.test_standard_colors_all  s   %%%%%%IIIIII  	% 	%A((AQ???FaS====((AaSAAAFaS====((AQ???FaS1W$$$$((AaSAAAFaS1W$$$$$ &- 	% 	%A((AQ???FaS====((AaSAAAFaS====((AQ???FaS1W$$$$((AaSAAAFaS1W$$$$$	% 	%r   c                    t           j                                        \  }}t          t	          j        d          dz                                 d|          }t          |                                dg           d S )Nr,  ro   r  rd   rC   
linecolors)	r{   r|   rq   r   rg   r  r/   r   r   r0   r}   rC   s      r   test_series_plot_color_kwargsz-TestSeriesPlots.test_series_plot_color_kwargs%  si    
##%%2BIbMMA%&&++'b+AAbllnn';;;;;;r   c                 $   t           j                                        \  }}t          t	          j        d          dz   t          dd                                        d|          }t          |	                                dg           d S )	Nr,  ro   r)  r  r   r  r  r  )
r{   r|   rq   r   rg   r  r	   r/   r   r   r  s      r   "test_time_series_plot_color_kwargsz2TestSeriesPlots.test_time_series_plot_color_kwargs+  s    
##%%2BIbMMA%Z
B-O-O-OPPPUUb V 
 
 	bllnn';;;;;;r   c                    dd l }t          |j                  }t          dd          }t	          t          j        dd          |          }d}|j                                        \  }}t          |          D ]}|
                    |	          }t          |                                |d |         
           d S )Nr   r)  r,  r  ro      r   r   r   r  )r   r   r   r	   r   rg   r  r|   rq   r  r/   r   r   )	r0   r{   
def_colorsr   r   ncolorsr}   rC   r  s	            r   -test_time_series_plot_color_with_empty_kwargsz=TestSeriesPlots.test_time_series_plot_color_with_empty_kwargs3  s        #CL11
:r22229Q##5111
##%%2w 	 	A2BBbllnnHWH1EFFFFFFr   c                 J   t          t          j        d          d t          d          D                       }t          j                                        \  }}|                    g d|          }d dD             }t          |	                                |           d S )NrG   c                     g | ]}d |d	S P02dr   r  s     r   r  z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>C  s     (H(H(HQ(H(H(Hr   r   )r   r   rZ   r*  )xticksrC   c                     g | ]}d |d	S r  r   r  s     r   r  z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>F  s     111q{1{{{111r   )
r   rg   r  r  r{   r|   rq   r/   r   r  )r0   r   r}   rC   r   s        r   test_xticklabelsz TestSeriesPlots.test_xticklabelsA  s    29R==(H(HeBii(H(H(HIII
##%%2VV<<<BV//11L1112--//55555r   c           	      r   t          t          d          d t          d          D                       }|j                            t          ddd                    }t	          j        t          t          ddd                              }t          j        ||	                                           d S )NrG   c                     g | ]}d |d	S r  r   r  s     r   r  z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>K  s     $D$D$DQ[[[[$D$D$Dr   r   r   r+  ra   )r   )
r   r  r/   rH   rg   r   r^  r   r   
get_xticks)r0   r   rC   r   s       r   test_xtick_barPlotz"TestSeriesPlots.test_xtick_barPlotI  s    599$D$D%))$D$D$DEEEVZZuQAZ//htE!ROO,,--
#C99999r   c           
          ddl m} t          t          dd          t	          j        dd |dg          	          
          }t          |j                   d S )Nr   )CustomBusinessDayr\  y   z
2014-05-01z
2014-06-01z
2014-05-26)holidays)startendr  r   )pandas.tseries.offsetsr(  r   r  pdbdate_ranger   r/   )r0   r(  r   s      r   test_custom_business_day_freqz-TestSeriesPlots.test_custom_business_day_freqP  sx    <<<<<<#sOO." &&???  
 
 
 	!&!!!!!r   ziGH#24426, see also github.com/pandas-dev/pandas/commit/ef1bd69fa42bbed5d09dd17f08c44fc8bfc2b685#r61470674c                    t          g d          }t          j                                        \  }}|                    |          }|j                                        }|                    ddgd           t          j                                        \  }}|j                                        }t          j	        ||           d S )Nr
  r   r   ro   T)inplace)
r   r{   r|   rq   r/   r<   r   dropr   r   )r0   r3  r}   rC   beforeafters         r   %test_plot_accessor_updates_on_inplacez5TestSeriesPlots.test_plot_accessor_updates_on_inplace_  s     \\\""
##%%2XXX__&&((!Q&&&
##%%2%%''
#FE22222r   rN   c                     t          ddg          }t          j                                        \  }}|                    ||           |                                }|d         dk     sJ |d         dk    sJ d S )Nra   r   r  r   ro   )r   r{   r|   rq   r/   r   )r0   rR   r   r}   rC   xlimss         r   test_plot_xlim_for_seriesz)TestSeriesPlots.test_plot_xlim_for_serieso  ss     Aq6NN
##%%2	DR   Qx!||||Qx!||||||r   c                    t          t                    }|j        sJ |                                }t	          |                                          dk    sJ |                                d         }t	          |                                          dk    sJ t	          |                                          dk    sJ d S )Nr   ro   r   )r   intemptyr/   r/  r   r  r   )r0   r  rC   rS   s       r   test_plot_no_rowsz!TestSeriesPlots.test_plot_no_rows{  s    #xWWYY2<<>>""a''''||~~a 4>>##$$))))4>>##$$))))))r   c                     t          g d          }t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   r   r   )r   r   r   r   r/   )r0   r  s     r   test_plot_no_numeric_dataz)TestSeriesPlots.test_plot_no_numeric_data  s    OOO$$]9,EFFF 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAzdata, indexr
  )r   ra   ro   r   )rG   r  r  r   )iv  i  i  i  c                     t          ||          }|                    d          }|                                }d t          |j        d           D             }||k    sJ d S )N)r   r   rH   r[   c                 @    g | ]}|                                 j        S r   )get_bboxr  )r  patchs     r   r  z3TestSeriesPlots.test_plot_order.<locals>.<listcomp>  s5     
 
 
 NN!
 
 
r   c                 4    |                                  j        S r-   )rB  r   )rC  s    r   <lambda>z1TestSeriesPlots.test_plot_order.<locals>.<lambda>  s    enn>N>N>S r   )r   )r   r/   tolistsortedrk   )r0   r   r   r3  rC   r   r  s          r   test_plot_orderzTestSeriesPlots.test_plot_order  s     $e,,,XX5X!!::<<
 

0S0STTT
 
 
 6!!!!!!r   c                     t          ddg          }|                    dd          }|j        d                                         dk    sJ d S )Nro   ra   r   C3)r?   rd   r   )r   r/   r   	get_color)r0   r   rC   s      r   test_style_single_okz$TestSeriesPlots.test_style_single_ok  sO    Aq6NNVV#TV**x{$$&&$......r   z index_name, old_label, new_label))Nr   new)oldrN  rM  )Nr   r   )rS   rN   rH   rT   rW   c                 X   t          g d          }||j        _        |                    |          }|dk    r5|                                dk    sJ |                                |k    sJ no|dk    r5|                                dk    sJ |                                dk    sJ n4|                                dk    sJ |                                |k    sJ |                    |||          }|                                |k    sJ |                                |k    sJ d S )Nr
  r[   rT   r   rW   	Frequency)rR   ylabelxlabel)r   r   r   r/   r   rB  )r0   rR   
index_name	old_label	new_labelr3  rC   s          r   test_xlabel_ylabel_seriesz)TestSeriesPlots.test_xlabel_ylabel_series  s2    \\\""#	 XX4X  6>>==??b((((==??i/////V^^==??b((((==??k11111==??b((((==??i//// XX4	)XDD}})++++}})++++++r   r   rR  )r+  r  r  ro   )daysc                     d}t          ddg|                              |          }|                                dk    sJ d S )N)r   ro   ro   ra   r   )xlim)r   r/   r   )r0   r   r8  rC   s       r   test_timedelta_indexz$TestSeriesPlots.test_timedelta_index  sO     QF%(((--E-;;{{}}&&&&&&r   c                     t          g d          }|                    d           }t          t          j        j                  d d         }t          |                                |           d S )Nr   rc   ro   r  )r   r/   r   r{   r|   r   r   r   )r0   r!   rC   r   s       r   test_series_none_colorz&TestSeriesPlots.test_series_none_color  sb    			""[[t[$$!#*"566rr:bllnn::::::r   c                     t          j        d          5  |                                }d d d            d S # 1 swxY w Y   d S )NF)r   assert_produces_warningr/   )r0   r   r}   s      r   test_plot_no_warningz$TestSeriesPlots.test_plot_no_warning  s     '.. 	 			A	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   7;;)y__name__
__module____qualname__r   markslowparametrizer1   r7   rD   rJ   rO   rQ   paramtdskip_if_no_scipyr\   r_   rl   rt   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   makeDateIndexr   r   r   xfailr   r   r   r  r  r  r$  r&  r5  r9  rD  rF  rM  rV  re  rh  rj  ro  r}  r  r  r  r  r  r  rg   int_r  r  r  r  r  r  r
   r  r  r   r  r  r  r  r  r  r  r  r   r   rh   ri   rj   r^  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r&  r0  r6  r9  r=  r?  rH  rL  rV  r.  timedelta_range	TimedeltarZ  r\  r_  r   r   r   r'   r'   5   s       [[X%(8;:N'OPP- - QP - [) ) ) [[d^gu-.d^gu-.??@	
 * *  * [, , , [7 7 7( ( ( [FLb&9:::	

 
6 6
 
61 1 1= = = [XXw,?(GAT'UVV9 9 WV9
J J J2 2 2 [X]D,A'BCC< < DC<' ' '( ( (	' 	' 	'	' 	' 	'	 	 	                         & & & [Wt-=R-=-B-B-B&CDDG G EDG$     [20022(   
 [\,<>O+PQQP P RQ P [20022(   
 [	%	%	%'D'D'DE P P	  PG G G
" 
" 
") ) )* * *( ( (
C 
C 
C
+ 
+ 
+/ / /
= 
= 
=9 9 9) ) )   : : :" " "5 5 5"5 5 5 , , ,", , ,", , ," [$}6G&H 
2 
2 
2	2 	2 	2 [bM2J7272;;+"+dC,,-		
 E E EM M M
< < <9 9 9 [4559 9 659 [+h.C.QQ  	  [+h.C.QQ  	  [VX%:%HII% % JI% [VX%:%HII- - JI-
 [VX%:%HII% % JI%( ( (
" " "B B B$ [[Vfe_55[F626")//22BB2FFGGHHBF29((++;;B??@@D	--a00@@DDEEFFIry,,Q//??HHIIc
  		
 1 1  65 1
 [1 1 1 [[F626")//22BB2FFGGHHIry,,Q//??HHIIc
  	
	 	1 1	 	 1 [' ' ' [   [3 3 3 [5 5 5 [
 
 
 [S"B"B"BCC! ! DC!% % %B< < << < <G G G6 6 6: : :" " " [=   
	3 	3 
	3 [Vff%566	 	 76	* * *  
 [\\<<<(7778	
 
" 
" 
"/ / /
 [*BBB  [V%L%L%LMM, , NM	 
,, [BQ<<<R\q!!!<2<Q#7#7#78	
 ' ' '; ; ; [    r   r'   ),__doc__r   	itertoolsr   numpyrg   r   pandas.compatr   pandas.compat.numpyr   pandas.util._test_decoratorsutil_test_decoratorsrg  pandasr.  r   r   r	   r
   pandas._testing_testingr   pandas.tests.plotting.commonr   r   r   r   r   r   r   r   r   r   r   r  r{   r   fixturer   r!   r$   r'   r   r   r   <module>r{     s   " "                  + + + + + + 2 2 2 2 2 2 ) ) ) ) ) ) ) ) )                                               f,''f-.. ( ( ( . . . / / /a a a a a a a a a ar   