a
    nÝEbÅt  ã                   @   s¤   d Z ddlmZ ddlmZ ddlZddlZddlm  m	Z
 ddlZddlmZmZmZ ddlmZ ddlmZmZ ddlmZ ejjZe
jG dd„ deƒƒZdS )	z Test cases for Series.plot é    )Údatetime)ÚchainN)Ú	DataFrameÚSeriesÚ
date_range)ÚTestPlotBaseÚ_check_plot_worksc                   @   sb  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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+g¡d,d-„ ƒZd.d/„ Zejd0d1„ ƒZej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„ Z0dVdW„ Z1dXdY„ Z2ejj3dZd[�d\d]„ ƒZ4ej d^d_d`g¡dadb„ ƒZ5dcdd„ Z6dedf„ Z7ej dgg dh¢g di¢fg dj¢g dk¢fg¡dldm„ ƒZ8dndo„ Z9ej dpg dq¢¡ej d^g dr¢¡dsdt„ ƒƒZ:ej due;j<dvdwdxdy�e;j=dzd{�e;j=dwd{�gg¡d|d}„ ƒZ>d~S )ÚTestSeriesPlotsc                 C   sV   t  | |¡ dd l}| ¡  t ¡ | _d| j_t ¡ | _	d| j	_t 
¡ | _d| j_d S )Nr   ÚtsÚseriesÚiseries)r   Úsetup_methodÚ
matplotlibZ
rcdefaultsÚtmZmakeTimeSeriesr
   ÚnameZmakeStringSeriesr   ZmakePeriodSeriesr   )ÚselfÚmethodÚmpl© r   úa/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/plotting/test_series.pyr      s    


zTestSeriesPlots.setup_methodc                 C   s¨  t | jjdd� t | jjdd� t | jjdd�}| j|dd� t | jjdd	d
�}| j|dd� t | jjdd	d�}| j|dd� t | jjdd	d�}| j|ddd� t | jd d… jjƒ t | jjjdd� t | jjƒ dD ]}t | jd d… j|d� qØt | jd d… jj	ƒ t t
tj d¡ƒjjdd�}| j|jd gdgd� t | jjd	d�}| j|ddd� t | jjd	dd�}| j|ddd� t | jjd	dd�}| j|ddd� d S ) NZfoo)ÚlabelF)Ú	use_indexr   )Úrot©ZxrotÚ.T)ÚstyleÚlogyÚlog©Úyaxis)r   Zlogx)Úxaxis)r   Zloglog)r    r   é
   ©Ústacked)ÚlineÚbarÚbarhÚkdeÚhistÚboxé   ©ÚkindÚblack©Úcolor©Z
facecolors)Úsubplotsé   ©r2   r2   )Úaxes_numÚlayout)éÿÿÿÿr2   )r1   r5   )r2   r6   )r   r
   ÚplotÚ_check_ticks_propsÚ_check_ax_scalesr%   Úarear   r   r&   r   ÚnpÚrandomÚrandnÚ_check_colorsÚpatchesÚ_check_axes_shape)r   ÚaxesÚaxr,   r   r   r   Ú	test_plot.   s0    zTestSeriesPlots.test_plotc                 C   sD   | j  ¡ \}}| jjdd|d�}|  |jd¡ | j|dddd� d S )NZTest)é   é   )ÚtitleÚfigsizerB   r2   r3   )r4   r5   rG   )Úpltr1   r   r7   Ú_check_text_labelsrF   r@   ©r   Ú_rB   r   r   r   Útest_plot_figsize_and_titleQ   s    z+TestSeriesPlots.test_plot_figsize_and_titlec                 C   sJ   d}| j j| }| j  ¡ \}}tg d¢ƒj|d� || j j| ksFJ ‚d S )Nzaxes.prop_cycle©r2   é   é   ©rB   )rH   ÚrcParamsr1   r   r7   )r   ÚkeyÚcolorsrK   rB   r   r   r   Útest_dont_modify_rcParamsX   s
    z)TestSeriesPlots.test_dont_modify_rcParamsc                 C   sà   | j  ¡ \}}| jj|d�}| ¡ \}}| ¡ }||d jdd�d d ksPJ ‚||d jdd�d d kspJ ‚t ¡  | jjd|d�}| ¡ \}}| ¡ }||d jdd�d d ks¼J ‚||d jdd�d d ksÜJ ‚d S )NrP   r   F©Úorigr6   T©Úsecondary_yrB   )	rH   r1   r
   r7   Úget_xlimÚ	get_linesÚget_datar   Úclose)r   ÚfigrB   ÚxminÚxmaxÚlinesr   r   r   Útest_ts_line_lim`   s       z TestSeriesPlots.test_ts_line_limc                 C   s
  | j  ¡ \}}| jjjd|d�}| ¡ \}}| ¡ d jdd�d }||d ksTJ ‚||d ksdJ ‚| j|dd� t	 
