a
    nÝEbÚN  ã                   @   s¬   d Z ddlZddlZddlm  mZ ddl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dd„ ƒZdd„ ZejG d	d
„ d
eƒƒZejG dd„ deƒƒZdS )z$ Test cases for misc plot functions é    N)Ú	DataFrameÚSeries)ÚTestPlotBaseÚ_check_plot_worksc                  C   sJ   t dddgiƒ} tjtdd�� |  ¡  W d   ƒ n1 s<0    Y  d S )NÚAé   é   z#matplotlib is required for plotting©Úmatch)r   ÚpytestÚraisesÚImportErrorÚplot)Údf© r   ú_/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/plotting/test_misc.pyÚtest_import_error_message   s    r   c                  C   sN  t jjj} d}tjt|d��  | dg g i d� W d   ƒ n1 sB0    Y  d}tjt|d��* | dttd�dd gi d� W d   ƒ n1 sŽ0    Y  | dt	ƒ dgd	d
ddœd�\}}}}|dksÈJ ‚|d	ksÔJ ‚|d
ksàJ ‚|ddiksðJ ‚| dttd�g i d�\}}}}|d u �sJ ‚|d u �s*J ‚|dk�s8J ‚t
|ƒdk�sJJ ‚d S )Nz@Called plot accessor for type list, expected Series or DataFramer	   Ú )Úbackend_nameÚdataÚargsÚkwargsz.should not be called with positional arguments)ZdtypeÚlineÚxÚyÚbarF)r   ÚkindÚgridr   zpandas.plotting._matplotlibé   )ÚplottingZ_coreZPlotAccessorZ_get_call_argsr   r   Ú	TypeErrorr   Úobjectr   Úlen)ÚfuncÚmsgr   r   r   r   r   r   r   Útest_get_accessor_args    s6    
.8
üür%   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestSeriesPlotsc                 C   s2   t  | |¡ dd l}| ¡  t ¡ | _d| j_d S )Nr   Úts)r   Úsetup_methodÚ
matplotlibZ
rcdefaultsÚtmZmakeTimeSeriesr'   Úname)ÚselfÚmethodZmplr   r   r   r(   D   s
    
zTestSeriesPlots.setup_methodc                 C   sv   ddl m} t d ¡�< t|| jd� t|| jjd� || jdd�}W d   ƒ n1 sX0    Y  | j|dgd� d S )Nr   )Úautocorrelation_plot©ÚseriesZTest)Úlabel)Úlabels)Úpandas.plottingr.   r*   Úassert_produces_warningr   r'   ÚvaluesZ_check_legend_labels)r,   r.   Úaxr   r   r   Útest_autocorrelation_plotM   s    ,z)TestSeriesPlots.test_autocorrelation_plotc                 C   s.   ddl m} t|| jd� t|| jdd� d S )Nr   )Úlag_plotr/   é   )r0   Zlag)r3   r8   r   r'   )r,   r8   r   r   r   Útest_lag_plotX   s    zTestSeriesPlots.test_lag_plotc                 C   s    ddl m} t|| jdd� d S )Nr   )Úbootstrap_ploté
   )r0   Úsize)r3   r;   r   r'   )r,   r;   r   r   r   Útest_bootstrap_plot^   s    z#TestSeriesPlots.test_bootstrap_plotN)Ú__name__Ú
__module__Ú__qualname__r(   r7   r:   r>   r   r   r   r   r&   B   s   	r&   c                   @   s¨   e Zd Zejej dddg¡dd„ ƒƒZdd„ Z	dd	„ Z
ej d
¡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#S )$ÚTestDataFramePlotsÚ	pass_axisFTc           
      C   st  ddl m} tj}d }|r,| j dd¡\}}t d¡�" tt	j
 dd¡ƒ}W d   ƒ n1 s^0    Y  tjt|ƒ d��" t|d|d|d	�}W d   ƒ n1 s 0    Y  |d d j ¡ }g d
