U
    f/e                     @   s  d Z ddlmZmZmZmZ ddlZddlZddlZddl	Z	ddl
mZmZ ddlm  mZ ddlmZmZmZmZmZmZ ddlmZ ddlmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$ dd	l%m&Z& dd
l'm(Z( e	j)j*Z+ej,G dd de&Z-dddZ.dS )z< Test cases for time series specific (freq conversion, etc)     )datedatetimetime	timedeltaN)
BaseOffset	to_offset)	DataFrameIndexNaTSeriesisnato_datetime)DatetimeIndexbdate_range
date_range)PeriodPeriodIndexperiod_range)timedelta_range)TestPlotBase)WeekOfMonthc                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zejdddddd d!d"d#gd$d% Zd&d' Zd(d) Zejdddddd d!d"d#gd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Z d@dA Z!dBdC Z"dDdE Z#dFdG Z$dHdI Z%dJdK Z&dLdM Z'dNdO Z(dPdQ Z)dRdS Z*dTdU Z+dVdW Z,dXdY Z-dZd[ Z.d\d] Z/d^d_ Z0e1j2d`da Z3dbdc Z4ddde Z5dfdg Z6dhdi Z7djdk Z8dldm Z9dndo Z:dpdq Z;drds Z<dtdu Z=dvdw Z>dxdy Z?dzd{ Z@d|d} ZAd~d ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXejjYdddd ZZdd Z[dd Z\dS )
TestTSPlotc              	   C   s   t | | ddddddddg| _d	d
 | j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 S )NSTHDWMQAc                 S   s   g | ]}t d |ddqS 
12/31/1999d   freqperiods)r   .0x r)   K/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/plotting/test_datetimelike.py
<listcomp>5   s     z+TestTSPlot.setup_method.<locals>.<listcomp>c                 S   s"   g | ]}t tjt||qS r)   r   nprandomrandnlenr&   r)   r)   r*   r+   6   s     c                 S   s.   g | ]&}t tjt|d |dddgdqS    r   BCindexcolumnsr   r-   r.   r/   r0   r&   r)   r)   r*   r+   7   s   zQ-DECZ1B30Minc                 S   s   g | ]}t d |ddqS r    )r   r&   r)   r)   r*   r+   =   s     c                 S   s"   g | ]}t tjt||qS r)   r,   r&   r)   r)   r*   r+   >   s     c                 S   s.   g | ]&}t tjt|d |dddgdqS r1   r8   r&   r)   r)   r*   r+   ?   s   )r   setup_methodr$   
period_ser	period_dfdatetime_serdatetime_df)selfmethodidxr$   r)   r)   r*   r9   1   s    zTestTSPlot.setup_methodc                 C   s   t   d S N)tmclose)r>   r?   r)   r)   r*   teardown_methodD   s    zTestTSPlot.teardown_methodc              	   C   s   |}t ddd|d}tddg|d}td d t|j | }t| d  }|d j	|d j
fd	ksrt|d
 j	|d
 j
fdkstW 5 Q R X d S )N1/1/2011   r   )r%   r$   tzg     g@g     t@r6   r   r   r   )   r   )r   r   rB   assert_produces_warning_check_plot_worksplotlist	get_lines	get_xdatahourminuteAssertionError)r>   Ztz_aware_fixturerG   r6   tsaxxdatar)   r)   r*   test_ts_plot_with_tzG   s    
zTestTSPlot.test_ts_plot_with_tzc                 C   s`   t tjddtdd}| j \}}|jd|d | |	  D ]}|
 dksFtqFd S )N
   	   rH   rF   ZfontsizerV   )r   r-   r.   r/   rangepltsubplotsrN   get_xticklabelsZget_yticklabelsZget_fontsizerT   )r>   dffigrV   labelr)   r)   r*   test_fontsize_set_correctlyT   s
    z&TestTSPlot.test_fontsize_set_correctlyc                 C   s   t dddd}t|jd d}ttjt|d|d}t|j	 |dd	 
|d
d }ttjt|d|d}t|j	 t dddd}t|jd d}ttjt|d|d}t|j	 d S )N1/1/1987ZMSr"   r#   r$   r2   rH   r   (   -   c   z2008-1-1 00:15:00Z15TrY   )r   r   valuesr   r-   r.   r/   r0   rM   rN   union)r>   r@   r`   df2r)   r)   r*   test_frame_inferred\   s    

zTestTSPlot.test_frame_inferredc                 C   s<   t dddg}t||d}t|j|d t|j|d d S )NrK   rF   r2   rH   )Zxerr)Zyerr)r-   arrayr   rM   rN   )r>   iar)   r)   r*   test_is_error_nozeroindexo   s    z$TestTSPlot.test_is_error_nozeroindexc              	   C   s   t dddd}tdddgdd	dgd
|}| j \}}|j|d t| dksXt| j| d}t	j
t|d |d   W 5 Q R X d S )Nrd   r   r2   r#   r(   yzrK   rF   )r   r3   rV   zno numeric data to plotmatch)r   r   r]   r^   rN   r0   rP   rT   rC   pytestraises	TypeError)r>   r@   r`   ra   rV   msgr)   r)   r*   test_nonnumeric_excludev   s    z"TestTSPlot.test_nonnumeric_excludec                 C   s   | j  \}}t }| jD ]}t|j|d q| jD ]}t|j|d q6| j  \}}|jd|d d}|| d 	 kst
d S )Nrs   kstylerV   )        r~   r~   rK   r   )r]   r^   rB   makeTimeSeriesr:   rM   rN   r<   rP   	get_colorrT   )r>   _rV   rU   scolorr)   r)   r*   test_tsplot   s    

