o
    ôT·j:q  ã                   @   s®   d Z ddlZddlZddlZddlmZ ddlmZ ddl	Z
ddl	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 ddlmZ e d¡Ze d	¡ZG d
d„ dƒZdS )z Test cases for DataFrame.plot é    N)Úis_platform_linux)Únp_version_gte1p24)Ú	DataFrameÚSeriesÚ
date_range)Ú_check_axes_shapeÚ_check_box_return_typeÚ_check_legend_labelsÚ_check_ticks_propsÚ_check_visibleÚ_flatten_visible)Úpprint_thingÚ
matplotlibzmatplotlib.pyplotc                   @   s¶  e Zd Zejjej dg d¢¡dd„ ƒƒZejjej dg d¢¡dd„ ƒƒZejjej dg d¢¡dd„ ƒƒZ	ej dd	d
g¡dd„ ƒZ
ej dd	d
g¡dd„ ƒZej dg d¢¡dd„ ƒZdd„ Zejjdd�dd„ ƒZej dddgddgddgddgddgdd gg¡d!d"„ ƒZd#d$„ Zej d%i d&d'd(fd)d*id&d*d*fg¡d+d,„ ƒZejjej d-ed.ƒed/d.d0�g¡d1d2„ ƒƒZd3d4„ Zd5d6„ Zej dd7dgddgddgg¡d8d9„ ƒZd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ ZdDdE„ Zejjeo÷e ƒ dFdGdH�dIdJ„ ƒZ!ejje�oe ƒ dFdGdH�dKdL„ ƒZ"dMdN„ Z#ej dOg dP¢¡dQdR„ ƒZ$dSdT„ Z%dUdV„ Z&dWdX„ Z'dYdZ„ Z(d[d\„ Z)ej d]d^d_d`dadbdcd&ddgfg¡ej dg de¢¡dfdg„ ƒƒZ*ej dhdidjdkœdidjdldmœdndjdkœdndjdldmœdidGdkœdidGdldmœdndGdkœdndGdldmœdidjdoœdidjdldpœdndjdoœdndjdldpœdidjdqdrœdidjdldqdsœdndjdqdrœdndjdldqdsœdidGdqdrœdidGdldqdsœdndGdqdrœdndGdldqdsœdidjdqdtœdidjdldqduœdndjdqdtœdndjdldqduœg¡dvdw„ ƒZ+ej dhdidGdkœdidjdkœdndGdkœdndjdkœdidjdoœdndjdoœg¡dxdy„ ƒZ,ej dhdidGdkœdidjdkœdndGdkœdndjdkœdidjdoœdndjdoœg¡dzd{„ ƒZ-ej d|d&d}g¡d~d„ ƒZ.ej d€did�djigdnd�dGigdnd�djigdid‚djigdnd‚djigg¡dƒd„„ ƒZ/	i	G	G	…	†	†d‰d‡dˆ„Z0dbS )ŠÚTestDataFramePlotsSubplotsÚkind)ÚbarÚbarhÚlineÚareac                 C   s<  t tj d¡ d¡ttjd d… ƒd�}|j|dddd�}t|ddd	� |j	d
ks+J ‚t
||jƒD ]\}}t|t|ƒgd� q1|d d… D ],}t|jƒ t| ¡ dd� |dkrbt|jdd�dd� t|j ¡ dd� t| ¡ ƒ qEt|d jƒ t|d  ¡ ƒ t|d jdd�ƒ t|d j ¡ ƒ t|d  ¡ ƒ d S )Né   ©é
   é   r   ©ÚindexT)r   ÚsubplotsÚsharexÚlegendr   ©r   é   ©Úaxes_numÚlayout©r   ©ÚlabelséþÿÿÿF©Úvisibler   ©Úminoréÿÿÿÿ)r   ÚnpÚrandomÚdefault_rngÚlistÚstringÚascii_lettersÚplotr   ÚshapeÚzipÚcolumnsr	   r   r   ÚxaxisÚget_xticklabelsÚ	get_labelÚget_yticklabels)Úselfr   ÚdfÚaxesÚaxÚcolumn© r?   úr/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/pandas/tests/plotting/frame/test_frame_subplots.pyÚtest_subplots"   s*   þ