¡  | j  ¡ \}}| jjjdd|d�}| ¡ \}}| ¡ d jdd�d }||d ksÐJ ‚||d ksàJ ‚| j|d	d� t	 
¡  | j ¡ }| d
¡ d¡|_| j  ¡ \}}|jjdd|d�}| ¡ \}}| ¡ d jdd�d }||d k�shJ ‚||d k�szJ ‚| j|dd� t	 
¡  | j  ¡ \}}|jjdd|d�}| ¡ \}}| ¡ d jdd�d }||d k�sæJ ‚||d k�søJ ‚| j|dd� d S )NF)r#   rB   r   rU   r6   r   T)r#   Zx_compatrB   é   ÚGMTZCET)r#   rX   rB   )rH   r1   r
   r7   r:   rY   rZ   r[   r8   r   r\   ÚcopyZtz_localizeZ
tz_convertÚindex)r   rK   rB   r^   r_   r$   Ztz_tsr   r   r   Útest_ts_area_limo   sB    
z TestSeriesPlots.test_ts_area_limc                 C   sr   | j jdddd�\}\}}t| jƒj|dd� t| jƒj|dd� |  |¡ ||¡sXJ ‚|  |¡ ||¡snJ ‚d S )Nr2   rN   T)Zshareyr:   )rB   r,   )rH   r1   Úabsr
   r7   Z
get_y_axisZjoined)r   r]   Úax1Úax2r   r   r   Útest_area_sharey_dont_overwrite–   s
    z/TestSeriesPlots.test_area_sharey_dont_overwritec                 C   s:  t ddgƒ}| j ¡ \}}|jdd|d�}| j|dgd� | j ¡  | j ¡ \}}|jd|d�}| j|dgd� | j ¡  d	|_| j ¡ \}}|jd|d�}| j|d	gd� | j ¡  | j ¡ \}}|jdd|d
�}| j|dgd� | j ¡  | j ¡ \}}|jdd|d
�}| ¡ d u �sJ ‚| ¡  | j|dgd� d S )Nr2   rN   ZLABELT)r   ÚlegendrB   ©Úlabels©rk   rB   ÚNoneÚNAME)rk   r   rB   F)	r   rH   r1   r7   Ú_check_legend_labelsr\   r   Z
get_legendrk   )r   ÚsrK   rB   r   r   r   Ú
test_label    s.    



zTestSeriesPlots.test_labelc                 C   sZ   t g d¢ƒ}t|jdd� d}tjt|d�� t|jƒ W d   ƒ n1 sL0    Y  d S )N)FFTT)Zinclude_boolúno numeric data to plot©Úmatch)r   r   r7   ÚpytestÚraisesÚ	TypeError)r   rr   Úmsgr   r   r   Útest_boolean¼   s
    zTestSeriesPlots.test_booleanc           	      C   s  ddt jdg}t|ƒ}t|tjdd�d�}||fD ]Þ}t|jƒ}|jd  ¡ }t j	g d¢t j
d	�}t t  |jd¡|¡ t |jt  	g d
¢¡¡ t j	g d¢t j
d	�}t|jdd�}t |jd  ¡ |¡ t|jjƒ}t |jd  ¡ |¡ t|jjdd�}t |jd  ¡ |¡ q2d S )Nr2   rN   rO   é   )Úk©re   r   rM   ©Zdtype)FFTF)r2   rN   r   rO   Tr"   F)r;   Únanr   r   ZmakeDateIndexr   r7   r`   Ú	get_ydataÚarrayZfloat64Úassert_numpy_array_equalÚdeleteÚdataÚmaskr:   )	r   Úvaluesrr   r
   ÚdrB   ZmaskedÚexpÚexpectedr   r   r   Útest_line_area_nan_seriesÅ   s$    