zTestTSPlot.test_tsplotc              	   C   sl   t  }d}tjt|d |jddd W 5 Q R X |jdd}tjt|d |jddd W 5 Q R X d S )NzCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolrt   zb-z#000099)r}   r   T)Zdrop)rB   r   rv   rw   
ValueErrorrN   Zreset_index)r>   rU   ry   r   r)   r)   r*   test_both_style_and_color   s    z$TestTSPlot.test_both_style_and_colorc                 C   sV   ddg}|D ]D}| j  \}}tdd|d}ttjt||}t|j	|d qd S )Nmsus1/1/2012r"   r%   r$   rs   )
r]   r^   r   r   r-   r.   r/   r0   rM   rN   )r>   Zfreaksr$   r   rV   rngserr)   r)   r*   test_high_freq   s    zTestTSPlot.test_high_freqc                 C   sn   ddl m} |d dd kst|dddks0t|tdddtddjksPt|ddtd	djksjtd S )
Nr   )get_datevaluer     r   r   z1987-12rd   z1987-1-1)%pandas.plotting._matplotlib.converterr   rT   r   ordinal)r>   r   r)   r)   r*   test_get_datevalue   s
     zTestTSPlot.test_get_datevaluec                 C   sz   dd }t dtddddd}| j \}}|j|d	 ||d
 t dtddddd}|j|d	 ||d t  d S )Nc                 S   sb   |   d }| d j}| d }z|| ||ks<tW n tk
r\   td Y nX d S )Nr   z:skipping test because issue forming test comparison GH7664)	rP   rQ   r   	get_ydataZformat_coordrT   r   rv   skip)rV   Zexpected_string
first_lineZfirst_xZfirst_yr)   r)   r*   check_format_of_first_point   s    zITestTSPlot.test_ts_plot_format_coord.<locals>.check_format_of_first_pointrK   z
2014-01-01r2   zA-DECr   rH   rs   zt = 2014  y = 1.000000r   zt = 2014-01-01  y = 1.000000)r   r   r]   r^   rN   rB   rC   )r>   r   Zannualr   rV   Zdailyr)   r)   r*   test_ts_plot_format_coord   s    

z$TestTSPlot.test_ts_plot_format_coordc                 C   s    | j D ]}t|j|jj qd S rA   )r:   rM   rN   r6   r$   r>   r   r)   r)   r*   test_line_plot_period_series   s    
z'TestTSPlot.test_line_plot_period_seriesfrqncyZ1SZ3SZ5TZ7HZ4DZ8WZ11MZ3Ac                 C   s:   t d|dd}ttjt||}t|j|jj	j
 d S )Nr!   r"   r#   )r   r   r-   r.   r/   r0   rM   rN   r6   r$   	rule_code)r>   r   r@   r   r)   r)   r*    test_line_plot_period_mlt_series   s    z+TestTSPlot.test_line_plot_period_mlt_seriesc                 C   s"   | j D ]}t|j|jjj qd S rA   )r<   rM   rN   r6   r$   r   r   r)   r)   r*   test_line_plot_datetime_series   s    
z)TestTSPlot.test_line_plot_datetime_seriesc                 C   s    | j D ]}t|j|jj qd S rA   )r;   rM   rN   r6   r$   )r>   r`   r)   r)   r*   test_line_plot_period_frame   s    
z&TestTSPlot.test_line_plot_period_framec                 C   sT   t d|dd}ttjt|d|dddgd}|j|jjj	j}t
|j| d S )	Nr!   r"   r#   r2   r   r3   r4   r5   )r   r   r-   r.   r/   r0   r6   asfreqr$   r   rM   rN   )r>   r   r@   r`   r$   r)   r)   r*   test_line_plot_period_mlt_frame   s    "z*TestTSPlot.test_line_plot_period_mlt_framec                 C   s0   | j D ]$}|j|jjjj}t|j| qd S rA   )r=   r6   	to_periodr$   r   rM   rN   )r>   r`   r$   r)   r)   r*   test_line_plot_datetime_frame   s    
z(TestTSPlot.test_line_plot_datetime_framec                 C   sR   | j D ]F}t|jtt|j}t|j|jj	 |ddddg }t|j qd S )Nr   r2         )
r<   r   ri   r	   r-   Zasarrayr6   rM   rN   Zinferred_freq)r>   r   r)   r)   r*   test_line_plot_inferred_freq   s
    
z'TestTSPlot.test_line_plot_inferred_freqc                 C   sd   | j  \}}tdd}ttt||d}|d d |dd  }|j|d t|dr`t	d S )Nz2001-1-1z	2001-1-10rH   r2   r   rs   r$   )
r]   r^   r   r   r\   r0   appendrN   hasattrrT   )r>   r   rV   r   rU   r)   r)   r*   test_fake_inferred_business   s    
z&TestTSPlot.test_fake_inferred_businessc                 C   sL   t  }t|j t|jd ddd}ttj	t
||d}t|j d S )Nr   ZBQSrY   r#   rH   )rB   r   rM   rN   r   r6   r   r-   r.   r/   r0   )r>   r   drr)   r)   r*   test_plot_offset_freq  s
    
z TestTSPlot.test_plot_offset_freqc                 C   sL   t tdddtdddtdddg}ttjt||d}t|j d S )N  rK   r      rH   )	r	   r   r   r-   r.   r/   r0   rM   rN   )r>   r   r   r)   r)   r*    test_plot_multiple_inferred_freq	  s    &z+TestTSPlot.test_plot_multiple_inferred_freqc                 C   s   dd l m  m  m} tdddd}ttjt	|d|d}| j
 \}}|j|d | }| }| }t||D ]8\}	}
||	d	}t|
 }t	|r|||ks|tq|d S )