¢}	|  ||	¡ | j|ddddd� |d d d |d< t t¡�" t|d|d|d	�}W d   ƒ n1 �s,0    Y  |d d j ¡ }g d¢}	|  ||	¡ | j|ddddd� d S )Nr   )Úmpl_ge_3_0_0é   é*   éd   )Zraise_on_extra_warningsÚalwaysgš™™™™™¹?)ÚfilterwarningsÚframeZrange_paddingr6   )z-2Ú0Ú2é   éZ   )Z
xlabelsizeZxrotZ
ylabelsizeZyrotr   )z-1.0z-0.5z0.0)Z"pandas.plotting._matplotlib.compatrD   r   Úscatter_matrixÚpltÚsubplotsr*   Z
RNGContextr   ÚnpÚrandomÚrandnr4   ÚUserWarningr   ZyaxisZget_majorticklabelsZ_check_text_labelsZ_check_ticks_props)
r,   rC   rD   rO   r6   Ú_r   ZaxesZaxes0_labelsÚexpectedr   r   r   Útest_scatter_matrix_axisf   sD    0ÿû$û&z+TestDataFramePlots.test_scatter_matrix_axisc                    sœ  ddl m‰  ddlm} |}t d ¡� t||dd� W d   ƒ n1 sJ0    Y  d}t||d|d�}| j| ¡ d d… ||d d d… d	� g d
¢}t||d|d�}| j| ¡ d d… ||d d d… d	� t||dˆ j	d�}‡ fdd„t
 dd|d  ¡ ¡D ƒ}| j| ¡ d d… ||d d d… d	� d}tt