ÿz)TestSeriesPlots.test_line_area_nan_seriesc                 C   s‚   t g d¢g d¢d�}d|j_| j ¡ \}}|jd|d�}| ¡ }|dksLJ ‚| j ¡ \}}|jjd|d�}| ¡ }|dks~J ‚d S )NrM   ©ÚaÚbÚcr~   z	The IndexF©r   rB   Ú )r   re   r   rH   r1   r7   Ú
get_xlabelr%   )r   rr   rK   rB   r   ri   Úlabel2r   r   r   Útest_line_use_index_falseÜ   s    z)TestSeriesPlots.test_line_use_index_falsec                 C   sp  t  g d¢¡}| j ¡ \}}tddgƒjjd|d�}t |j	 
¡ |¡ t ¡  | j ¡ \}}tddgƒjjd|d�}t |j 
¡ |¡ t ¡  t  g d¢¡}| j ¡ \}}tg d¢ƒjdd|d	�}d
}d}| ¡ }t |d |¡ t |d |¡ t |j	 
¡ |¡ t ¡  | j ¡ \}}tg d¢ƒjdd|d	�}| ¡ }t |d |¡ t |d |¡ t |j 
¡ |¡ d S )N)çš™™™™™¹?ç      ð?ç      $@g      Y@g     @�@g     ˆÃ@éÈ   iô  T)r   rB   )gñhãˆµøä>g-Cëâ6?çü©ñÒMbP?ç{®Gáz„?r•   r–   r—   )r•   rš   r™   r%   )r   r,   rB   g!Ñ,åNJ?gÐ„–-?À?r   r2   r&   )r;   r‚   rH   r1   r   r7   r%   r   rƒ   r   Úget_ticklocsr\   r&   r    Zget_ylimZassert_almost_equalrY   )r   rŠ   rK   rB   ZyminÚymaxÚresr   r   r   Útest_bar_logè   s2    zTestSeriesPlots.test_bar_logc                 C   sJ   t g d¢g d¢d�}| j ¡ \}}|jjd|d�}|  | ¡ g d¢¡ d S )N©r2   rN   rO   r|   ©r�   rŽ   r�   rˆ   r~   Fr�   )Ú0Ú1Ú2Ú3)r   rH   r1   r7   r%   rI   Úget_xticklabels)r   ÚdfrK   rB   r   r   r   Útest_bar_ignore_index	  s    z%TestSeriesPlots.test_bar_ignore_indexc                 C   sF   t g d¢ƒ}|jjg d¢d�}dd„ |jD ƒ}g d¢}||ksBJ ‚d S )NrŸ   )ÚredÚbluer©   r¨   r.   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_facecolor)Ú.0Úpr   r   r   Ú
<listcomp>  ó    z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>)©r–   ç        r¯   r–   ©r¯   r¯   r–   r–   r°   r®   )r   r7   r%   r?   )r   rr   rB   ÚresultrŠ   r   r   r   Útest_bar_user_colors  s
    z$TestSeriesPlots.test_bar_user_colorsc                 C   sh   t tj dd¡ƒ}| j ¡ \}}|j|d�}| j|dd� | j ¡ \}}|jd|d�}| j|dd� d S )Nr*   rP   r   r   rb   )r   rB   )r   r;   r<   r=   rH   r1   r7   r8   )r   r¦   rK   rB   rA   r   r   r   Útest_rotation  s    zTestSeriesPlots.test_rotationc                 C   sš   ddl m} tddƒ}|g d¢ }ttj t|ƒ¡|ƒ}| j 	¡ \}}|j
|d�}| tdddƒd	|¡}| d
d¡ || ¡ d ksˆJ ‚| j|dd� d S )Nr   )ÚDatetimeConverterú1/1/2000z3/1/2000)	r   r2   rN   rO   r*   é	   r!   é   é   rP   iÏ  r2   r‘   z1/1/1999ú1/1/2001rb   r   )Z%pandas.plotting._matplotlib.converterr´   r   r   r;   r<   r=   ÚlenrH   r1   r7   Úconvertr   Zset_xlimrY   r8   )r   r´   ÚrngÚserrK   rB   Zxpr   r   r   Útest_irregular_datetime&  s    
z'TestSeriesPlots.test_irregular_datetimec              	   C   s¢   t ddtjddddgddddtjddgd�}| j ¡ \}}|j|d	�}| ¡ \}}| ¡ }|t |d
 j	dd�d
 ¡ks|J ‚|t 