Nr   z2012-6-22 21:59:51.960928L  r#   rF   rH   rs   %H:%M:%S.%f)r   plotting_matplotlib	converterr   r   r-   r.   r/   r0   r]   r^   rN   	get_xaxisZget_ticklocsget_ticklabelszipZ_from_ordinalstrftimestrget_textrT   )r>   convr@   r`   r   rV   ZaxisZtlocsZtlabelslocrb   xprsr)   r)   r*   test_uhf  s    zTestTSPlot.test_uhfc           	      C   s$  t dddd}ttjt|d|d}|jddd	d
g }| j \}}|j	|d t
| d  d d df  }d}t|dd  ||d |g dk  st| j \}}| }|jt|_|j	|d t
| d  d d df  }t|dd  | dk  s td S )Nz2012-6-22 21:59:51r   r"   r#   rF   rH   r   rK   r2      rs   g)QΠE>g:0yE>)r   r   r-   r.   r/   r0   ilocr]   r^   rN   r   rP   
get_xydataZdifffabsallrT   copyr6   astypeobject)	r>   r@   r`   irregr   rV   Zdiffssecrk   r)   r)   r*   test_irreg_hf   s    $,$zTestTSPlot.test_irreg_hfc                 C   sp   t  }|ddddg }| j \}}|j|d}|d k	s>tt| d  |j	D ]\}}||ksVtqVd S )Nr   rK   rF      rs   )
rB   r   r]   r^   rN   rT   r   rP   rQ   r6   )r>   r   r   rV   retr   r   r)   r)   r*   "test_irregular_datetime64_repr_bug3  s     z-TestTSPlot.test_irregular_datetime64_repr_bugc                 C   sn   t  }| j \}}|j|d | d  d |jd jksFt	| d 
 }t|djdksjt	d S )Nrs   r   rI   datar3   )rB   ZmakePeriodSeriesr]   r^   rN   rP   r   r6   r   rT   rQ   r   freqstrr>   btsr   rV   r@   r)   r)   r*   test_business_freq?  s    $zTestTSPlot.test_business_freqc                 C   s   t dd}|d}| j \}}|j|d | d  d |j	d j
ksXt| d  }t|djdks|td S )Ni,  ZBMr   rs   r   rI   r   )rB   r   r   r   r]   r^   rN   rP   r   r6   r   rT   rQ   r   r   )r>   r   rU   r   rV   r@   r)   r)   r*   test_business_freq_convertG  s    
$z%TestTSPlot.test_business_freq_convertc              	   C   sl   t  }td|}| j \}}|j|d | d  }d}t	j
t|d t|d W 5 Q R X d S )Nr   rs   r   z)freq not specified and cannot be inferredrt   r   )r   rB   r   r   r]   r^   rN   rP   rQ   rv   rw   r   r   )r>   r$   r   r   rV   r@   ry   r)   r)   r*   test_freq_with_no_period_aliasP  s    z)TestTSPlot.test_freq_with_no_period_aliasc                 C   sf   t ddddtdd }ttd|d}| j \}}|j|d | d	 	 }t
|jrbtd S )
Nz
2012-12-20   r   r      minutesrH   rs   r   )r   r   r   r-   aranger]   r^   rN   rP   rQ   r	   is_normalizedrT   )r>   r@   r`   r   rV   r   r)   r)   r*   test_nonzero_base\  s    zTestTSPlot.test_nonzero_basec                 C   sT   t dt i}| j \}}|j|d | d  }t|j	
 t| d S )Nro   rs   r   )r   rB   r   r]   r^   rN   rP   rQ   assert_index_equalr6   r   r   r   r)   r)   r*   test_dataframee  s
    zTestTSPlot.test_dataframec                    s    fdd}t  } j \}}|j|d ||  j \}}t||d d}|j|d || t||d d}|jdd}|D ]}|| qd S )Nc                    sH  |   }| |d d |d d  |   }|d |d d ksDt|d |d d ks\ttd| jtd| jf}| dd |   }t|d |d jkstt|d |d jksttd| jtd| jf}| tdddtddd |   }t|d |d jkstt|d |d jks0t|  } j	
| d S )	Nr   r   rK   rY   1/1/2000z4/1/2000r   r   )get_xlimset_xlimrT   r   r$   intr   r   
get_figurer]   rC   )rV   Zxlimresultexpectedra   r>   r)   r*   _testm  s"    z*TestTSPlot.test_axis_limits.<locals>._testrs   rK   ro   bT)r^   )rB   r   r]   r^   rN   r   )r>   r   r   r   rV   r`   axesr)   r   r*   test_axis_limitsl  s    zTestTSPlot.test_axis_limitsc                 C   s   dd l m  m  m} |td|jks0t|td|jksHt|td|jks`t|td|j	ksxt|td|j
kst|td|jkstd S )Nr   r3   r   r   r   r   r   )r   r   r   r   Z
get_finderr   Z_daily_finderrT   Z_monthly_finderZ_quarterly_finderZ_annual_finder)r>   r   r)   r)   r*   test_get_finder  s    zTestTSPlot.test_get_finderc                 C   s   dddddddg}t dd	d
jgt|  }}g }g }|D ]}td|d}ttjt||}| j	 \}	}
|j
|
d |
 }|| d  |
 \}}|
|d | || d  | j|
  q:||kst||kstd S )NrY   rf      i  i  i
  '  z1999-1-1r3   re   r%   rs   r   ?)r   r   r0   r   r   r-   r.   r/   r]   r^   rN   r   r   get_majorticklocsr   r   rC   r   rT   )r>   Zday_lstxpl1xpl2rs1rs2nr   r   r   rV   xaxisvminvmaxr)   r)   r*   test_finder_daily  s"    zTestTSPlot.test_finder_dailyc                 C   s   ddg}t djgt|  }}g }g }|D ]}tdt|d dd}ttjt||}| j	
 \}	}
|j|
d |
 }|| d	  |
 \}}|
|d
 | || d	  | j	|
  q,||kst||kstd S )Ng      @r   1988Q11987Q2r   r   r   rs   r   r   r   r   r0   r   r   r   r-   r.   r/   r]   r^   rN   r   r   r   r   r   rC   r   rT   r>   Zyrsr   r   r   r   r   r   r   r   rV   r   r   r   r)   r)   r*   test_finder_quarterly  s"    z TestTSPlot.test_finder_quarterlyc                 C   s   ddddg}t djgt|  }}g }g }|D ]}tdt|d dd	}ttjt||}| j	
 \}	}
|j|
d
 |
 }|| d  |
 \}}|
|d | || d  | j	|
  q0||kst||kstd S )Ngffffff?g      @r   r   zJan 1988r      r   r   rs   r   r   r   r   r)   r)   r*   test_finder_monthly  s"    zTestTSPlot.test_finder_monthlyc                 C   sn   t dddd}ttjt||}| j \}}|j|d |	 }|
 d }tddj}||ksjtd S )Nr   i   r   r   rs   r   Z1989Q1)r   r   r-   r.   r/   r0   r]   r^   rN   r   r   r   r   rT   )r>   r   r   r   rV   r   r   r   r)   r)   r*   test_finder_monthly_long  s    z#TestTSPlot.test_finder_monthly_longc           	      C   s   ddddddddg}dd	 |D }g }d