z(TestDataFramePlotsSubplots.test_subplotsc                 C   s†   t tj d¡ d¡ttjd d… ƒd�}|j|ddd�}|D ]"}t|j	ƒ t| 
¡ ƒ t|j
dd�ƒ t|j	 ¡ ƒ t| ¡ ƒ qd S )	Nr   r   r   r   TF©r   r   r   r)   )r   r,   r-   r.   r/   r0   r1   r2   r   r6   r7   r8   r9   ©r:   r   r;   r<   r=   r?   r?   r@   Útest_subplots_no_share_x@   s   þ
ûz3TestDataFramePlotsSubplots.test_subplots_no_share_xc                 C   sV   t tj d¡ d¡ttjd d… ƒd�}|j|ddd�}|D ]
}| ¡ d u s(J ‚qd S )Nr   r   r   r   TF)r   r   r   )	r   r,   r-   r.   r/   r0   r1   r2   Ú
get_legendrC   r?   r?   r@   Útest_subplots_no_legendO   s   þÿz2TestDataFramePlotsSubplots.test_subplots_no_legendr   r   c                 C   s  t dddd�}ttj d¡ d¡|d�}|j|ddd	�}t|d
dd� |d d… D ](}t|jƒ t| 	¡ dd� t|j	dd�dd� t|j 
¡ dd� t| ¡ ƒ q)t|d jƒ t|d  	¡ ƒ t|d j	dd�ƒ t|d j 
¡ ƒ t|d  ¡ ƒ t|dd� d S )Nú
2014-07-01ÚMEr   ©ÚstartÚfreqÚperiodsr   r   r   TrB   r   r   r    r&   Fr'   r)   r+   r   )Úxrot)r   r   r,   r-   r.   r2   r   r   r6   r7   r8   r9   r
   ©r:   r   Úidxr;   r<   r=   r?   r?   r@   Útest_subplots_timeseriesZ   s    
z3TestDataFramePlotsSubplots.test_subplots_timeseriesc                 C   sš   t dddd�}ttj d¡ d¡|d�}|j|dd	d
dd�}|D ]*}t|jƒ t| ¡ ƒ t|jdd�ƒ t|j 	¡ ƒ t| 
¡ ƒ t|dd
dd� q d S )NrG   rH   r   rI   r   r   r   TFé-   é   )r   r   r   ÚrotÚfontsizer)   )Ú
xlabelsizerM   Ú
ylabelsize)r   r   r,   r-   r.   r2   r   r6   r7   r8   r9   r
   rN   r?   r?   r@   Útest_subplots_timeseries_rotq   s   