|d
 j	dd�d
 ¡ksžJ ‚d S )Nr¯   r–   g      @g      @g      @g      @g       @r~   rP   r   FrU   )r   r;   r€   rH   r1   r7   rY   rZ   Znanminr[   Znanmax)r   r½   rK   rB   r^   r_   r`   r   r   r   Útest_unsorted_index_xlim3  s    þ"z(TestSeriesPlots.test_unsorted_index_xlimc           	      C   sØ  t tj dd¡g d¢dd�}t|jjƒ}|  |j|j	¡ | 
¡ dksHJ ‚t|jjd d�}|  |jdgd ¡ g d¢}t|jj|d	�}g d
¢}| j|j|d� g d¢}g d¢}t|jj||d�}|  |j|¡ | j|j|d� t|jj|ddd�}dd„ |j| ¡  D ƒ}tt t|j	|ƒ¡ƒ}|  |j|¡ |jD ]}| ¡ dk�s2J ‚�q2t g d¢g d¢d�}tjtdd�� |j ¡  W d   ƒ n1 �s�0    Y  t ddtjdgg d¢dd�}t|jjƒ}|  |jg d¢¡ d S )Nr2   r*   )r�   rŽ   r�   rˆ   ÚeZYLABEL©re   r   rl   r‘   )ÚrÚgrŽ   )rS   )rÂ   rÃ   rŽ   rÂ   rÃ   r0   )ÚAÚBÚCÚDÚE)rÂ   rÃ   rŽ   r�   Úm)rm   rS   z%.2fé   )rS   ZautopctZfontsizec                 S   s   g | ]}|d  d›‘qS )éd   z.2fr   )rª   rr   r   r   r   r¬   _  r­   z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>)r2   rN   r   r|   r6   r~   z&pie plot doesn't allow negative valuesru   rN   r|   r    )r�   rŽ   r‘   rˆ   )r   r;   r<   Úrandintr   r7   ÚpierI   Útextsre   Ú
get_ylabelr>   r?   r‡   ÚsumÚlistr   Úfrom_iterableÚzipZget_fontsizerw   rx   Ú
ValueErrorr€   )	r   r   rB   Z
color_argsZcolor_expectedrm   ZpctsZexpected_textsÚtr   r   r   Útest_pie_series?  s>    ÿÿ
*zTestSeriesPlots.test_pie_seriesc                 C   sX   t dtjddgƒ}| j ¡ \}}|jjd|d�}g d¢}dd„ |jD ƒ}||ksTJ ‚d S )Nr2   Trn   )r¡   r‘   r£   r¤   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_text)rª   Úxr   r   r   r¬   t  r­   z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)r   r;   r€   rH   r1   r7   rÍ   rÎ   )r   rr   rK   rB   rŠ   r±   r   r   r   Útest_pie_nano  s    zTestSeriesPlots.test_pie_nanc                 C   sR  t tj dd¡tdƒd�}ttj d¡dd�}| j ¡ \}}|j|d�}|jdd|d	� | j	|g d
¢d� | 
¡  ¡ szJ ‚|j 
¡  ¡ sŒJ ‚t ¡  | j ¡ \}}|j|d�}|j|ddd� | j	|g d
¢d� | 
¡  ¡ sàJ ‚|j 
¡  ¡ sòJ ‚t ¡  | j ¡ \}}|jd|d�}|jdd|d	� g d¢}| j	|j|d� |j 
¡  ¡ �rRJ ‚| 
¡  ¡ �sdJ ‚t ¡  | j ¡ \}}|jd|d�}|j|ddd� g d¢}|  	|j|¡ |j 
¡  ¡ �rÂJ ‚| 
¡  ¡ �sÔJ ‚t ¡  | j ¡ \}}|jdd|d�}|j|ddd� g d
¢}|  	|j|¡ |j 
¡  ¡ �r4J ‚| 
¡  ¡ �sFJ ‚t ¡  d S )Nrb   rO   Úabc)Úcolumnsr×   ©r   rP   T)rk   rX   rB   )r�   rŽ   r�   ú	x (right)rl   )rB   rk   rX   rW   )z	a (right)z	b (right)z	c (right)rÜ   F)rX   Z
mark_rightrB   )r   r;   r<   r=   rÑ   r   rH   r1   r7   rq   Z	get_yaxisZget_visibleZright_axr   r\   Zleft_ax)r   r¦   rr   rK   rB   rŠ   r   r   r   Útest_df_series_secondary_legendw  sP    z/TestSeriesPlots.test_df_series_secondary_legendzinput_logy, expected_scale)Tr   )ÚsymZsymlogc                 C   s^   t tj d¡ƒ}t tj d¡ƒ}|j|d�}|jd|d�}| ¡ |ksJJ ‚| ¡ |ksZJ ‚d S )Nrb   )r   T)rX   r   )r   r;   r<   r=   r7   Z
get_yscale)r   Z
input_logyZexpected_scaleÚs1Ús2rh   ri   r   r   r   Útest_secondary_logy¶  s    z#TestSeriesPlots.test_secondary_logyc                 C   sd   t tj d¡ƒ}| j ¡ \}}d}tjt|d��  |j	dd|d� W d   ƒ n1 sV0    Y  d S )NrN   z�Cannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolru   zk--r}   )r   r/   rB   )
r   r;   r<   r=   rH   r1   rw   rx   rÔ   r7   )r   r×   rK   rB   rz   r   r   r   Ú)test_plot_fails_with_dupe_color_and_styleÅ  s    ÿz9TestSeriesPlots.test_plot_fails_with_dupe_color_and_stylec                 C   sÀ   t  ddd¡}t| jjjddd� t| jjjd dd� t| jjjd t  d¡d� t| jjjd|d� t| jjjd|d� | j 	¡ \}}| jjjdd||d�}| j
|d	d
� |  |j ¡ d¡ d S )NiœÿÿÿrË   é   Zscott)Ú	bw_methodÚindg      à?T)r   rä   rå   rB   r   r   ZDensity)r;   Zlinspacer   r
   r7   r'   Úint_ZdensityrH   r1   r9   rI   r   Z	get_label)r   Zsample_pointsrK   rB   r   r   r   Útest_kde_kwargsÐ  s    zTestSeriesPlots.test_kde_kwargsc                 C   sJ   t tjjdd�ƒ}tj|d< t|jjƒ}tt 	|j
d  ¡ ¡ ƒsFJ ‚d S )Né2   )Úsizer   )r   r;   r<   Úuniformr€   r   r7   r'   ÚanyÚisnanr`   Ú	get_xdata)r   rr   rA   r   r   r   Útest_kde_missing_valsÝ  s    
z%TestSeriesPlots.test_kde_missing_valsc                 C   sj   | j  ¡ \}}| jjjd|d�}| j|dd� | ¡ }|  || jjg¡ | 	¡ }|  |dgt
|ƒ ¡ d S )NT)r   rB   r   r   r‘   )rH   r1   r
   r7   r)   r9   r¥   rI   r   Zget_yticklabelsrº   )r   rK   rB   ZxlabelsZylabelsr   r   r   Útest_boxplot_seriesæ  s    z#TestSeriesPlots.test_boxplot_seriesc                 C   sv   t tdƒƒ}tjjtjj }|D ]P}| j ¡ \}}|j||d� | j 	¡  | j ¡ \}}t