D ]l}t d|dd}ttjt||}| j \}}|j|d |	 }|
| d  | j|  q*||kstd S )Nr   i  i    i  i  iz  c                 S   s   g | ]}t |d djqS )r   re   )r   r   r&   r)   r)   r*   r+     s     z1TestTSPlot.test_finder_annual.<locals>.<listcomp>)r   rY      1   rh      iW  i  Z1987r   r   rs   r   )r   r   r-   r.   r/   r0   r]   r^   rN   r   r   r   rC   r   rT   )	r>   r   r   Znyearsr   r   r   rV   r   r)   r)   r*   test_finder_annual  s    zTestTSPlot.test_finder_annualc           	      C   st   d}t dd|d}ttjt||}| j \}}|j|d |	 }|
 d }tdddj}||ksptd S )Ni@ 1/1/1999ZMinr#   rs   r   re   r   r   r-   r.   r/   r0   r]   r^   rN   r   r   r   r   rT   )	r>   Znminutesr   r   r   rV   r   r   r   r)   r)   r*   test_finder_minutely  s    zTestTSPlot.test_finder_minutelyc           	      C   st   d}t dd|d}ttjt||}| j \}}|j|d |	 }|
 d }tdddj}||ksptd S )N   r  r   r#   rs   r   re   r  )	r>   Znhoursr   r   r   rV   r   r   r   r)   r)   r*   test_finder_hourly  s    zTestTSPlot.test_finder_hourlyc           
   
   C   s  t  }tj|dd< | j \}}|j|d | }t|dksHt	|d }|
 }| jsd| js|tjj|t|tjd}t|tjjjst	|j}|dddf  st	| j|  t  }|dddddd	d
ddg	 }tj|dd< | j \}}|j|d}| }t|dks"t	|d }|
 }| jsB| jsZtjj|t|tjd}t|tjjjspt	|j}|dddf  st	| j|  dddddd	d
ddg	}ttjt||}	tj|	dd< | j \}}|	j|d | }t|dkst	|d }|
 }| js.| jsFtjj|t|tjd}t|tjjjs\t	|j}|dddf  s|t	d S )Nr      rs   rK   r   maskZ
fill_valuerF   r   rZ   r         )rB   r   r-   nanr]   r^   rN   rP   r0   rT   r   mpl_ge_3_0_0mpl_ge_2_2_3maMaskedArrayr   
isinstancecorer  r   rC   r   r   r.   r/   )
r>   rU   r   rV   linesliner   r  r@   r   r)   r)   r*   	test_gaps  sV    zTestTSPlot.test_gapsc           
      C   s  t  }tj|dd< | j \}}|j|d t|jd |jd dd}t	tj
t||}|jdd	 | }t|d
kstt|j d
kst|d }| }| js| jstjj|t|tjd}t|tjjjst|j}	|	ddd
f  std S )Nr   r  rs   r   rJ   Z12hre   Tsecondary_yrK   r  )rB   r   r-   r  r]   r^   rN   r   r6   r   r.   r/   r0   rP   rT   right_axr   r  r  r  r  r   r  r  r  r   )
r>   lowr   rV   idxhr   r  r  r   r  r)   r)   r*   test_gap_upsampleG  s"    zTestTSPlot.test_gap_upsamplec           
      C   sf  t tjd}t tjd}| j \}}|jdd}t|dsHtt|drVt|	 }|
 d }t | | }t|| |  dkst|d   rt| j| | j \}}	|j|	d |	  | jkst| j|	  | }|jdd}	|  s"tt|dr2tt|dsBtt|	dsRtt|	drbtd S )	NrY   Tr  left_axr  r   rightrs   )r   r-   r.   r/   r]   r^   rN   r   rT   get_axesrP   r   rQ   rB   assert_series_equal	get_yaxisget_ticks_positionget_visiblerC   default_tick_positionr   )
r>   r   ser2ra   r   rV   r   r  r   ax2r)   r)   r*   test_secondary_y]  s0    zTestTSPlot.test_secondary_yc                 C   s<  t ddd}ttjd|}ttjd|}| j \}}|jdd}t|dsXt	t|drft	|
 }| d }t| |  }	t||	 |  d	kst	|d   rt	| j| | j \}}
|j|
d
 |
  | jkst	| j|
  | }|jdd}
|  s8t	d S )Nr   rY   r   Tr  r!  r  r   r"  rs   )r   r   r-   r.   r/   r]   r^   rN   r   rT   r#  rP   r   rQ   Zto_timestamprB   r$  r%  r&  r'  rC   r(  r   )r>   r@   r   r)  ra   r   rV   r   r  r   r*  r)   r)   r*   test_secondary_y_tsy  s*    zTestTSPlot.test_secondary_y_tsc                 C   sn   t tjd}| j \}}|jdd|d}t|ds<tt|drJt|	 }|d 
  dksjtd S )	NrY   TZdensityr  kindrV   r!  r  rK   r"  )r   r-   r.   r/   r]   r^   rN   r   rT   r#  r%  r&  r>   r   ra   rV   r   r)   r)   r*   test_secondary_kde  s    zTestTSPlot.test_secondary_kdec                 C   sR   t tjd}| j \}}|jdd|d | }|d  	 dksNt
d S )NrY   Tbarr-  rK   r"  )r   r-   r.   r/   r]   r^   rN   r#  r%  r&  rT   r/  r)   r)   r*   test_secondary_bar  s
    zTestTSPlot.test_secondary_barc                 C   s|   t tjdddddgd}|jddgdd}|d	   d
ksFt|d   | jks`t|d   d
ksxtd S )Nr   r2   ro   r   cr7   T)r  r^   r   r"  rK   rF   	r   r-   r.   r/   rN   r%  r&  rT   r(  r>   r`   r   r)   r)   r*   test_secondary_frame  s
    zTestTSPlot.test_secondary_framec                 C   s~   t tjdddddgd}|jdddgdd	}|d
   dksHt|d   | jksbt|d   dksztd S )Nr   r2   ro   r   r3  r4  r1  T)r.  r  r^   r   r"  rK   rF   r5  r6  r)   r)   r*   test_secondary_bar_frame  s
    z#TestTSPlot.test_secondary_bar_framec              	   C   s   t  }|ddddddddg }| j \}}|j|d	 |jd