úz7TestDataFramePlotsSubplots.test_subplots_timeseries_rotÚcol)ÚnumericÚ	timedeltaÚdatetime_no_tzÚdatetime_all_tzc              	   C   sÄ   t  g d¢¡tjddd�tjddd�tjddd�gt d¡t d	¡t d
¡gtjddd�tjd	dd�tjd
dd�gg d¢dœ}t|ƒ}|j|d�}| ¡ d  ¡ d }|| j	}||k 
¡ s`J ‚d S )N©r   r   é   iöÿÿÿÚs)Úunitr   ÚmÚhú2017-08-01 00:00:00ú2017-08-01 02:00:00ú2017-08-02 00:00:00T©Úutc©ÚThisÚshouldÚfail)rY   rZ   r[   r\   Útext©Úyr   r   )r,   ÚarrayÚpdÚ	TimedeltaÚto_datetimer   r2   Ú	get_linesÚget_dataÚvaluesÚall)r:   rX   ÚdataÚtestdatar=   ÚresultÚexpectedr?   r?   r@   Útest_subplots_timeseries_y_axis~   s(   ýýýï
z:TestDataFramePlotsSubplots.test_subplots_timeseries_y_axisc                 C   sd   t  g d¢¡g d¢dœ}t|ƒ}d}tjt|d�� |jdd� W d   ƒ d S 1 s+w   Y  d S )Nr]   rh   )rY   rl   zno numeric data to plot©Úmatchrl   rm   )r,   ro   r   ÚpytestÚraisesÚ	TypeErrorr2   )r:   rw   rx   Úmsgr?   r?   r@   Ú%test_subplots_timeseries_y_text_error�   s   þ"ÿz@TestDataFramePlotsSubplots.test_subplots_timeseries_y_text_errorz6not support for period, categorical, datetime_mixed_tz)Úreasonc                 C   s  t  g d¢¡tjddd�tjddd�tjddd�gtjg d¢g d¢d	d
�tjddd�t d¡t d¡gdœ}t|ƒ}|jddd�}| ¡ d  	¡ d |d j
k ¡ sTJ ‚|jddd�}| ¡ d  	¡ d |d j
k ¡ snJ ‚|jddd�}| ¡ d  	¡ d |d j
k ¡ sˆJ ‚dS )aÉ  
        This test will fail for:
            period:
                since period isn't yet implemented in ``select_dtypes``
                and because it will need a custom value converter +
                tick formatter (as was done for x-axis plots)

            categorical:
                 because it will need a custom value converter +
                 tick formatter (also doesn't work for x-axis, as of now)

            datetime_mixed_tz:
                because of the way how pandas handles ``Series`` of
                ``datetime`` objects with different timezone,
                generally converting ``datetime`` objects in a tz-aware
                form could help with this problem
        r]   rc   ÚH)rK   z2017-08-01 02:00re   )ÚcÚbÚa)r‡   r†   r…   F)Ú
categoriesÚorderedTrf   rd   )rY   ÚperiodÚcategoricalÚdatetime_mixed_tzrY   rŠ   )Úxrn   r   r   r‹   rŒ   N)r,   ro   rp   ÚPeriodÚCategoricalrr   r   r2   rs   rt   ru   rv   )r:   rw   rx   Ú	ax_periodÚax_categoricalÚax_datetime_mixed_tzr?   r?   r@   Ú-test_subplots_timeseries_y_axis_not_supported¨   s<   ýÿýöþÿýÿ
ýzHTestDataFramePlotsSubplots.test_subplots_timeseries_y_axis_not_supportedzlayout, exp_layout)r   r   )r+   r   )r   r+   )r   é   )r+   r”   )r”   r+   )r”   r   c                 C   sV   t tj d¡ d¡ttjd d… ƒd�}|jd|d�}t|d|d� |j	|ks)J ‚d S )	Nr   r   r   r   T©r   r"   r   r    ©
r   r,   r-   r.   r/   r0   r1   r2   r   r3   )r:   r"   Ú
exp_layoutr;   r<   r?   r?   r@   Ú!test_subplots_layout_multi_columnÛ   s   þz<TestDataFramePlotsSubplots.test_subplots_layout_multi_columnc                 C   s®   t tj d¡ d¡ttjd d… ƒd�}d}tjt	|d�� |j
ddd	� W d   ƒ n1 s/w   Y  d
}tjt	|d�� |j
ddd	� W d   ƒ d S 1 sPw   Y  d S )Nr   r   r   r   z1Layout of 1x1 must be larger than required size 3r|   T©r   r   r•   z1At least one dimension of layout must be positive)r+   r+   )r   r,   r-   r.   r/   r0   r1   r~   r   Ú
ValueErrorr2   )r:   r;   r�   r?   r?   r@   Ú'test_subplots_layout_multi_column_errorñ   s   þÿ"ÿzBTestDataFramePlotsSubplots.test_subplots_layout_multi_column_errorz:kwargs, expected_axes_num, expected_layout, expected_shaper   r™   ©r   r"   )r   r   c                 C   s\   t tj d¡ d¡ttjd d… ƒd�}|jdddi|¤Ž}t|||d� |j	|ks,J ‚d S )	Nr   ©r   r   r   r   r   Tr    r?   r–   )r:   ÚkwargsÚexpected_axes_numÚexpected_layoutÚexpected_shaper;   r<   r?   r?   r@   Ú"test_subplots_layout_single_column   s   þýz=TestDataFramePlotsSubplots.test_subplots_layout_single_columnrO   r^   ú1/1/2000©rL   c                 C   sX   t  d ¡� ttj d¡ d¡|d�}|jddd� W d   ƒ d S 1 s%w   Y  d S )Nr   )r^   r”   r   T)r   r   r•   )ÚtmÚassert_produces_warningr   r,   r-   r.   Ústandard_normalr2   )r:   rO   r;   r?   r?   r@   Útest_subplots_warnings  s   "þz1TestDataFramePlotsSubplots.test_subplots_warningsc                 C   sÔ   t j dd¡\}}ttj d¡ d¡ttj	d d… ƒd�}|j
d|d ddd	�}t|dd
d� |jdks6J ‚|d j|u s?J ‚|j
d|d ddd	�}t|dd
d� |jdksXJ ‚|d j|u saJ ‚t|ddd� d S )Nr   r   r   r   r   Tr   F©r   r=   r   Úsharey)r   r   r    r#   r   é   )r   r   )ÚmplÚpyplotr   r   r,   r-   r.   r/   r0   r1   r2   r   r3   Úfigure)r:   Úfigr<   r;   Úreturnedr?   r?   r@   Útest_subplots_multiple_axes  s   þz6TestDataFramePlotsSubplots.test_subplots_multiple_axesc                 C   s€   t tj d¡ d¡ttjd d… ƒd�}d}tj 	dd¡\}}t
jt|d�� |jd|d	� W d   ƒ d S 1 s9w   Y  d S )
Nr   r   r   r   z@The number of passed axes must be 3, the same as the output plotr   r|   T©r   r=   )r   r,   r-   r.   r/   r0   r1   r¬   r­   r   r~   r   rš   r2   )r:   r;   r�   Ú_r<   r?   r?   r@   Ú!test_subplots_multiple_axes_error2  s   þ"þz<TestDataFramePlotsSubplots.test_subplots_multiple_axes_error)r   r   c                 C   sš   t j dd¡\}}ttj d¡ d¡ttj	d d… ƒd�}t
 t¡�! |jd||ddd�}t|d|d	� |jd
ks;J ‚W d   ƒ d S 1 sFw   Y  d S )Nr   )r   r”   r   r   TF)r   r=   r"   r   rª   r”   r    )r”   )r¬   r­   r   r   r,   r-   r.   r/   r0   r1   r¥   r¦   ÚUserWarningr2   r   r3   )r:   r"   r—   r³   r<   r;   r°   r?   r?   r@   Ú!test_subplots_multiple_axes_2_dim?  s   þ
ÿ"ûz<TestDataFramePlotsSubplots.test_subplots_multiple_axes_2_dimc                 C   sn   t j dd¡\}}ttj d¡ d¡ttj	d d… ƒd�}|j
d|gddd�}t|dd	d
� |jdks5J ‚d S )Nr   r   r�   r   r   TFr©   r™   r    rœ   )r¬   r­   r   r   r,   r-   r.   r/   r0   r1   r2   r   r3   )r:   r³   r<   r;   r?   r?   r@   Ú&test_subplots_multiple_axes_single_colY  s   þzATestDataFramePlotsSubplots.test_subplots_multiple_axes_single_colc                 C   sH  t jjddddd�\}}t jjddddd� ttj d¡ d	¡t	d
ddd�d�}t
| ¡ ƒD ]\}}|| j|dd� q.|dd…  ¡ D ]
}t| ¡ dd� qD|d  ¡ D ]
}t| ¡ dd� qU|g d¢dgf  ¡ D ]
}t| ¡ dd� qk|g d¢dgf  ¡ D ]
}t| ¡ dd� q�|g d¢dgf  ¡ D ]
}t| ¡ dd� q—d S )Nr   T)r   rª   gš™™™™™©?gffffffî?g333333Ó?)ÚleftÚrightÚhspaceÚwspacer   )r   é	   rG   rH   r   rI   r   r^   )r=   rT   r   r+   Fr'   )r   r   r   r   )r¬   r­   r   Úsubplots_adjustr   r,   r-   r.   r§   r   Ú	enumerateÚravelr2   r   r7   r9   )r:   r³   r<   r;   Úir=   r?   r?   r@   Útest_subplots_ts_share_axesf  s&   þÿz6TestDataFramePlotsSubplots.test_subplots_ts_share_axesc                 C   sž   g d¢g d¢g d¢dœ}t |tddƒd�}|dd	g jd
d�}|d j|d d
d� t|d  ¡ dd� t|d  ¡ d
d� | ¡ D ]
}t| ¡ d
d� qBd S )N)ç      ð?ç       @ç      @ç      @)rÅ   rÄ   rÃ   rÂ   )r^   r   r   r”   )ÚAÚBÚCz
2014 10 11z
2014 10 14r   rÆ   rÇ   T©r   rÈ   r   )r=   Úsecondary_yFr'   r   )r   r   r2   r   r7   r¿   r9   )r:   Údr;   r<   r=   r?   r?   r@   Ú'test_subplots_sharex_axes_existing_axesƒ  s   ÿzBTestDataFramePlotsSubplots.test_subplots_sharex_axes_existing_axesc                 C   sX   t tj d¡ d¡tdƒd�}|jdd�}|D ]}t|dgd� t|jƒd	ks)J ‚qd S )
Nr   ©r^   r^   Úaaaaa©r5   TrÉ   r‡   r$   r   ©	r   r,   r-   r.   r/   r2   r	   ÚlenÚlines©r:   r;   r<   r=   r?   r?   r@   Útest_subplots_dup_columns�  s   þz4TestDataFramePlotsSubplots.test_subplots_dup_columnsc                 C   sZ   t tj d¡ d¡tdƒd�}|jddd�}|D ]}t|dgd� t|jƒd	ks*J ‚qd S )
Nr   rÍ   rÎ   rÏ   Tr‡   )r   rÊ   r$   r   rÐ   rÓ   r?   r?   r@   Ú%test_subplots_dup_columns_secondary_y˜  s   ýz@TestDataFramePlotsSubplots.test_subplots_dup_columns_secondary_yc                 C   sf   t tj d¡ d¡tdƒd�}|jdd�}t|dgd d	� t|jƒd
ks'J ‚t|j	jƒdks1J ‚d S )Nr   rÍ   rÎ   rÏ   r‡   )rÊ   z	a (right)r^   r$   r   )
r   r,   r-   r.   r/   r2   r	   rÑ   rÒ   Úright_ax)r:   r;   r=   r?   r?   r@   Ú0test_subplots_dup_columns_secondary_y_no_subplot¡  s
   zKTestDataFramePlotsSubplots.test_subplots_dup_columns_secondary_y_no_subplotzWeird rounding problemsF)rƒ   Ústrictc                 C   sZ   t  g d¢¡}tdgd ttddƒƒdœtdƒd�}|jjddd	�}t |j	 
¡ |¡ d S )
N)çš™™™™™¹?rÂ   ç      $@éd   r   r^   r   r«   ©rÆ   rÇ   r   T)ÚgridÚlog)r,   ro   r   r/   Úranger2   r   r¥   Úassert_numpy_array_equalÚyaxisÚget_ticklocs)r:   rz   r;   r=   r?   r?   r@   Útest_bar_log_no_subplots©  s   &z3TestDataFramePlotsSubplots.test_bar_log_no_subplotsc                 C   sf   t  g d¢¡}ttddgƒtddgƒgƒjjddd�}t |d j 	¡ |¡ t |d j 	¡ |¡ d S )	N)rÙ   rÂ   rÚ   g      Y@g     @�@g     ˆÃ@éÈ   i,  iô  T)rÞ   r   r   r   )
r,   ro   r   r   r2   r   r¥   rà   rá   râ   )r:   rz   r=   r?   r?   r@   Útest_bar_log_subplots¸  s   ÿz0TestDataFramePlotsSubplots.test_bar_log_subplotsc                 C   s6   |}|j jdd�}t|tƒsJ ‚t|d g d¢d� d S )NTrÉ   ©ÚheightÚweightÚcategory)Úexpected_keys)r2   ÚboxÚ
isinstancer   r   )r:   Úhist_dfr;   ry   r?   r?   r@   Ú)test_boxplot_subplots_return_type_defaultÇ  s   

ÿzDTestDataFramePlotsSubplots.test_boxplot_subplots_return_type_defaultÚrt)Údictr<   Úbothc                 C   s,   |}|j j|dd�}t||g d¢dd� d S )NT)Úreturn_typer   ræ   F)rê   Úcheck_ax_title)r2   rë   r   )r:   rí   rï   r;   r°   r?   r?   r@   Ú!test_boxplot_subplots_return_typeÑ  s   
üz<TestDataFramePlotsSubplots.test_boxplot_subplots_return_typec                 C   sÒ   t tj d¡ d¡tddd�tdƒd�}tjddd	d
�\}}|j	d	|d�}|D ]}t
|jƒdks2J ‚t| ¡ d	d� q't|d  ¡ dd� t|d jd	d�dd� t|d  ¡ d	d� t|d jd	d�d	d� d S )Nr   ©r   r   r£   r   r¤   ÚAB©r   r5   r   T)r   r²   r'   r   Fr)   ©r   r,   r-   r.   r§   r   r/   Úpltr   r2   rÑ   rÒ   r   r9   r7   ©r:   r;   r³   r<   r=   r?   r?   r@   Ú$test_df_subplots_patterns_minorticksÜ  s   
ýz?TestDataFramePlotsSubplots.test_df_subplots_patterns_minorticksc                 C   sú   t tj d¡ d¡tddd�tdƒd�}t dd¡\}}t	 
t¡� |jd	|d	d
�}W d   ƒ n1 s4w   Y  |D ]}t|jƒdksFJ ‚t| ¡ d	d� q;t|d  ¡ dd� t|d jd	d�dd� t|d  ¡ d	d� t|d jd	d�d	d� d S )Nr   rõ   r£   r   r¤   rö   r÷   r   T)r   r=   r   r'   r   Fr)   )r   r,   r-   r.   r§   r   r/   rù   r   r¥   r¦   rµ   r2   rÑ   rÒ   r   r9   r7   rú   r?   r?   r@   Ú2test_df_subplots_patterns_minorticks_1st_ax_hiddenð  s    
ýÿzMTestDataFramePlotsSubplots.test_df_subplots_patterns_minorticks_1st_ax_hiddenc                 C   sš   t tj d¡ d¡tddd�tdƒd�}t dd¡\}}|j	d	|d
�}|D ]%}t
|jƒdks0J ‚t| ¡ d	d� t| ¡ d	d� t|jd	d�d	d� q%d S )Nr   rõ   r£   r   r¤   rö   r÷   r   Tr²   r'   r)   rø   rú   r?   r?   r@   Ú/test_df_subplots_patterns_minorticks_not_shared  s   
ýüzJTestDataFramePlotsSubplots.test_df_subplots_patterns_minorticks_not_sharedc                 C   sª   t tj d¡ d¡ƒ}tj|jdd …df< tj|jd d…df< tj dd¡\}}|j	j
|ddd� t d	d
d¡}t ddd¡}t |d  ¡ |¡ t |d  ¡ |¡ d S )Nr   rõ   r^   r   r   TF)r=   r   r   g      @r   ç      à?ç      à¿)r   r,   r-   r.   ÚnanÚilocr¬   r­   r   r2   r   Úaranger¥   rà   Ú
get_xticks)r:   r;   r³   ÚaxsÚexpected_ax1Úexpected_ax2r?   r?   r@   Útest_subplots_sharex_false  s   z5TestDataFramePlotsSubplots.test_subplots_sharex_falsec              	   C   sÞ   t ddd�}ttj d¡ d¡|d�}i }ttjjdƒr d|d	< tjj	di |¤Ž\}}t
 d ¡�5 |j|d
 d� t
jdd��}tj |¡ W d   ƒ n1 sPw   Y  W d   ƒ d S W d   ƒ d S 1 shw   Y  d S )NÚnowr   )rJ   rL   r   r   r   Úget_constrained_layoutTÚconstrained_layoutr   )r=   )Úreturn_filelike)r   )r   r   r,   r-   r.   Úhasattrr¬   r­   ÚFigurer   r¥   r¦   r2   Úensure_cleanÚsavefig)r:   rO   r;   rž   r³   r<   Úpathr?   r?   r@   Ú test_subplots_constrained_layout#  s   ÿþ"þz;TestDataFramePlotsSubplots.test_subplots_constrained_layoutz index_name, old_label, new_label)NÚ Únew)Úoldr  r  )Nr  r  )Nr  r   Nr  r   )r   r   r   c                    s¬   t ddgddggddgd�}||j_|j|dd�}td	d
„ |D ƒƒs$J ‚t‡fdd
„|D ƒƒs1J ‚|j|ˆ ˆ dd�}t‡ fdd
„|D ƒƒsGJ ‚t‡ fdd
„|D ƒƒsTJ ‚d S )Nr   r   r^   zType AzType BrÏ   T©r   r   c                 s   s   � | ]	}|  ¡ d kV  qdS )r  N)Ú
get_ylabel©Ú.0r=   r?   r?   r@   Ú	<genexpr>D  ó   € zSTestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplots.<locals>.<genexpr>c                 3   s   � | ]	}|  ¡ ˆ kV  qd S ©N)Ú
get_xlabelr  )Ú	old_labelr?   r@   r  E  r  )r   ÚylabelÚxlabelr   c                 3   ó    � | ]}|  ¡ tˆ ƒkV  qd S r  )r  Ústrr  ©Ú	new_labelr?   r@   r  I  ó   € c                 3   r   r  )r  r!  r  r"  r?   r@   r  J  r$  )r   r   Únamer2   rv   )r:   r   Ú
index_namer  r#  r;   r<   r?   )r#  r  r@   Ú%test_xlabel_ylabel_dataframe_subplots0  s   z@TestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplotsrž   r   T)r   ÚstackedçÍÌÌÌÌÌì?)r   r(  Úwidthr   r  )r   r   r*  Úedge)r   r(  Úalign)r   r(  r*  r,  )r   r   r,  )r   r   r*  r,  c                 C   s:   t dgd ttdƒƒdœtdƒd�}| j|fi |¤Ž d S )Nr   r^   rÜ   r   )r   r/   rß   Ú_check_bar_alignment©r:   rž   r;   r?   r?   r@   Útest_bar_align_multiple_columnsL  s   $#z:TestDataFramePlotsSubplots.test_bar_align_multiple_columnsc                 C   s,   t tj d¡ d¡ƒ}| j|fi |¤Ž d S )Nr   r^   ©r   r,   r-   r.   r§   r-  r.  r?   r?   r@   Útest_bar_align_single_columnr  s   z7TestDataFramePlotsSubplots.test_bar_align_single_columnc                 C   s2   t tj d¡ d¡ƒ}| j|fdddœ|¤Ž d S )Nr   rÍ   r)  gš™™™™™É?)r*  Úpositionr0  r.  r?   r?   r@   Útest_bar_barwidth_position�  ó   z5TestDataFramePlotsSubplots.test_bar_barwidth_positionÚwrÂ   c                 C   s†   t tj d¡ d¡ƒ}|jjd|d�}|j ¡ }t	 
|t g d¢¡¡ | ¡ dks+J ‚|jd  ¡ dks6J ‚|jd	  ¡ d
ksAJ ‚d S )Nr   rÍ   T)r(  r*  )r   r   r   r   r”   )g      è¿g      @r   rÿ   r+   g      @)r   r,   r-   r.   r§   r2   r   r6   râ   r¥   rà   ro   Úget_xlimÚpatchesÚget_x)r:   r5  r;   r=   Úticksr?   r?   r@   Útest_bar_barwidth_position_int�  s   
z9TestDataFramePlotsSubplots.test_bar_barwidth_position_intzkind, kwargsr(  r   c                 C   s2   t tj d¡ d¡ƒ}| j|f|ddœ|¤Ž d S )Nr   rÍ   r   )r   r*  r0  )r:   r   rž   r;   r?   r?   r@   Ú&test_bar_barwidth_position_int_width_1œ  r4  zATestDataFramePlotsSubplots.test_bar_barwidth_position_int_width_1Úcenterrþ   c              	   C   s  |j ||||||dd�}t|ƒ}|D ]ú}	|dkr6|	j}
|	 ¡ \}}tdd„ |	jD ƒƒ}tdd„ |	jD ƒƒ}n$|dkrX|	j}
|	 ¡ \}}tdd„ |	jD ƒƒ}td	d„ |	jD ƒƒ}nt	‚t
 ||d
 ¡ t
 ||d
 ¡ |	jd }|dkrˆ|du s{|du rˆ| ¡ }|| ¡ |  }nU|dkr¤|du r¤| ¡ | ¡ t|jƒ |  }| ¡ }n9|dkr¿|du s°|du r¿| ¡ | ¡ |  }| ¡ }n|dkrÛ|du rÛ| ¡ | ¡ t|jƒ |  }| ¡ }nt	‚|
 ¡ t t|ƒ¡k ¡ sìJ ‚|dkrût
 |
 ¡ d |¡ q|dk�rt
 |
 ¡ d |¡ qt	‚|S )NT)r   r(  r   r,  r*  r2  rÝ   r   c                 s   ó   � | ]}|  ¡ V  qd S r  )r8  ©r  Úpr?   r?   r@   r  Å  ó   € zBTestDataFramePlotsSubplots._check_bar_alignment.<locals>.<genexpr>c                 s   ó    � | ]}|  ¡ | ¡  V  qd S r  )r8  Ú	get_widthr>  r?   r?   r@   r  Æ  r$  r   c                 s   r=  r  )Úget_yr>  r?   r?   r@   r  Ê  r@  c                 s   rA  r  )rC  Ú
get_heightr>  r?   r?   r@   r  Ë  r$  g      Ð?r   Fr<  r+  )r2   r   r6   r6  Úminr7  Úmaxrá   Úget_ylimrš   r¥   Úassert_almost_equalr8  rB  rÑ   r5   rC  rD  râ   r,   r  rv   )r:   r;   r   r(  r   r,  r*  r2  r<   r=   ÚaxisÚax_minÚax_maxÚmin_edgeÚmax_edger?  r+  r<  r?   r?   r@   r-  «  sZ   
ù





z/TestDataFramePlotsSubplots._check_bar_alignment)r   FFr<  rþ   rþ   )1Ú__name__Ú
__module__Ú__qualname__r~   ÚmarkÚslowÚparametrizerA   rD   rF   rP   rW   r{   r‚   Úxfailr“   r˜   r›   r¢   rß   r   r¨   r±   r´   r¶   r·   rÁ   rÌ   rÔ   rÕ   r×   r   r   rã   rå   rî   rô   rû   rü   rý   r  r  r'  r/  r1  r3  r:  r;  r-  r?   r?   r?   r@   r   !   s@   	

ÿ

2úþ

þþ
ýþ
	ý


ý




ûþ












äþ
!úþ
úþ






ûþ

ør   )Ú__doc__r0   Únumpyr,   r~   Úpandas.compatr   Úpandas.compat.numpyr   Úpandasrp   r   r   r   Úpandas._testingÚ_testingr¥   Úpandas.tests.plotting.commonr   r   r	   r
   r   r   Úpandas.io.formats.printingr   Úimportorskipr¬   rù   r   r?   r?   r?   r@   Ú<module>   s     	