|j|ƒƒ  | j 	¡  q d S )NrO   ©r,   rB   )r   ÚrangeÚplottingÚPlotAccessorÚ_common_kindsÚ_series_kindsrH   r1   r7   r\   Úgetattr)r   rr   Úkindsr,   rK   rB   r   r   r   Útest_kind_both_waysï  s    ÿ
z#TestSeriesPlots.test_kind_both_waysc              	   C   sl   t tdƒƒ}| j ¡ \}}tjjD ]D}d}tjt	|d�� |j
||d� W d   ƒ q"1 s\0    Y  q"d S )NÚabcdrt   ru   rð   )r   rÑ   rH   r1   rò   ró   rô   rw   rx   ry   r7   ©r   rr   rK   rB   r,   rz   r   r   r   Útest_invalid_plot_dataü  s    z&TestSeriesPlots.test_invalid_plot_datac                 C   s0   t tdƒtd�}tjjD ]}t|j|d� qd S )Nr!   r   r+   )r   rñ   Úobjectrò   ró   rô   r   r7   )r   rr   r,   r   r   r   Útest_valid_object_plot  s    z&TestSeriesPlots.test_valid_object_plotc              	   C   sl   t g d¢ƒ}| j ¡ \}}tjjD ]D}d}tjt|d�� |j	||d� W d   ƒ q"1 s\0    Y  q"d S )N)r�   rŽ   r–   rN   rt   ru   rð   )
r   rH   r1   rò   ró   rô   rw   rx   ry   r7   rú   r   r   r   Ú test_partially_invalid_plot_data
  s    z0TestSeriesPlots.test_partially_invalid_plot_datac                 C   sJ   t ddgƒ}tjtdd�� |jdd� W d   ƒ n1 s<0    Y  d S )Nr2   rN   z%invalid_kind is not a valid plot kindru   Zinvalid_kindr+   )r   rw   rx   rÔ   r7   )r   rr   r   r   r   Útest_invalid_kind  s    z!TestSeriesPlots.test_invalid_kindc                 C   sJ   t ddd�}t ddd�}| |¡}tj |j¡}t||d�}t|jƒ d S )Nz1/1/2009r|   ©Úperiodsz1/2/2009r~   )	r   Úappendr;   r<   r=   ré   r   r   r7   )r   Zdr1Zdr2re   r‡   rr   r   r   r   Útest_dup_datetime_index_plot  s    