|d}| }t|d  }t|d  }t ||j	
d t ||j	
d | \}	}
|j	
 }|	|d jkst|
|d jkstd S Nr   r   rY   r   r         r  rs   gr|   rK   r3   rJ   )rB   r   r]   r^   rN   rP   r   rQ   r   r6   r   r   r   rT   r>   s1s2r   rV   r*  r  idx1idx2leftr"  Zpidxr)   r)   r*   test_mixed_freq_regular_first  s    
z(TestTSPlot.test_mixed_freq_regular_firstc              	   C   s   t  }|ddddddddg }| j \}}|jd	|d
 |j|d t|drVt| }|d  }t 	||j
tj |d  }t 	||j
tj d S Nr   r   rY   r   r   r:  r;  r  r<  r|   rs   r$   rK   )rB   r   r]   r^   rN   r   rT   rP   rQ   assert_numpy_array_equalr6   r   r   ri   r>   r>  r?  r   rV   r  x1Zx2r)   r)   r*   test_mixed_freq_irregular_first  s    z*TestTSPlot.test_mixed_freq_irregular_firstc              	   C   s   t   }|jddddddddgd d f }| j \}}|j|d	 |jd
|d}| }t|d 	 }t|d 	 }|
|jdst|
|jdst| \}	}
|j }|	|d jkst|
|d jkstd S r9  )rB   r   to_framer   r]   r^   rN   rP   r   rQ   equalsr6   r   rT   r   r   r=  r)   r)   r*    test_mixed_freq_regular_first_df  s    "
z+TestTSPlot.test_mixed_freq_regular_first_dfc              	   C   s   t   }|jddddddddgd d f }| j \}}|jd	|d
 |j|d t|drdt|	 }|d 
 }t ||jtj |d 
 }t ||jtj d S rD  )rB   r   rI  r   r]   r^   rN   r   rT   rP   rQ   rE  r6   r   r   ri   rF  r)   r)   r*   "test_mixed_freq_irregular_first_df  s    "z-TestTSPlot.test_mixed_freq_irregular_first_dfc                 C   s   t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d |	 D ]}t
| djdksvtqvd S )	Nr  m  r   r   r   r   rs   r   r   r   r-   r.   r/   r0   r]   r^   rN   rP   r   rQ   r$   rT   r>   r  idxlhighr  r   rV   r  r)   r)   r*   test_mixed_freq_hf_first  s    z#TestTSPlot.test_mixed_freq_hf_firstc                 C   s   t dddd}tjd}t||d}|d }| j \}}|j	|d}|j	d	|d
 |j
d  d |j
d  d kstd S )Nz2012-01-01 13:00
2012-01-02r   re   r   rH   r   rs   rr|   r   rK   )r   r-   r.   r/   r   r   Zinterpolater]   r^   rN   r  rQ   rT   )r>   Zts_indZts_datarU   Zts2r   rV   r)   r)   r*   test_mixed_freq_alignment  s    z$TestTSPlot.test_mixed_freq_alignmentc           	      C   s^  t dddd}t dddd}ttjt||}ttjt||}| j \}}|jd|d |jd|d |	 D ]}t
| d	jdksztqz| }t|jd
kst| j|  t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d |	 D ] }t
| d	jdks8tq8d S )Nr  rM  r   r   r   r   T)ZlegendrV   r   rF      r   r   r   rs   )r   r   r-   r.   r/   r0   r]   r^   rN   rP   r   rQ   r$   rT   
get_legendZtextsrC   r   )	r>   r  rP  rQ  r  r   rV   r  legr)   r)   r*   test_mixed_freq_lf_first  s*    z#TestTSPlot.test_mixed_freq_lf_firstc                 C   s~   t  }|ddddddddd	d
ddddddg }tdddd}ttjt||}| j	 \}}|j
|d |j
|d d S )Nr   rK   rF   r2   r   r   r   r      rZ   rY   r              z1/3/2000r   r3   r   rs   )rB   r   r   r   r-   r.   r/   r0   r]   r^   rN   )r>   rU   r   r   Zpsr   rV   r)   r)   r*   test_mixed_freq_irreg_period%  s    (z'TestTSPlot.test_mixed_freq_irreg_periodc                 C   s  t dddd}|d d |dd  }ttt||}ttt||}| jjddd\}\}}|j|d	 |j|d	 |jdkst	|jdkst	|j
d
  d |j
d
  d kst	| j \}}| }|j|d	 |j|d	 |j
d
  d |j
d
  d kst	d S )N
