U
    ÎZjƒ  ã                   @   sl   d Z ddlZddlZddlm  mZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ ejG dd„ deƒƒZdS )z Test cases for GroupBy.plot é    N)Ú	DataFrameÚIndexÚSeries)ÚTestPlotBasec                   @   sx   e Z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ej	 
dddg¡dd„ ƒZdd„ Zdd„ ZdS )ÚTestDataFrameGroupByPlotsc              	   C   s¤   d}t tjjdd|d�ƒ}t tjjdd|d�ƒ}t d¡� tjjddg|d�}W 5 Q R X | |¡ ¡  t 	¡  | |¡ 
¡  t 	¡  | |¡jd	d
� t 	¡  d S )Né
   é¦   é   )Úsizeé<   é*   ZmaleZfemaleg      à?)Úalpha)r   ÚnpÚrandomÚnormalÚtmZ
RNGContextÚchoiceÚgroupbyÚplotÚcloseÚhist)ÚselfÚnÚweightÚheightZgender© r   úe/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/plotting/test_groupby.pyÚ,test_series_groupby_plotting_nominally_works   s    zFTestDataFrameGroupByPlots.test_series_groupby_plotting_nominally_worksc                 C   s|   t dddddddddg	tj d¡dœdddddddddg	d	�}| d
¡d  ¡  t ¡  | d
¡d  dd„ ¡ t ¡  d S )Né   é   é   é	   )ÚdefÚvalg      ð?g       @g      @)Úindexr"   r#   c                 S   s   |   ¡ S )N)r   )Úxr   r   r   Ú<lambda>,   ó    zPTestDataFrameGroupByPlots.test_plotting_with_float_index_works.<locals>.<lambda>)	r   r   r   Úrandnr   r   r   r   Úapply©r   Údfr   r   r   Ú$test_plotting_with_float_index_works#   s    "þz>TestDataFrameGroupByPlots.test_plotting_with_float_index_worksc                 C   sp   t  ddd¡}tddgddgddgd	œƒ}|d
 j|d |d� tdgdgdgd	œƒ}|d
 j|d |d� d S )NéP   éf   r   ZAAAZBBBr   éU   éY   )ÚNameÚByColÚMarkr3   r2   )ZbyÚbins)r   Zaranger   r   )r   r4   r+   r   r   r   Útest_hist_single_row/   s
    z.TestDataFrameGroupByPlots.test_hist_single_rowc                 C   sd   t dddddgdddddgtdƒdœƒ}| d¡j d	d
¡ t ¡  | d¡d	 j ¡  t ¡  d S )Nr   r   r    é   é   Úababa©r%   ÚyÚzr;   r%   r:   )r   Úlistr   r   Úscatterr   r   Úliner*   r   r   r   Útest_plot_submethod_works7   s
    (z3TestDataFrameGroupByPlots.test_plot_submethod_worksc                 C   s„   t dddddgdddddgtdƒdœƒ}| d¡jd	d
dd�}t|d jƒdksTt‚| d¡jjd
dd�}t|d jƒdks€t‚d S )Nr   r   r    r6   r7   r8   r9   r;   r=   r%   r:   )Úkindr%   r:   Úa)r%   r:   )r   r<   r   r   ÚlenÚcollectionsÚAssertionErrorr=   )r   r+   Úresr   r   r   Útest_plot_kwargs>   s
    (z*TestDataFrameGroupByPlots.test_plot_kwargszcolumn, expected_axes_num)Nr   )Úbr   c                 C   s¦   d|f}|pdgdgg}t ddg ddg  dd�}ttj d	d
¡|ddgd�}| d¡}|jd|d�D ]8}| j|||d� t|d |ƒD ]\}	}
|  	|	|
¡ qŠqhd S )Nr   rA   rG   é   Ú1Ú2Úc©Únameé   r   ©r$   ÚcolumnsT)ÚlegendÚcolumn©Zaxes_numZlayoutr   )
r   r   r   r   r(   r   r   Ú_check_axes_shapeÚzipÚ_check_legend_labels)r   rR   Zexpected_axes_numZexpected_layoutZexpected_labelsr$   r+   ÚgZaxesÚaxZexpected_labelr   r   r   Ú#test_groupby_hist_frame_with_legendJ   s    
  ÿz=TestDataFrameGroupByPlots.test_groupby_hist_frame_with_legendrR   NrG   c              	   C   sp   t ddg ddg  dd�}ttj dd¡|dd	gd
�}| d¡}tjtdd�� |j	d|dd� W 5 Q R X d S )NrH   rI   rJ   rK   rL   rN   r   rA   rG   rO   ú Cannot use both legend and label©ÚmatchTÚd)rQ   rR   Úlabel©
r   r   r   r   r(   r   ÚpytestZraisesÚ
ValueErrorr   )r   rR   r$   r+   rW   r   r   r   Ú*test_groupby_hist_frame_with_legend_raises[   s
    
zDTestDataFrameGroupByPlots.test_groupby_hist_frame_with_legend_raisesc                 C   s|   t ddg ddg  dd�}ttj dd¡|dd	gd
�}| d¡}|d jdd�D ]$}| j|ddd� |  |ddg¡ qRd S )NrH   rI   rJ   rK   rL   rN   r   rA   rG   rO   T)rQ   r   )r   r   rS   )	r   r   r   r   r(   r   r   rT   rV   )r   r$   r+   rW   rX   r   r   r   Ú$test_groupby_hist_series_with_legende   s    
z>TestDataFrameGroupByPlots.test_groupby_hist_series_with_legendc              	   C   sn   t ddg ddg  dd�}ttj dd¡|dd	gd
�}| d¡}tjtdd�� |j	ddd� W 5 Q R X d S )NrH   rI   rJ   rK   rL   rN   r   rA   rG   rO   rZ   r[   Tr]   )rQ   r^   r_   )r   r$   r+   rW   r   r   r   Ú+test_groupby_hist_series_with_legend_raiseso   s
    
zETestDataFrameGroupByPlots.test_groupby_hist_series_with_legend_raises)Ú__name__Ú
__module__Ú__qualname__r   r,   r5   r?   rF   r`   ÚmarkZparametrizerY   rb   rc   rd   r   r   r   r   r      s   

	
r   )Ú__doc__Únumpyr   r`   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasr   r   r   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr   Zskip_if_no_mplr   r   r   r   r   Ú<module>   s   