z,TestSeriesPlots.test_dup_datetime_index_plotc                 C   sÜ   t t d¡dd�}tj dd¡}|j||d�}t dd„ |jd  ¡ D ƒ¡}|j	t 
d	dg¡ | ¡  d	d¡ }t ||¡ d
t|ƒ› d�}tjt|d��& |jtj dd¡d� W d   ƒ n1 sÆ0    Y  t ¡  d S )Nr!   r×   rÛ   rN   )ÚyerrÚxerrc                 S   s   g | ]}|j d d …df ‘qS )Nr2   )Zvertices©rª   Úir   r   r   r¬   '  r­   z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>r2   r6   z?Asymmetrical error bars should be provided with the shape \(2, z\)ru   r·   ©r  )r   r;   Úaranger<   Zrandr7   ZvstackÚcollectionsÚ	get_pathsÚTr‚   Zto_numpyZreshaper   rƒ   rº   rw   rx   rÔ   r\   )r   rr   ÚerrrB   r±   rŠ   rz   r   r   r   Útest_errorbar_asymmetrical   s    $ÿÿ4z*TestSeriesPlots.test_errorbar_asymmetricalc                 C   s(  t t d¡dd�}tj d¡}ttj dd¡|jddgd�}ddg}|D ]®}t|jt |ƒ|d	�}| j	|d
dd� t|j||d	�}| j	|d
dd� t|j| 
¡ |d	�}| j	|d
dd� t|j||d	�}| j	|d
dd� t|jdd|d�}| j	|ddd� qHt|j|d�}| j	|dd
d� tdddd�}t t d¡|dd�}t tj d¡|d�}	ttj dd¡|ddgd�}
t|j|	d�}| j	|d
dd� t|j|
d�}| j	|d
dd� t t¡�" |jt d¡d� W d   ƒ n1 �sØ0    Y  dgd }t t¡� |j|d� W d   ƒ n1 �s0    Y  d S )Nr!   r×   rÛ   rN   Úy)re   rÚ   r$   r%   )r  r,   r   r2   )r  r  gš™™™™™É?)r  r  r,   )r  rµ   r¹   ÚM)Úfreqr¸   rÁ   r~   r  r·   Úzzz)r   r;   r	  r<   r=   r   re   r   r7   Z_check_has_errorbarsÚtolistr   r   Zexternal_error_raisedrÔ   ry   )r   rr   Zs_errZd_errr÷   r,   rB   Úixr
   Zts_errZtd_errr   r   r   Útest_errorbar_plot4  s<    2