2015-01-01r2   r   r   rK   rF   T)Znrowssharexrs   r   rI   )r   rj   r   r\   r0   r]   r^   rN   r$   rT   r  r   Ztwinx)r>   r@  rA  r>  r?  ra   Zax1r*  r)   r)   r*   test_mixed_freq_shared_ax.  s    (z$TestTSPlot.test_mixed_freq_shared_axc                 C   s   | j  \}}tdtdg}ttt||}|j|d | d 	 }|j
 t| ksdtt| |j
 ks~td S )Nr`  z
2015-01-03rs   r   )r]   r^   r   r
   r   r\   r0   rN   rP   rQ   r6   minrT   max)r>   r   rV   Zdtir   rW   r)   r)   r*   test_nat_handlingO  s    zTestTSPlot.test_nat_handlingc                 C   s   t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d |	 D ]}t
| dj|jksvtqvd S )	Nr  4   r   r   r   r   rs   r   rN  rO  r)   r)   r*   test_to_weekly_resampling[  s    z$TestTSPlot.test_to_weekly_resamplingc                 C   s  t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d |	 j
tj}tjdd	d
dddddddddgtjd}| D ]P}	t|	 dj|jkst|	jdd}
t|
dkrt|
| qt|
| qt  d S )Nr  rf  r   r   r   r   rs                            Zdtyper   Forig)r   r   r-   r.   r/   r0   r]   r^   rN   r   asi8r   float64rm   rP   r   rQ   r$   rT   rB   rE  rC   )r>   r  rP  rQ  r  r   rV   Z
expected_hZ
expected_lr  rW   r)   r)   r*   test_from_weekly_resamplingf  s&    z&TestTSPlot.test_from_weekly_resamplingc                 C   sZ  t dddd}t dddd}ttjt|d|dd	d
gd}ttjt|d|dd	d
gd}dD ]p\}}| j \}}|j|d|d |j|d|d tj	ddddddddddddgtj
d}	tjt|	tj
d}
tdD ]^}|j| }t| j|jkstt|jdd|	 |
|| j7 }
t|jdd|
 q| jtj
}	tjt|	tj
d}
tdD ]f}|jd|  }t| dj|jkstt|jdd|	 |
|| j7 }
t|jdd|
 qnqddD ]v\}}| j \}}|j|d|d |j|d|d | jtj
}	tjt|	tj
d}
tdD ]b}|j| }t| dj|jksltt|jdd|	 |
|| j7 }
t|jdd|
 qBtj	ddddddddddddgtj
d}	tjt|	tj
d}
tdD ]f}|jd|  }t| dj|jkstt|jdd|	 |
|| j7 }
t|jdd|
 qqd S )Nr  rf  r   r   r   r   r2   r   rK   rF   r5   ))r  area)rz  r  T)r.  ZstackedrV   rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  Fru  r   )r   r   r-   r.   randr0   r]   r^   rN   rm   rx  zerosr\   r  r   rQ   r$   rT   rB   rE  ri   r   r   rw  r   )r>   r  rP  rQ  r  Zkind1Zkind2r   rV   Z
expected_xZ
expected_yrn   r  r  r)   r)   r*   $test_from_resampling_area_line_mixed}  s    ""

z/TestTSPlot.test_from_resampling_area_line_mixedc                 C   s  t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d t|	 dkst
|	 D ]}t| d	jd
kst
qt  | j \}}|j|d |j|d t|	 dkst
|	 D ]}t| d	jd
kst
qd S )Nz2014-07-01 09:00r   2   r#   Z100Lr   rs   rF   r   r   )r   r   r-   r.   r/   r0   r]   r^   rN   rP   rT   r   rQ   r$   rB   rC   rO  r)   r)   r*   "test_mixed_freq_second_millisecond  s"    z-TestTSPlot.test_mixed_freq_second_millisecondc                 C   s   t dddt dddt dddg}ttjt|dt|td}t|j	 t
ddd	}|d
dddg t}ttjt|d|}| j \}}t|j	|d d S )Nr   rK   r   r  r2   rt  r   rY   r   r   rF   rZ   rs   )r   r   r-   r.   r/   r0   r	   r   rM   rN   r   r   r]   r^   )r>   r@   r`   r   rV   r)   r)   r*   test_irreg_dtypes  s    " 
zTestTSPlot.test_irreg_dtypesc                    s  t dddddd tjddd }t fdd|D }ttjt|tjt|d|d	}| j	
 \}}|j|d
 | }| }t||D ]v\ }tt d\}	}
t|	d\}}	| }t|dkr|
dkrt||	|
d}nt||	|
d}||kstqd S )NrK   r2   r   r   r  c                    s"   g | ]} t t|d   qS r   r   r   r   r&   tr)   r*   r+     s     z(TestTSPlot.test_time.<locals>.<listcomp>r   rH   rs   <   %H:%M:%S%H:%M)r   r-   r.   randintcumsumrm   r   r/   r0   r]   r^   rN   
get_xticksr_   r   divmodr   r   r   r   rT   r>   deltasrU   r`   ra   rV   tickslabelslmr   hr   r   r)   r  r*   	test_time  s(      zTestTSPlot.test_timec                    s  t dddddd tjddd }t fdd|D }ttjt|tjt|d|d	}| j	
 \}}|j|d
 | }| }t||D ]v\ }tt d\}	}
t|	d\}}	| }t|dkr|
dkrt||	|
d}nt||	|
d}||kstq|dd | }| }t||D ]~\ }tt d\}	}
t|	d\}}	| }t|dkr:|
dkrt||	|
d}nt||	|
d}||ks:tq:d S )NrK   r2   r   r   r  c                    s"   g | ]} t t|d   qS r  r  r&   r  r)   r*   r+     s     z4TestTSPlot.test_time_change_xlim.<locals>.<listcomp>r   rH   rs   r  r  r  z1:30z5:00)r   r-   r.   r  r  rm   r   r/   r0   r]   r^   rN   r  r_   r   r  r   r   r   r   rT   r   r  r)   r  r*   test_time_change_xlim  s@      
z TestTSPlot.test_time_change_xlimc                    s  t dddddd tjddd }t fdd|D }ttjt|tjt|d|d	}| j	
 \}}|j|d
}| }| }t||D ]\ }tt d\}	}
t t  d }t|	d\}}	| }t|dkr|d dkrt||	|
|d}n`|d dkr<t||	|
|dd d }n4|
dkr\t||	|
|d}nt||	|
|d}||kstqd S )NrK   r2   r   r   r  c                    s"   g | ]} t t|d   qS ))microsecondsr  r&   r  r)   r*   r+   @  s     z.TestTSPlot.test_time_musec.<locals>.<listcomp>r   rH   rs   r  g    .Ai  r   r  r  )r   r-   r.   r  r  rm   r   r/   r0   r]   r^   rN   r  r_   r   r  r   roundr   r   r   rT   )r>   r  rU   r`   ra   rV   r  r  r  r  r   r   r  r   r   r)   r  r*   test_time_musec=  s2      
zTestTSPlot.test_time_musecc                 C   s   t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |jd|d	}|	 D ]}t
| jdksxtqxt|d
stt|drt|j	 D ]}t
| jdkstqd S )Nr  rM  r   r   r   r   rs   Tr  rV   r!  r  )r   r   r-   r.   r/   r0   r]   r^   rN   rP   r   rQ   r$   rT   r   r!  rO  r)   r)   r*   test_secondary_upsample\  s    z"TestTSPlot.test_secondary_upsamplec                 C   sZ  | j  }|d}t }|jddg|d | }t| dksJt	|
 d  dksbt	|
 d  d	kszt	|
 d
  dkst	|
 d  dkst	|j d kst	t }| D ]}||  qt|dkst	| j | | j  }|d}|jddgd|d | }t| dks@t	|
 d  dksZt	|
 d  dkstt	|
 d
  dkst	|
 d  dkst	| j | | j  \}}|jddg|d | }|
 d  dkst	|
 d  dkst	| j | | j  \}}|jddgd|d | }|
 d  dks`t	|
 d  dkszt	| j | | j  }|d}t }|jddg|d}| }t| dkst	|j d kst	t }| D ]}||  qt|dkst	| j | t }| j  }|d}|jddg|d}| }t| dkstt	|j d kst	t }| D ]}||  qt|dkst	| j   | j  }|d}|jddg|d}| }t| dkst	|j d ks t	t }| D ]}||  q.t|dksVt	d S )N   r   r3   r  r   r   z	A (right)rK   z	B (right)rF   r4   r2   r   F)r  
mark_rightrV   r1  )r.  r  rV   )r.  r  r  rV   )r]   figureadd_subplotrB   ZmakeTimeDataFramerN   rW  r0   rP   rT   Z	get_textsr   r  setaddr   rC   r^   ZmakeDataFrame)r>   ra   rV   r`   rX  colorsr  r)   r)   r*   test_secondary_legendk  s    