j |¡t
j |¡t
j |¡dg| dœƒ}t||dd� d}t||d|d�}| j| ¡ d d… ||d d d… d	� g d
¢}t||d|d�}| j| ¡ d d… ||d d d… d	� t||dˆ j	d�}‡ fdd„t
 dd|d  ¡ ¡D ƒ}| j| ¡ d d… ||d d d… d	� g d¢}	tg d¢g d¢g d¢|	dœƒ}||d|	d�}| ¡ \}
}| j|
|	d� d S )Nr   ©Úcm)Úandrews_curvesÚName©rJ   Úclass_column©z#556270z#4ECDC4z#C7F464©rJ   r^   Úcolorr<   ©Ú
linecolorsÚmapping©Z
dodgerblueZ
aquamarineZseagreen©rJ   r^   Zcolormapc                    s   g | ]}ˆ   |¡‘qS r   ©Újet©Ú.0ÚnrY   r   r   Ú
<listcomp>³   ó    z:TestDataFramePlots.test_andrews_curves.<locals>.<listcomp>r   r   ©r   ÚBÚCr\   c                    s   g | ]}ˆ   |¡‘qS r   rg   ri   rY   r   r   rl   ×   rm   ©ÚbÚgÚr©r   r   rE   ©ra   ©rc   )r)   rZ   r3   r[   r*   r4   r   Ú_check_colorsÚ	get_linesrh   rR   ÚlinspaceÚnuniquer   rS   ÚrandÚget_legend_handles_labels)r,   Úirisr[   r   Úrgbar6   ÚcnamesÚcmapsÚlengthÚcolorsÚhandlesr2   r   rY   r   Útest_andrews_curves–   sz    ,ÿÿÿÿ
ÿ$ÿ


üÿ	ÿÿÿÿ
ÿ$ÿz&TestDataFramePlots.test_andrews_curvesc                    sš  ddl m‰  ddlm} |}t||dd�}t| ¡ ƒ}t|j ¡ ƒ}d}t||d|d�}| j	| ¡ d d… ||d d d… d	� g d
¢}t||d|d�}| j	| ¡ d d… ||d d d… d	� t||dˆ j
d�}‡ fdd„t dd|d  ¡ ¡D ƒ}	| j	| ¡ d d… |	|d d d… d	� t||ddd�}t| ¡ ƒ|| k�sHJ ‚g d¢}
tg d¢g d¢g d¢|
dœƒ}||d|
d�}| ¡ \}}| j	||
d� d S )Nr   rY   ©Úparallel_coordinatesr\   r]   r_   r`   r<   rb   re   rf   c                    s   g | ]}ˆ   |¡‘qS r   rg   ri   rY   r   r   rl      rm   z@TestDataFramePlots.test_parallel_coordinates.<locals>.<listcomp>r   F)rJ   r^   Zaxvlinesrq   ru   rn   rv   rw   )r)   rZ   r3   r‡   r   r"   ry   ÚxaxisZget_ticklabelsrx   rh   rR   rz   r{   r   r}   )r,   r~   r‡   r   r6   ÚnlinesZnxticksr   r€   r�   rƒ   r„   r2   r   rY   r   Útest_parallel_coordinatesâ   sH    ÿÿÿÿ
ÿ$ÿÿz,TestDataFramePlots.test_parallel_coordinatesz$ignore:Attempting to set:UserWarningc                 C   sê   ddl m} tttdƒƒdd„ tdƒD ƒdd„ tdƒD ƒ dd„ tdƒD ƒ d	œƒ}||d
dd�}| ¡ \}}tdd„ |D ƒ|ƒ}t|dd„ d�}tt|dd… ƒt|dd… ƒƒ}|D ],\}	}
|	d |
d k rà|	d |
d k s¸J ‚q¸dS )z
For #15908r   r†   é   c                 S   s   g | ]}d ‘qS )r   r   ©rj   rV   r   r   r   rl     rm   zSTestDataFramePlots.test_parallel_coordinates_with_sorted_labels.<locals>.<listcomp>r<   c                 S   s   g | ]}d ‘qS )rE   r   rŒ   r   r   r   rl     rm   c                 S   s   g | ]}d ‘qS )r   r   rŒ   r   r   r   rl     rm   )ZfeatÚclassr�   T)Zsort_labelsc                 S   s   g | ]}|  ¡ ‘qS r   ©Ú	get_color)rj   Zpolyliner   r   r   rl   !  rm   c                 S   s   | d S )Nr   r   )r   r   r   r   Ú<lambda>#  rm   zQTestDataFramePlots.test_parallel_coordinates_with_sorted_labels.<locals>.<lambda>)Úkeyéÿÿÿÿr   N)r3   r‡   r   ÚlistÚranger}   ÚzipÚsorted)r,   r‡   r   r6   Z	polylinesr2   Zcolor_label_tuplesZordered_color_label_tuplesZprev_next_tupelsÚprevZnxtr   r   r   Ú,test_parallel_coordinates_with_sorted_labels  s*    
ÿþþÿÿÿz?TestDataFramePlots.test_parallel_coordinates_with_sorted_labelsc                    s¾  ddl m‰  ddlm} |}t d ¡� t||dd� W d   ƒ n1 sJ0    Y  d}t||d|d�}dd	„ |jd d
… D ƒ}| j|d d… ||d d d… d� g d¢}t||d|d� dd	„ |jd d
… D ƒ}| j|||d d d… d� t||dˆ j	d� ‡ fdd	„t
 dd|d  ¡ ¡D ƒ}dd	„ |jd d
… D ƒ}| j|||d d d… d� g d¢g d¢g d¢g}	tg d¢g d¢g d¢g d¢dœƒ}||d|	d�}| ¡ \}
}| j|
|	d� d S )Nr   rY   )Úradvizr\   r]   r_   r`   c                 S   s   g | ]}|  ¡ d kr|‘qS ©r   ©Ú	get_label©rj   Úpr   r   r   rl   8  rm   z2TestDataFramePlots.test_radviz.<locals>.<listcomp>é   r<   )Ú
facecolorsrd   re   c                 S   s   g | ]}|  ¡ d kr|‘qS rš   r›   r�   r   r   r   rl   =  rm   rf   c                    s   g | ]}ˆ   |¡‘qS r   rg   ri   rY   r   r   rl   A  rm   r   c                 S   s   g | ]}|  ¡ d kr|‘qS rš   r›   r�   r   r   r   rl   B  rm   )ç        r¡   ç      ð?r¢   )r¡   ç      à?r¢   r¢   )r¢   r¡   r¡   r¢   ru   )r   r   rE   )rE   r   r   rq   rn   rv   )r    )r)   rZ   r3   r™   r*   r4   r   Úpatchesrx   rh   rR   rz   r{   r   r}   )r,   r~   r™   r   r   r6   r¤   r€   r�   rƒ   r„   r2   r   rY   r   Útest_radviz+  s0    ,$$ÿzTestDataFramePlots.test_radvizc                 C   s\  |j ddd� ¡ }t|jƒ}|jd|d�}dd„ |D ƒ|ks@J ‚d}tjt|d	��$ |jd|d
g d� W d   ƒ n1 s|0    Y  tjt|d	��& |jd|d d… d� W d   ƒ n1 sÀ0    Y  d}tjt|d	�� |jd|d� W d   ƒ n1 �s0    Y  |j ddd�jdd|d d… d�}dd„ |D ƒ}||d d… dg k�sXJ ‚d S )Nr\   r   )ZaxisT)rQ   Útitlec                 S   s   g | ]}|  ¡ ‘qS r   ©Z	get_titler�   r   r   r   rl   T  rm   z:TestDataFramePlots.test_subplot_titles.<locals>.<listcomp>zjThe length of `title` must equal the number of columns if using `title` of type `list` and `subplots=True`r	   zkittens > puppiesr   zNUsing `title` of type `list` is not supported unless `subplots=True` is passedFZ
SepalWidth)r   r   r’   )rQ   Zlayoutr¦   c                 S   s   g | ]}|D ]}|  ¡ ‘qqS r   r§   )rj   Zsublistr6   r   r   r   rl   n  rm   rE   r   )ZdropÚheadr“   Úcolumnsr   r   r   Ú
ValueError)r,   r~   r   r¦   r   r$   Z
title_listr   r   r   Útest_subplot_titlesM  s&    
ÿ24ÿ.ÿz&TestDataFramePlots.test_subplot_titlesc                 C   sz   t t d¡ƒ}t |d¡ tj ¡ }t |d¡ tj ¡ }||ksFJ ‚ddlm} |ddd�}|ddd�}||ksvJ ‚d S )N)r<   r<   r   ©Úget_standard_colorsr   rS   ©Ú
color_type)r   rR   Zzerosr   r‡   rS   Ú!pandas.plotting._matplotlib.styler­   )r,   r   Zrand1Zrand2r­   Úcolor1Úcolor2r   r   r   Ú$test_get_standard_colors_random_seedq  s    