z"TestSeriesPlots.test_errorbar_plotc                 C   s&   t | jjdd� t | jj| jd� d S )NT)Útable)r   r   r7   ©r   r   r   r   Ú
test_table]  s    zTestSeriesPlots.test_tablec                 C   s$   |   tg d¢ƒtjjtjj ¡ d S )NrM   )Z_check_grid_settingsr   rò   ró   rõ   rô   r  r   r   r   Útest_series_grid_settingsa  s    
þz)TestSeriesPlots.test_series_grid_settingsc                 C   sŽ   ddl m} dD ]x}|d|d�}||gks.J ‚|d|gd�}||gksJJ ‚|d|d�}||gd kshJ ‚|d|gd�}||gd ksJ ‚qd S )Nr   ©Úget_standard_colors)rÂ   r¨   Úgreenz#FF0000r2   r.   rO   )Ú!pandas.plotting._matplotlib.styler  )r   r  r�   r±   r   r   r   Útest_standard_colorsh  s    z$TestSeriesPlots.test_standard_colorsc                 C   s  dd l m} ddlm} |jD ]x}|d|d�}||gks<J ‚|d|gd�}||gksXJ ‚|d|d�}||gd ksvJ ‚|d|gd�}||gd ksJ ‚q|jjD ]x}|d|d�}||gks¾J ‚|d|gd�}||gksÚJ ‚|d|d�}||gd ksøJ ‚|d|gd�}||gd ks J ‚q d S )Nr   r  r2   )Z
num_colorsr/   rO   )Zmatplotlib.colorsrS   r  r  ZcnamesZColorConverter)r   rS   r  r�   r±   r   r   r   Útest_standard_colors_allx  s(    
z(TestSeriesPlots.test_standard_colors_allc                 C   sB   | j  ¡ \}}tt d¡d ƒjd|d�}| j| ¡ dgd� d S )Nr¸   r2   r  ©r/   rB   ©Z
linecolors)rH   r1   r   r;   r	  r7   r>   rZ   rJ   r   r   r   Útest_series_plot_color_kwargs™  s    z-TestSeriesPlots.test_series_plot_color_kwargsc                 C   sN   | j  ¡ \}}tt d¡d tddd�d�jd|d�}| j| ¡ dgd� d S )	Nr¸   r2   rµ   r   r~   r  r   r!  )	rH   r1   r   r;   r	  r   r7   r>   rZ   rJ   r   r   r   Ú"test_time_series_plot_color_kwargsŸ  s
    ÿz2TestSeriesPlots.test_time_series_plot_color_kwargsc           	      C   s~   dd l }|  |j¡}tddd�}tt dd¡|d�}d}| j ¡ \}}t	|ƒD ]}|j
|d	�}qN| j| ¡ |d |… d
� d S )Nr   rµ   r¸   r   r2   é   r~   rO   rP   r!  )r   Z_unpack_cyclerrQ   r   r   r;   r	  rH   r1   rñ   r7   r>   rZ   )	r   r   Z
def_colorsre   rr   ZncolorsrK   rB   r  r   r   r   Ú-test_time_series_plot_color_with_empty_kwargs§  s    z=TestSeriesPlots.test_time_series_plot_color_with_empty_kwargsc                 C   sb   t t d¡dd„ tdƒD ƒd�}| j ¡ \}}|jg d¢|d�}dd„ dD ƒ}|  | ¡ |¡ d S )Nr!   c                 S   s   g | ]}d |d›�‘qS ©ÚPZ02dr   r  r   r   r   r¬   ·  r­   z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r~   )r   rO   r*   r¶   )ÚxticksrB   c                 S   s   g | ]}d |d›�‘qS r&  r   r  r   r   r   r¬   º  r­   )	r   r;   r	  rñ   rH   r1   r7   rI   r¥   )r   rr   rK   rB   r‰   r   r   r   Útest_xticklabelsµ  s
     z TestSeriesPlots.test_xticklabelsc                 C   s^   t tdƒdd„ tdƒD ƒd�}|jjtdddƒd�}t ttdddƒƒ¡}t || 	¡ ¡ d S )	Nr!   c                 S   s   g | ]}d |d›�‘qS r&  r   r  r   r   r   r¬   ¿  r­   z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>r~   r   r·   rN   )r(  )
r   rñ   r7   r%   r;   r‚   rÑ   r   rƒ   Z
get_xticks)r   rr   rB   r‰   r   r   r   Útest_xtick_barPlot½  s    z"TestSeriesPlots.test_xtick_barPlotc                 C   s@   ddl m} ttddƒtjdd|dgd�d	�d
�}t|jƒ d S )Nr   )ÚCustomBusinessDayrË   éy   z
2014-05-01z
2014-06-01z
2014-05-26)Zholidays)ÚstartÚendr  r~   )Zpandas.tseries.offsetsr+  r   rñ   ÚpdZbdate_ranger   r7   )r   r+  rr   r   r   r   Útest_custom_business_day_freqÄ  s    
ýþ	z-TestSeriesPlots.test_custom_business_day_freqzGH#24426)Úreasonc                 C   sj   t g d¢ƒ}| j ¡ \}}|j|d�}|j ¡ }|jddgdd� | j ¡ \}}|j ¡ }t ||¡ d S )NrŸ   rP   r   r2   T)Zinplace)	r   rH   r1   r7   r    r›   Zdropr   rƒ   )r   r½   rK   rB   ÚbeforeÚafterr   r   r   Ú%test_plot_accessor_updates_on_inplaceÓ  s    