z TestTSPlot.test_secondary_legendc                 C   sz   t dddd}ttjt|d|}| j \}}|j|d}|	 }|
 D ]$}t| dkrP| dksPtqPd S )	Nr   r   r   r   r2   rs   r   r   )r   r   r-   r.   r/   r0   r]   r^   rN   r   r   r   Zget_rotationrT   )r>   r   r`   r   rV   r   r  r)   r)   r*   test_format_date_axis  s    z TestTSPlot.test_format_date_axisc                 C   sX   t dddd}ttt|}| j \}}|j||dd}tt	|d 
 | d S )NrS  rY   r   startr%   r$   Y)rb   r   )r   rO   r\   r0   r]   r^   rN   rB   r   r   rQ   )r>   r(   rq   r   rV   r  r)   r)   r*   test_ax_plot  s
    zTestTSPlot.test_ax_plotc           
      C   s   t dddt dddg}tddd}tdd	d}d
dd}| j \}}|jdd |D |f| |jdd |D |f| | \}}tjdd |D tjd}	t	
| d d df |	 tjdd |D tjd}	t	
| d d df |	 d S )N  r      i  rK   g      $@g      &@g      ?g      (@-r   )fmtZlwc                 S   s   g | ]}|  qS r)   	toordinalr&   r)   r)   r*   r+     s     z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>c                 S   s   g | ]}|  qS r)   r  r&   r)   r)   r*   r+     s     c                 S   s   g | ]}|  qS r)   r  r&   r)   r)   r*   r+     s     rt  r   c                 S   s   g | ]}|  qS r)   r  r&   r)   r)   r*   r+     s     )r   r-   r   r]   r^   Z	plot_daterP   rm   rx  rB   rE  r   )
r>   datesZvalues1Zvalues2kwr   rV   Zline1Zline2expr)   r)   r*   test_mpl_nopandas  s    
zTestTSPlot.test_mpl_nopandasc                 C   s   ddl m} t d d }|dddddd	d
ddddddg }| j \}}|d d j|d |dd  j|d | \}}|||j	
 d|kst|||j	 d|kstd S )Nr   DatetimeConverterr  rK   r   r   r   rZ  rZ   rY   r   r:  r;  r  r\  r]  rs    r   r  rB   r   r]   r^   rN   r   convertr6   rc  rT   rd  r>   r  rU   Zts_irregularr   rV   rB  r"  r)   r)   r*    test_irregular_ts_shared_ax_xlim  s    "z+TestTSPlot.test_irregular_ts_shared_ax_xlimc                 C   s   ddddg}ddddg}t d|d	}t d|d	}| j \}}|j|d
 | \}}|jd|d | \}	}
||	ks|t||
k std S )NrK   rF   r2   r   r   r   r   rZ  rH   rs   Tr  )r   r]   r^   rN   r   rT   r>   Zindex_1Zindex_2r>  r?  r   rV   left_beforeright_before
left_afterright_afterr)   r)   r*   test_secondary_y_non_ts_xlim  s    z'TestTSPlot.test_secondary_y_non_ts_xlimc                 C   s   t dddd}t dddd}td|d}td|d}| j \}}|j|d	 | \}}|jd
|d | \}	}
||	kst||
k std S )N
2000-01-01r   r   r  z
2000-01-05rK   rH   rF   rs   Tr  )r   r   r]   r^   rN   r   rT   r  r)   r)   r*    test_secondary_y_regular_ts_xlim
  s    z+TestTSPlot.test_secondary_y_regular_ts_xlimc           	      C   s   t dddd}td|d}| j \}}|j|d | \}}|d jd	|d
 | \}}||kspt||ks|td S )Nr  r   rc  r   rK   rH   rs   r   Tr  )	r   r   r]   r^   rN   r   ZresampleZmeanrT   )	r>   r   rU   r   rV   r  r  r  r  r)   r)   r*   #test_secondary_y_mixed_freq_ts_xlim  s    z.TestTSPlot.test_secondary_y_mixed_freq_ts_xlimc                 C   s   ddl m} t d d }|dddddd	d
ddddddg }| j \}}|d d j|d |dd  jd|d |d d j|d | \}}|||j	
 d|kst|||j	 d|kstd S )Nr   r  r  rK   r   r   r   rZ  rZ   rY   r   r:  r;  r  r\  r]  rs   Tr  r  r  r  r)   r)   r*   "test_secondary_y_irregular_ts_xlim)  s    "z-TestTSPlot.test_secondary_y_irregular_ts_xlimc                 C   sZ   t dddt dddg}| j \}}|| tddddtddddg}|| d S )Ni  rK   rF   r   )r   r]   r^   rN   r   )r>   ri   r   rV   r)   r)   r*   test_plot_outofbounds_datetime;  s
    
z)TestTSPlot.test_plot_outofbounds_datetimec                 C   s   dd t dD }tdddd}tt jt|d|}| j \}}|j	d|d	 | j
  | }d
d |D }t|t|kst||kstd S )Nc                 S   s   g | ]}d |dqS )z00:00:00.0000000z0>2dr)   )r'   rn   r)   r)   r*   r+   F  s     zATestTSPlot.test_format_timedelta_ticks_narrow.<locals>.<listcomp>rY   0nsr   r2   rF   r[   c                 S   s   g | ]}|  qS r)   r   r&   r)   r)   r*   r+   O  s     )r-   r   r   r   r.   r/   r0   r]   r^   rN   drawr_   rT   r>   Zexpected_labelsr   r`   ra   rV   r  Zresult_labelsr)   r)   r*   "test_format_timedelta_ticks_narrowD  s    
z-TestTSPlot.test_format_timedelta_ticks_narrowc              	   C   s   ddddddddd	g	}t d
ddd}ttjt|d|}| j \}}|jd|d}| j	  |
 }dd |D }t|t|kst||kstd S )Nz00:00:00z1 days 03:46:40z2 days 07:33:20z3 days 11:20:00z4 days 15:06:40z5 days 18:53:20z6 days 22:40:00z8 days 02:26:40z9 days 06:13:20r  rY   1 dr   r2   rF   r[   c                 S   s   g | ]}|  qS r)   r  r&   r)   r)   r*   r+   g  s     z?TestTSPlot.test_format_timedelta_ticks_wide.<locals>.<listcomp>)r   r   r-   r.   r/   r0   r]   r^   rN   r  r_   rT   r  r)   r)   r*    test_format_timedelta_ticks_wideS  s&    