z7TestDataFramePlots.test_get_standard_colors_random_seedc                 C   sd   ddl m} |ddd�}|ddd�}|ddd�}t|ƒdks@J ‚t|ƒdksPJ ‚t|ƒdks`J ‚d S )Nr   r¬   r   Údefaultr®   é	   rŸ   )r°   r­   r"   )r,   r­   r±   r²   Zcolor3r   r   r   Ú+test_get_standard_colors_default_num_colorsƒ  s    z>TestDataFramePlots.test_get_standard_colors_default_num_colorsc                    sv   t g d¢g d¢g d¢g d¢g d¢g d¢dœƒ}|j ¡ j ¡ }dd	„ | ¡ d
d… D ƒ‰ t‡ fdd„ˆ D ƒƒsrJ ‚d S )N)z
2017-02-03z
2017-03-03z
2017-01-01)zAlice Andersz	Bob BakerzCharlie Chaplin)gáz®Ga–Àg\�Âõ(Ü$@g     LÝ@)iÒ  ix	  éû   )é  iõ  iî	  )é4   r¸   é    )zaccount-startÚclientZbalancezdb-idzproxy-idZrankc                 S   s   g | ]}|  ¡ ‘qS r   ©Úget_facecolor©rj   Zrectr   r   r   rl   ›  rm   z=TestDataFramePlots.test_plot_single_color.<locals>.<listcomp>r   rE   c                 3   s   | ]}|ˆ d  kV  qdS )r   Nr   )rj   ra   ©rƒ   r   r   Ú	<genexpr>œ  rm   z<TestDataFramePlots.test_plot_single_color.<locals>.<genexpr>)r   r»   Zvalue_countsr   r   Úget_childrenÚall)r,   r   r6   r   r¿   r   Útest_plot_single_colorŽ  s    úÿ
z)TestDataFramePlots.test_plot_single_colorc                 C   sª   ddl m} ddlm} | tdƒ¡}|d|d�}t|ƒt|ƒksFJ ‚ttj	 
dd¡td	ƒd
�}| t ddd¡¡}|jjjd|d�}|jd  ¡ |jd  ¡ ks¦J ‚d S )Nr   rY   r¬   r9   r   rv   é0   é   ÚABCD©r©   é   )rÈ   é   )Zfigsizera   é   )r)   rZ   r°   r­   Úgnuplotr”   r"   r   rR   rS   rT   r“   rz   r   r   r   r¤   r½   )r,   rZ   r­   Zcolor_beforeZcolor_afterr   Z
color_listrž   r   r   r   Ú%test_get_standard_colors_no_appendingž  s    z8TestDataFramePlots.test_get_standard_colors_no_appendingc                    sÂ   ddg}ddg‰ t tj dd¡|d�}dddœ}|jd|d	�}d
d„ | ¡ ddd… D ƒ}t‡ fdd„t|ƒD ƒƒsxJ ‚|jd|d	�}dd„ | ¡ dd… D ƒ}t‡ fdd„t|ƒD ƒƒs¾J ‚d S )NÚarr   )r£   g¸…ëQ¸Î?g333333ã?)g333333Ó?çffffffæ?rÎ   r   rÇ   )rr   rÍ   r   )r   ra   c                 S   s   g | ]}|  ¡ d d… ‘qS )r   r’   r¼   r¾   r   r   r   rl   ½  rm   z<TestDataFramePlots.test_dictionary_color.<locals>.<listcomp>r   rE   c                 3   s   | ]\}}|ˆ | kV  qd S ©Nr   ©rj   Úindexra   ©rW   r   r   rÀ   ¾  rm   z;TestDataFramePlots.test_dictionary_color.<locals>.<genexpr>r   c                 S   s   g | ]}|  ¡ ‘qS r   rŽ   r¾   r   r   r   rl   Â  rm   c                 3   s   | ]\}}|ˆ | kV  qd S rÏ   r   rÐ   rÒ   r   r   rÀ   Ã  rm   )	r   rR   rS   r|   r   rÁ   rÂ   Ú	enumeratery   )r,   Ú
data_filesZdf1Z	dic_colorr6   rƒ   r   rÒ   r   Útest_dictionary_color±  s    
z(TestDataFramePlots.test_dictionary_colorc                 C   sØ   t jjj}| j ¡ }| dd¡}|jd|d d d�|d d< |jd|d d d�|d d< |d d  ¡  |d d  ¡  ||d d dƒs’J ‚||d d dƒr¨J ‚||d d dƒs¾J ‚||d d	 dƒrÔJ ‚d S )
Nr   rÅ   éç   r   r   ©Zsharexéé   r   rE   )	r   Ú_matplotlibÚtoolsÚ_has_externally_shared_axisrP   ÚfigurerQ   Úadd_subplotÚtwinx©r,   r#   ÚfigÚplotsr   r   r   Ú&test_has_externally_shared_axis_x_axisÅ  s    

z9TestDataFramePlots.test_has_externally_shared_axis_x_axisc                 C   sØ   t jjj}| j ¡ }| dd¡}|jd|d d d�|d d< |jd|d d d�|d d< |d d  ¡  |d d  ¡  ||d d dƒs’J ‚||d d dƒr¨J ‚||d d dƒs¾J ‚||d	 d dƒrÔJ ‚d S )
NrÅ   r   éA  r   r   ©ZshareyiE  r   rE   )	r   rÙ   rÚ   rÛ   rP   rÜ   rQ   rÝ   Ztwinyrß   r   r   r   Ú&test_has_externally_shared_axis_y_axisÞ  s    

z9TestDataFramePlots.test_has_externally_shared_axis_y_axisc                 C   s†   t jjj}| j ¡ }| dd¡}|jd|d d d�|d d< d}tj	t
|d��" ||d d d	ƒ W d   ƒ n1 sx0    Y  d S )
NrÅ   r   rã   r   r   rä   z&needs 'x' or 'y' as a second parameterr	   Úz)r   rÙ   rÚ   rÛ   rP   rÜ   rQ   rÝ   r   r   rª   )r,   r#   rà   rá   r$   r   r   r   Ú4test_has_externally_shared_axis_invalid_compare_axis÷  s    

zGTestDataFramePlots.test_has_externally_shared_axis_invalid_compare_axisc                 C   s´  t tj d¡tj d¡dœƒ}| j ¡ }| dd¡}|jd|d d d�|d d< |jd	|d d d�|d d< |d d  ¡ }|d d  ¡ }|d
 j	|d d dd� 
d¡ |d
 j	|d d d� |d
 j	|d d dd� 
d¡ |d
 j	|d d d� |d
 j	|d d dd� 
d¡ |d
 j	|d d d� |d j	|dd� |d j	|dd� |d d j ¡  ¡ �rxJ ‚|d d j ¡  ¡ �s”J ‚|d d j ¡  ¡ �r°J ‚d S )Niè  )rÍ   rr   r   rE   rÖ   r   r   r×   rØ   rÍ   zExternal share only)r6   r¦   z"this label should never be visible)r6   zInternal share (twin) onlyz#this label should always be visibleZBothrr   Úgreen)r6   ra   Úyellow)r   rR   rS   rT   rP   rÜ   rQ   rÝ   rÞ   r   Z
set_xlabelrˆ   rœ   Zget_visible)r,   r   rà   rá   Ztwin_ax1Ztwin_ax2r   r   r   Útest_externally_shared_axes  s0    
ÿÿÿz.TestDataFramePlots.test_externally_shared_axesN)r?   r@   rA   ÚtdZskip_if_no_scipyr   ÚmarkZparametrizerX   r…   rŠ   rI   r˜   r¥   r«   r³   r¶   rÃ   rÌ   rÕ   râ   rå   rç   rê   r   r   r   r   rB   d   s$   .L/

"$rB   )Ú__doc__ÚnumpyrR   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrë   Zpandasr   r   Zpandas._testingZ_testingr*   Zpandas.tests.plotting.commonr   r   r3   r   rì   ZslowZ
pytestmarkZskip_if_mplr   r%   Zskip_if_no_mplr&   rB   r   r   r   r   Ú<module>   s   
"!