z5TestSeriesPlots.test_plot_accessor_updates_on_inplacer,   r$   r:   c                 C   sT   t ddgƒ}| j ¡ \}}|j||d� | ¡ }|d dk s@J ‚|d dksPJ ‚d S )NrN   rO   rð   r   r2   )r   rH   r1   r7   rY   )r   r,   rr   rK   rB   Úxlimsr   r   r   Útest_plot_xlim_for_seriesß  s    z)TestSeriesPlots.test_plot_xlim_for_seriesc                 C   sh   t td�}|jsJ ‚| ¡ }t| ¡ ƒdks0J ‚| ¡ d }t| ¡ ƒdksPJ ‚t| ¡ ƒdksdJ ‚d S )Nr   r2   r   )r   ÚintÚemptyr7   rº   rZ   rí   r�   )r   r¦   rB   r$   r   r   r   Útest_plot_no_rowsë  s    

z!TestSeriesPlots.test_plot_no_rowsc                 C   sF   t g d¢ƒ}tjtdd�� | ¡  W d   ƒ n1 s80    Y  d S )NrŒ   rt   ru   )r   rw   rx   ry   r7   )r   r¦   r   r   r   Útest_plot_no_numeric_dataõ  s    z)TestSeriesPlots.test_plot_no_numeric_datazdata, indexrŸ   )rO   rN   r2   r   )r!   rè   rã   rb   )iv  i€  i¼  iž  c                 C   sL   t ||d�}|jdd�}| ¡ }dd„ t|jdd„ d�D ƒ}||ksHJ ‚d S )	N)r…   re   r%   r+   c                 S   s   g | ]}|  ¡ j‘qS r   )Úget_bboxrœ   )rª   Úpatchr   r   r   r¬     s   ÿz3TestSeriesPlots.test_plot_order.<locals>.<listcomp>c                 S   s
   |   ¡ jS )N)r;  r_   )r<  r   r   r   Ú<lambda>	  r­   z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rR   )r   r7   r  Úsortedr?   )r   r…   re   r½   rB   rŠ   r±   r   r   r   Útest_plot_orderú  s    	þzTestSeriesPlots.test_plot_orderc                 C   s4   t ddgƒ}|jddd�}|jd  ¡ dks0J ‚d S )Nr2   rN   rr   ZC3)r   r/   r   )r   r7   r`   Ú	get_color)r   rr   rB   r   r   r   Útest_style_single_ok  s    z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label))Nr‘   Únew)ÚoldrC  rB  )Nr‘   r‘   )r$   r:   r%   c                 C   st   t g d¢ƒ}||j_|j|d�}| ¡ dks0J ‚| ¡ |ks@J ‚|j|||d�}| ¡ |ks`J ‚| ¡ |kspJ ‚d S )NrŸ   r+   r‘   )r,   ZylabelZxlabel)r   re   r   r7   rÏ   r’   )r   r,   Z
index_nameZ	old_labelZ	new_labelr½   rB   r   r   r   Útest_xlabel_ylabel_series  s    z)TestSeriesPlots.test_xlabel_ylabel_seriesre   r   rN   rÇ   )r-  r  r  r2   )Údaysc                 C   s0   d}t ddg|d�j|d�}| ¡ dks,J ‚d S )N)rO   r2   r2   rN   r~   )Zxlim)r   r7   rY   )r   re   r5  rB   r   r   r   Útest_timedelta_index&  s    	z$TestSeriesPlots.test_timedelta_indexN)?Ú__name__Ú
__module__Ú__qualname__r   rC   rL   rT   ra   rf   rj   rs   r{   r‹   r”   rž   r§   r²   r³   r¾   r¿   rÖ   rØ   rÝ   rw   ÚmarkZparametrizerá   râ   ÚtdZskip_if_no_scipyrç   rî   rï   rø   rû   rý   rþ   rÿ   r  r  r  r  r  r  r  r"  r#  r%  r)  r*  r0  Zxfailr4  r6  r9  r:  r?  rA  rD  r/  Ztimedelta_rangeZ	TimedeltarF  r   r   r   r   r	      s–   #'
	!0?ÿ


			)!


þþ
þþþr	   )Ú__doc__r   Ú	itertoolsr   Únumpyr;   rw   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrK  Zpandasr/  r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr   r   Zpandas.plottingrò   rJ  ZslowZ
pytestmarkZskip_if_no_mplr	   r   r   r   r   Ú<module>   s   