z+TestTSPlot.test_format_timedelta_ticks_widec                 C   s   t tdtddd}| j \}}t|j|d tdddd}t tj	t
||}| j \}}t|j|d tddd	d}t tj	t
||}| j \}}t|j|d d S )
Nr   Z1dayr   rs   z1 day 2 hr 30 min 10 srY   r  r   z1 ns)r   r\   r   r]   r^   rM   rN   r-   r.   r/   r0   )r>   r   r   rV   r6   r)   r)   r*   test_timedelta_plotk  s    zTestTSPlot.test_timedelta_plotc                 C   s`   t dddd}|}tddd}tdddd d d }| j \}}|j||g||gd	 d S )
NrE   rY   r   r   r   rK   g?rJ   )weights)r   r-   r   r]   r^   hist)r>   r   r(   Zw1Zw2r   rV   r)   r)   r*   	test_hist}  s    zTestTSPlot.test_histc                 C   s   t dddgtdddtdddtdddgd	}t dddgtd
ddtdddtdddgd	}| j \}}|j|d |j|d |j|d d S )NrK   rF   r2   r  r   r  r   i  rH   i  i  r  rs   )r   r   r]   r^   rN   )r>   r>  r?  r   rV   r)   r)   r*   test_overlapping_datetime  s$    





z$TestTSPlot.test_overlapping_datetimez1GH9053 matplotlib does not use ax.xaxis.converter)reasonc              	   C   sp   t tjdtdddd}| }tt |j|j	|j
dd W 5 Q R X |j\}}t| |  d S )NrY   z
1970-01-02r   rH   r<  )r   )r   r-   r.   r/   r   rN   rB   rL   DeprecationWarningr6   ri   r  rE  r   )r>   r   rV   l1l2r)   r)   r*   test_add_matplotlib_datetime64  s    
z)TestTSPlot.test_add_matplotlib_datetime64c                 C   s   t tjdddddgd}tdddd	|d
< | j \}}|jd
d|d | j	  |
 d }| jrrd}n| jr~d}nd}| |kstd S )Nr   rY   rF   r(   rq   r4  z
2018-01-01r   r   r   )r(   rq   r   z
2017-12-08z
2017-12-12)r   r-   r.   ZRandomStater{  r   r]   r^   Zscatterr  r_   Zmpl_ge_3_2_0r  r   rT   )r>   r`   ra   rV   rb   r   r)   r)   r*   "test_matplotlib_scatter_datetime64  s     
z-TestTSPlot.test_matplotlib_scatter_datetime64c                 C   s  t dddg}t|dddgd}|jdd	d}| j|d
d t dddg}t|dddgd}|jdd	d}| j|dd |djd	dd}| j|dd |djd	dd}| j|d
d |jdd	ddd}| j|dd |jdd	ddd}| j|d
d d S )Nz
2020-05-01z
2020-05-02z
2020-05-03rK   rF   r2   )r(   rq   r(   rq   r   )Zxrotz
2020-05-04r   T)rq   Z	use_indexF)r(   rq   r^   ra  )r   r   rN   Z_check_ticks_propsZ	set_index)r>   r(   r`   r   r)   r)   r*   test_check_xticks_rot  s     z TestTSPlot.test_check_xticks_rotN)]__name__
__module____qualname__r9   rD   rX   rc   rl   rp   rz   r   r   r   r   r   r   rv   markZparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r   r+  r,  tdZskip_if_no_scipyr0  r2  r7  r8  rC  rH  rK  rL  rR  rU  rY  r_  rb  re  rg  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  Zxfailr  r  r  r)   r)   r)   r*   r   /   s    
 
			(

6

	![)[
		
r   c              	   O   sN  dd l m} | }z&|  |d}|d| }t|dd }	| ||}
|
d k	s\t	|d| }|d k	r|j
j}t|tr|j}|	d kr|j|kst	|d k	r|	d kr|j|kst	|d}||d< | ||}
|
d k	st	tjdd}|| W 5 Q R X dtjkr:tjdd}t|| W 5 Q R X W 5 || X d S )	Nr   r  rV   r$      T)Zreturn_filelikeZstatsmodels)Zmatplotlib.pyplotZpyplotZgcfrC   Zclfr  popZgcagetattrrT   r6   r$   r  r   r   rB   Zensure_cleanZsavefigsysmodulespickledump)fr$   Zseriesargskwargsr]   ra   rV   Zorig_axZorig_axfreqr   Zdfreqpathr)   r)   r*   rM     s8    




rM   )NN)/__doc__r   r   r   r   r  r  Znumpyr-   rv   Zpandas._libs.tslibsr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandasr   r	   r
   r   r   r   Zpandas._testingZ_testingrB   Zpandas.core.indexes.datetimesr   r   r   Zpandas.core.indexes.periodr   r   r   Zpandas.core.indexes.timedeltasr   Zpandas.tests.plotting.commonr   Zpandas.tseries.offsetsr   r  ZslowZ
pytestmarkZskip_if_no_mplr   rM   r)   r)   r)   r*   <module>   s:               3