o
    S+ iö‰  ã                   @   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Z ddl	m
Z
 ddlm  mZ ddlZddlmZmZ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m Z m!Z!m"Z"m#Z#m$Z$ e %d	¡Z&e %d
¡Z'ej(dd„ ƒZ)ej(dd„ ƒZ*G dd„ dƒZ+dS )z Test cases for Series.plot é    )Údatetime)ÚchainN)Úis_platform_linux)Únp_version_gte1p24)Ú	DataFrameÚSeriesÚ
date_rangeÚperiod_rangeÚplotting)Ú_check_ax_scalesÚ_check_axes_shapeÚ_check_colorsÚ_check_grid_settingsÚ_check_has_errorbarsÚ_check_legend_labelsÚ_check_plot_worksÚ_check_text_labelsÚ_check_ticks_propsÚ_unpack_cyclerÚ
get_y_axisÚ
matplotlibzmatplotlib.pyplotc                   C   s"   t tjdtjdtdddddS )Né
   ©Údtypeú
2020-01-01©ÚperiodsÚts©ÚindexÚname)r   ÚnpÚarangeÚfloat64r   © r$   r$   úm/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/pandas/tests/plotting/test_series.pyr   '   s
   
ýr   c                   C   s$   t tdƒtjddd„ tdƒD ƒdS )Né   Úseriesc                 S   s   g | ]}d |› ‘qS )Zi_r$   ©Ú.0Úir$   r$   r%   Ú
<listcomp>3   s    zseries.<locals>.<listcomp>)r   r    r   )r   Úranger!   r#   r$   r$   r$   r%   r'   0   s   ÿr'   c                   @   s´  e Zd Zejjej dddiddig¡dd„ ƒƒZejjdd	„ ƒZejjej d
ddiddigddiddigddidddœgg¡dd„ ƒƒZ	ejjdd„ ƒZ
ejjdd„ ƒZdd„ Zej ddddejde d ¡d!d"d#g¡d$d%„ ƒZd&d'„ Zd(d)„ Zej di d*d+id*d,ig¡d-d.„ ƒZd/d0„ Zd1d2„ Zej di d3dig¡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!ej dLdMe"dNdOdPg¡dQdR„ ƒZ#dSdT„ Z$dUdV„ Z%ejj&e'oðe(ƒ dWddXej dYdZd[g¡d\d]„ ƒƒZ)ejj&e'o
e(ƒ dWddXej d^g d_¢g d`¢g¡dadb„ ƒƒZ*dcdd„ Z+dedf„ Z,dgdh„ Z-didj„ Z.dkdl„ Z/dmdn„ Z0dodp„ Z1dqdr„ Z2dsdt„ Z3dudv„ Z4dwdx„ Z5dydz„ Z6d{d|„ Z7d}d~„ Z8dd€„ Z9dd‚„ Z:dƒd„„ Z;d…d†„ Z<d‡dˆ„ Z=ej d‰dŠd‹g¡dŒd„ ƒZ>dŽd„ Z?ej dd‘d’gdMd’gdMe@ Ad’¡gd“e@ Bd”d•d’¡gg¡d–d—„ ƒZCd˜d™„ ZDdšd›„ ZEdœd„ ZFejj&dždŸd d¡„ ƒZGej deHjIjJeHjIjK ¡d¢d£„ ƒZLej deHjIjJeHjIjK ¡d¤d¥„ ƒZMej deHjIjJ¡d¦d§„ ƒZNej deHjIjJ¡d¨d©„ ƒZOej deHjIjJ¡dªd«„ ƒZPd¬d­„ ZQd®d¯„ ZRd°d±„ ZSejjej dddg¡ej d²eTe@ Ue@jV Wd³¡ Xd´¡¡ƒe@ Ue@jV Wd³¡ Xd´¡¡eYe@ Ue@jV Wd³¡ Xd´¡¡ƒeZe@ Ue@jV Wd³¡ Xdµ¡¡d¶d·gd¸g¡d¹dº„ ƒƒƒZ[ejjd»d¼„ ƒZ\ejjej d²eTe@ Ue@jV Wd³¡ Xd½¡¡ƒeZe@ Ue@jV Wd³¡ Xd¾¡¡d¶d·gd¸g¡d¿dÀ„ ƒƒZ]ejjdÁdÂ„ ƒZ^ejjdÃdÄ„ ƒZ_ejjdÅdÆ„ ƒZ`ejjdÇdÈ„ ƒZaejjdÉdÊ„ ƒZbej dËg dÌ¢¡dÍdÎ„ ƒZcdÏdÐ„ ZddÑdÒ„ ZedÓdÔ„ ZfdÕdÖ„ Zgd×dØ„ ZhdÙdÚ„ ZidÛdÜ„ Zjejj&dÝdŸdÞdß„ ƒZkej dddàg¡dádâ„ ƒZldãdä„ Zmdådæ„ Znej dçg dè¢g dé¢fg dê¢g dë¢fg¡dìdí„ ƒZodîdï„ Zpej dðg dñ¢¡ej dg dò¢¡dódô„ ƒƒZqej dLerjsdõd³död÷erjtdødùerjtd³dùgg¡dúdû„ ƒZudüdý„ Zvejjdþdÿ„ ƒZwdMS (   ÚTestSeriesPlotsÚkwargsÚlabelZfooÚ	use_indexFc                 C   s   t |jfi |¤Ž d S ©N©r   Úplot)Úselfr   r.   r$   r$   r%   Ú	test_plot8   s   zTestSeriesPlots.test_plotc                 C   s   t |jdd}t|dd d S )Nr   )Úrot©Zxrot)r   r3   r   )r4   r   Úaxesr$   r$   r%   Útest_plot_tick_props=   s   z$TestSeriesPlots.test_plot_tick_propszscale, exp_scaleÚlogyTÚyaxisÚlogZlogxÚxaxisZloglog)r=   r;   c                 C   s*   t |jfddi|¤Ž}t|fi |¤Ž d S )NÚstyleÚ.)r   r3   r   )r4   r   ÚscaleZ	exp_scaleÚaxr$   r$   r%   Útest_plot_scalesB   s   
z TestSeriesPlots.test_plot_scalesc                 C   ó   t |d d… jjƒ d S ©Nr   )r   r3   Úbar©r4   r   r$   r$   r%   Útest_plot_ts_barO   s   z TestSeriesPlots.test_plot_ts_barc                 C   s   t |jjdd d S )NF©Ústacked)r   r3   ÚarearF   r$   r$   r%   Útest_plot_ts_area_stackedS   s   z)TestSeriesPlots.test_plot_ts_area_stackedc                 C   s$   t tdƒtdddƒ}t|jƒ d S )Né   r   r   )r   r,   r	   r   r3   )r4   Úserr$   r$   r%   Útest_plot_iseriesW   s   z!TestSeriesPlots.test_plot_iseriesÚkindÚlinerE   ÚbarhÚkdeÚscipy)ZmarksÚhistÚboxc                 C   s   t |d d… j|d d S )NrL   ©rO   r2   )r4   r'   rO   r$   r$   r%   Útest_plot_series_kinds[   s   z&TestSeriesPlots.test_plot_series_kindsc                 C   rC   rD   )r   r3   rQ   ©r4   r'   r$   r$   r%   Útest_plot_series_barhi   s   z%TestSeriesPlots.test_plot_series_barhc                 C   s<   t ttj d¡ d¡ƒjjdd}t|j	d gdgd d S )Né   r   Úblack©Úcolorr   ©Z
facecolors)
r   r   r!   ÚrandomÚdefault_rngÚstandard_normalr3   rE   r   Úpatches)r4   rA   r$   r$   r%   Útest_plot_series_bar_axl   s   ÿz'TestSeriesPlots.test_plot_series_bar_axÚlayout)éÿÿÿÿé   )rf   re   c                 C   s(   t |jfddi|¤Ž}t|ddd d S )NÚsubplotsTrf   ©rf   rf   )Úaxes_numrd   )r   r3   r   )r4   r   r.   rA   r$   r$   r%   Útest_plot_6951r   s   zTestSeriesPlots.test_plot_6951c                 C   s>   t j ¡ \}}|jdd|d}t|jdƒ t|dddd d S )NZTest)é   é   )ÚtitleÚfigsizerA   rf   rh   )ri   rd   rn   )ÚmplÚpyplotrg   r3   r   rm   r   )r4   r'   Ú_rA   r$   r$   r%   Útest_plot_figsize_and_titlex   s   z+TestSeriesPlots.test_plot_figsize_and_titlec                 C   sJ   d}t jj| }t j ¡ \}}tg d¢ƒj|d |t jj| ks#J ‚d S )Nzaxes.prop_cycle©rf   rZ   é   ©rA   )ro   rp   ÚrcParamsrg   r   r3   )r4   ÚkeyÚcolorsrq   rA   r$   r$   r%   Útest_dont_modify_rcParams   s
   z)TestSeriesPlots.test_dont_modify_rcParamsÚsecondary_yc                 C   sz   t j ¡ \}}|jdd|i|¤Ž}| ¡ \}}| ¡ }||d jddd d ks+J ‚||d jddd d ks;J ‚d S )NrA   r   F©Úorigre   r$   )ro   rp   rg   r3   Úget_xlimÚ	get_linesÚget_data)r4   r   r.   rq   rA   ÚxminÚxmaxÚlinesr$   r$   r%   Útest_ts_line_lim‡   s    $z TestSeriesPlots.test_ts_line_limc                 C   sr   t j ¡ \}}|jjd|d}| ¡ \}}| ¡ d jddd }||d ks)J ‚||d ks1J ‚t|dd d S )NF)rI   rA   r   r{   re   r7   ©	ro   rp   rg   r3   rJ   r}   r~   r   r   ©r4   r   rq   rA   r€   r   rP   r$   r$   r%   Útest_ts_area_lim   s   z TestSeriesPlots.test_ts_area_limc                 C   st   t j ¡ \}}|jjdd|d}| ¡ \}}| ¡ d jddd }||d ks*J ‚||d ks2J ‚t|dd d S )	NFT©rI   Zx_compatrA   r   r{   re   é   r7   r„   r…   r$   r$   r%   Útest_ts_area_lim_xcompat™   s   z(TestSeriesPlots.test_ts_area_lim_xcompatc                 C   óŽ   |  ¡ }| d¡ d¡|_tj ¡ \}}|jjdd|d}| 	¡ \}}| 
¡ d jddd }||d ks7J ‚||d ks?J ‚t|dd	 d S )
NÚGMTÚCETFTr‡   r   r{   re   r7   ©ÚcopyZtz_localizeZ
tz_convertr   ro   rp   rg   r3   rJ   r}   r~   r   r   ©r4   r   Ztz_tsrq   rA   r€   r   rP   r$   r$   r%   Útest_ts_tz_area_lim_xcompat£   ó   z+TestSeriesPlots.test_ts_tz_area_lim_xcompatc                 C   rŠ   )
Nr‹   rŒ   FT)rI   rz   rA   r   r{   re   r7   r   r   r$   r$   r%   Ú'test_ts_tz_area_lim_xcompat_secondary_y®   r‘   z7TestSeriesPlots.test_ts_tz_area_lim_xcompat_secondary_yc                 C   st   t jjdddd\}\}}t|ƒj|dd t|ƒj|dd t|ƒ ||¡s)J ‚t|ƒ ||¡s3J ‚t |¡ d S )Nrf   rZ   T)ZshareyrJ   )rA   rO   )	ro   rp   rg   Úabsr3   r   ZjoinedÚpltÚclose)r4   r   ZfigÚax1Úax2r$   r$   r%   Útest_area_sharey_dont_overwrite¹   s   z/TestSeriesPlots.test_area_sharey_dont_overwritec                 C   sH   t ddgƒ}tj ¡ \}}|jdd|d}t|dgd tj d¡ d S )Nrf   rZ   ÚLABELT)r/   ÚlegendrA   ©ÚlabelsÚall©r   ro   rp   rg   r3   r   r•   ©r4   Úsrq   rA   r$   r$   r%   Ú
test_labelÄ   s
   zTestSeriesPlots.test_labelc                 C   sF   t ddgƒ}tj ¡ \}}|jd|d}t|dgd tj d¡ d S )Nrf   rZ   T©rš   rA   Ú r›   r   rž   rŸ   r$   r$   r%   Útest_label_noneË   s
   zTestSeriesPlots.test_label_nonec                 C   sJ   t ddgdd}tj ¡ \}}|jd|d}t|dgd tj d¡ d S )	Nrf   rZ   ÚNAME©r    Tr¢   r›   r   rž   rŸ   r$   r$   r%   Útest_label_ser_nameÒ   s
   z#TestSeriesPlots.test_label_ser_namec                 C   sL   t ddgdd}tj ¡ \}}|jdd|d}t|dgd tj d	¡ d S )
Nrf   rZ   r¥   r¦   Tr™   ©rš   r/   rA   r›   r   rž   rŸ   r$   r$   r%   Útest_label_ser_name_overrideÙ   s
   z,TestSeriesPlots.test_label_ser_name_overridec                 C   sd   t ddgdd}tj ¡ \}}|jdd|d}| ¡ d u sJ ‚| ¡  t|dgd tj d	¡ d S )
Nrf   rZ   r¥   r¦   Fr™   r¨   r›   r   )	r   ro   rp   rg   r3   Z
get_legendrš   r   r•   rŸ   r$   r$   r%   Ú&test_label_ser_name_override_dont_drawá   s   z6TestSeriesPlots.test_label_ser_name_override_dont_drawc                 C   s\   t g d¢ƒ}t|jdd d}tjt|d t|jƒ W d   ƒ d S 1 s'w   Y  d S )N)FFTT)Zinclude_boolúno numeric data to plot©Úmatch)r   r   r3   ÚpytestÚraisesÚ	TypeError)r4   r    Úmsgr$   r$   r%   Útest_booleanë   s   "ÿzTestSeriesPlots.test_booleanr   Nr   é   r   c                 C   sø   ddt jdg}t||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  ¡ |¡ d S )Nrf   rZ   rt   ©r   r   rs   r   )FFTF)rf   rZ   r   rt   TrH   F)r!   Únanr   r   r3   r‚   Ú	get_ydataÚarrayr#   ÚtmÚassert_numpy_array_equalÚdeleteÚdataÚmaskrJ   )r4   r   ÚvaluesÚdrA   ZmaskedÚexpÚexpectedr$   r$   r%   Útest_line_area_nan_seriesô   s   
z)TestSeriesPlots.test_line_area_nan_seriesc                 C   sP   t g d¢g d¢d}d|j_tj ¡ \}}|jd|d}| ¡ }|dks&J ‚d S ©Nrs   ©ÚaÚbÚcr´   z	The IndexF©r0   rA   r£   )r   r   r    ro   rp   rg   r3   Ú
get_xlabel)r4   r    rq   rA   r/   r$   r$   r%   Útest_line_use_index_false  s   z)TestSeriesPlots.test_line_use_index_falsec                 C   sR   t g d¢g d¢d}d|j_tj ¡ \}}|jjd|d}| ¡ }|dks'J ‚d S rÂ   )	r   r   r    ro   rp   rg   r3   rE   rÈ   )r4   r    rq   rA   r—   Úlabel2r$   r$   r%   Ú"test_line_use_index_false_diff_var  s   z2TestSeriesPlots.test_line_use_index_false_diff_varzWeird rounding problems)ÚreasonÚstrictz
axis, meth)r;   rE   )r=   rQ   c                 C   sR   t  g d¢¡}tj ¡ \}}ttddgƒj|ƒd|d}t 	t||ƒ 
¡ |¡ d S )N)çš™™™™™¹?ç      ð?ç      $@g      Y@g     @@g     ˆÃ@éÈ   iô  T)r<   rA   )r!   r·   ro   rp   rg   Úgetattrr   r3   r¸   r¹   Úget_ticklocs)r4   ÚaxisÚmethrÀ   rq   rA   r$   r$   r%   Útest_bar_log  s   zTestSeriesPlots.test_bar_logzaxis, kind, res_meth)r;   rE   Zget_ylim)r=   rQ   r}   c           
      C   s‚   t  g d¢¡}tj ¡ \}}tg d¢ƒjd||d}d}d}t||ƒƒ }	t 	|	d |¡ t 	|	d |¡ t 
t||ƒ ¡ |¡ d S )	N)gñhãˆµøä>g-Cëâ6?çü©ñÒMbP?ç{®Gáz„?rÎ   rÏ   rÐ   )rÎ   rØ   r×   T)r<   rO   rA   g!Ñ,åNJ?gÐ„–-?À?r   rf   )r!   r·   ro   rp   rg   r   r3   rÒ   r¸   Zassert_almost_equalr¹   rÓ   )
r4   rÔ   rO   Zres_methrÀ   rq   rA   ZyminÚymaxÚresr$   r$   r%   Útest_bar_log_kind_bar$  s   z%TestSeriesPlots.test_bar_log_kind_barc                 C   sH   t g d¢g d¢d}tj ¡ \}}|jjd|d}t| ¡ g d¢ƒ d S )N©rf   rZ   rt   r³   ©rÄ   rÅ   rÆ   r¾   r´   FrÇ   )Ú0Ú1Ú2Ú3)r   ro   rp   rg   r3   rE   r   Úget_xticklabels)r4   Údfrq   rA   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s!J ‚d S )NrÜ   )ÚredÚblueræ   rå   r\   c                 S   ó   g | ]}|  ¡ ‘qS r$   )Zget_facecolor)r)   Úpr$   r$   r%   r+   C  ó    z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>)©rÏ   ç        rë   rÏ   ©rë   rë   rÏ   rÏ   rì   rê   )r   r3   rE   rb   )r4   r    rA   ÚresultrÀ   r$   r$   r%   Útest_bar_user_colors@  s
   z$TestSeriesPlots.test_bar_user_colorsc                 C   s@   t tj d¡ d¡ƒ}tj ¡ \}}|j|d}t	|dd d S )NrZ   ©rL   rL   ru   r   r7   ©
r   r!   r_   r`   ra   ro   rp   rg   r3   r   ©r4   rã   rq   rA   r8   r$   r$   r%   Útest_rotation_defaultL  s   z%TestSeriesPlots.test_rotation_defaultc                 C   sB   t tj d¡ d¡ƒ}tj ¡ \}}|jd|d}t	|dd d S )NrZ   rï   rˆ   )r6   rA   r7   rð   rñ   r$   r$   r%   Útest_rotation_30S  s   z TestSeriesPlots.test_rotation_30c                 C   sž   ddl m} tddƒ}|g d¢ }ttj d¡ t|ƒ¡|ƒ}t	j
 ¡ \}}|j|d}| tdd	d	ƒd
|¡}| dd¡ || ¡ d ksGJ ‚t|dd d S )Nr   )ÚDatetimeConverterú1/1/2000z3/1/2000)	r   rf   rZ   rt   rL   é	   r   é   é   rZ   ru   iÏ  rf   r£   z1/1/1999ú1/1/2001rˆ   r7   )Z%pandas.plotting._matplotlib.converterrô   r   r   r!   r_   r`   ra   Úlenro   rp   rg   r3   Úconvertr   Zset_xlimr}   r   )r4   rô   ÚrngrM   rq   rA   Zxpr$   r$   r%   Útest_irregular_datetimeY  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}tj ¡ \}}|j|d	}| ¡ \}}| ¡ }|t 	|d
 j
ddd
 ¡ks>J ‚|t |d
 j
ddd
 ¡ksOJ ‚d S )Nrë   rÏ   g      @g      @g      @g      @g       @r´   ru   r   Fr{   )r   r!   rµ   ro   rp   rg   r3   r}   r~   Znanminr   Znanmax)r4   rM   rq   rA   r€   r   r‚   r$   r$   r%   Útest_unsorted_index_xlimf  s   þ"&z(TestSeriesPlots.test_unsorted_index_xlimc                 C   sP   t tj d¡ dd¡g d¢dd}t|jjƒ}t|j	|j
ƒ | ¡ dks&J ‚d S )NrZ   rf   rL   ©rÄ   rÅ   rÆ   r¾   ÚeÚYLABELr   )r   r!   r_   r`   Úintegersr   r3   Úpier   Útextsr   Ú
get_ylabel©r4   r'   rA   r$   r$   r%   Útest_pie_seriesr  s   ýzTestSeriesPlots.test_pie_seriesc                 C   sH   t tj d¡ dd¡g d¢dd}t|jjd d}t|j	dgd ƒ d S )	NrZ   rf   rL   rÿ   r  r   r›   r£   )
r   r!   r_   r`   r  r   r3   r  r   r  r  r$   r$   r%   Útest_pie_series_no_label~  s   ýz(TestSeriesPlots.test_pie_series_no_labelc                 C   sT   t tj d¡ dd¡g d¢dd}g d¢}t|jj|d}g d	¢}t|j	|d
 d S )NrZ   rf   rL   rÿ   r  r   )ÚrÚgrÅ   ©rx   )r	  r
  rÅ   r	  r
  r^   )
r   r!   r_   r`   r  r   r3   r  r   rb   )r4   r'   Ú
color_argsrA   Zcolor_expectedr$   r$   r%   Ú)test_pie_series_less_colors_than_elements‡  s   ýz9TestSeriesPlots.test_pie_series_less_colors_than_elementsc                 C   sb   t tj d¡ dd¡g d¢dd}g d¢}g d¢}t|jj||d	}t|j	|ƒ t
|j|d
 d S )NrZ   rf   rL   rÿ   r  r   )ÚAÚBÚCÚDÚE©r	  r
  rÅ   rÆ   Úm)rœ   rx   r^   )r   r!   r_   r`   r  r   r3   r  r   r  r   rb   )r4   r'   rœ   r  rA   r$   r$   r%   Ú!test_pie_series_labels_and_colors“  s   ýz1TestSeriesPlots.test_pie_series_labels_and_colorsc                 C   s˜   t tj d¡ dd¡g d¢dd}g d¢}t|jj|dd	d
}dd„ |j| 	¡  D ƒ}t
t t|j|ƒ¡ƒ}t|j|ƒ |jD ]
}| ¡ d	ksIJ ‚q?d S )NrZ   rf   rL   rÿ   r  r   r  z%.2fé   )rx   ZautopctZfontsizec                 S   s   g | ]}|d  d›‘qS )éd   z.2fr$   )r)   r    r$   r$   r%   r+   ª  ó    zHTestSeriesPlots.test_pie_series_autopct_and_fontsize.<locals>.<listcomp>)r   r!   r_   r`   r  r   r3   r  r½   ÚsumÚlistr   Úfrom_iterableÚzipr   r   r  Zget_fontsize)r4   r'   r  rA   ZpctsZexpected_textsÚtr$   r$   r%   Ú$test_pie_series_autopct_and_fontsize   s   ýÿ
ÿz4TestSeriesPlots.test_pie_series_autopct_and_fontsizec                 C   sR   t g d¢g d¢d}tjtdd |j ¡  W d   ƒ d S 1 s"w   Y  d S )N)rf   rZ   r   r³   re   rÿ   r´   z&pie plot doesn't allow negative valuesr¬   )r   r®   r¯   Ú
ValueErrorr3   r  rX   r$   r$   r%   Útest_pie_series_negative_raises°  s   "ÿz/TestSeriesPlots.test_pie_series_negative_raisesc                 C   s<   t ddtjdgg d¢dd}t|jjƒ}t|jg d¢ƒ d S )Nrf   rZ   r³   rÝ   r  r   )rÄ   rÅ   r£   r¾   )r   r!   rµ   r   r3   r  r   r  r  r$   r$   r%   Útest_pie_series_nan¶  s   z#TestSeriesPlots.test_pie_series_nanc                 C   sX   t dtjddgƒ}tj ¡ \}}|jjd|d}g d¢}dd„ |jD ƒ}||ks*J ‚d S )Nrf   Tr¢   )rÞ   r£   rà   rá   c                 S   rç   r$   )Zget_text)r)   Úxr$   r$   r%   r+   Á  ré   z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)	r   r!   rµ   ro   rp   rg   r3   r  r  )r4   r    rq   rA   rÀ   rí   r$   r$   r%   Útest_pie_nan¼  s   zTestSeriesPlots.test_pie_nanc                 C   s˜   t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
|d}|j
d	d	|d
 t|g d¢d | ¡  ¡ sAJ ‚|j ¡  ¡ sJJ ‚d S )NrZ   ©rˆ   rt   Úabc©Úcolumnsrˆ   r"  r¦   ru   T©rš   rz   rA   ©rÄ   rÅ   rÆ   ú	x (right)r›   ©r   r!   r_   r`   ra   r  r   ro   rp   rg   r3   r   Ú	get_yaxisÚget_visibleZright_ax©r4   rã   r    rq   rA   r$   r$   r%   Útest_df_series_secondary_legendÄ  s   ÿz/TestSeriesPlots.test_df_series_secondary_legendc                 C   s˜   t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
|d}|j
|d	d	d
 t|g d¢d | ¡  ¡ sAJ ‚|j ¡  ¡ sJJ ‚d S )NrZ   r$  r%  r&  rˆ   r"  r¦   ru   T©rA   rš   rz   r)  r›   r+  r.  r$   r$   r%   Ú)test_df_series_secondary_legend_with_axesÕ  s   ÿz9TestSeriesPlots.test_df_series_secondary_legend_with_axesc                 C   s    t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
d|d	}|j
dd|d
 g d¢}t|j|d |j ¡  ¡ rFJ ‚| ¡  ¡ sNJ ‚d S )NrZ   r$  r%  r&  rˆ   r"  r¦   T©rz   rA   r(  ©z	a (right)z	b (right)z	c (right)r*  r›   ©r   r!   r_   r`   ra   r  r   ro   rp   rg   r3   r   Zleft_axr,  r-  ©r4   rã   r    rq   rA   rÀ   r$   r$   r%   Ú$test_df_series_secondary_legend_bothå  s   ÿz4TestSeriesPlots.test_df_series_secondary_legend_bothc                 C   sž   t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
d|d	}|j
|ddd
 g d¢}t|j|ƒ |j ¡  ¡ rEJ ‚| ¡  ¡ sMJ ‚d S )NrZ   r$  r%  r&  rˆ   r"  r¦   Tr2  r0  r3  r4  r5  r$   r$   r%   Ú.test_df_series_secondary_legend_both_with_axisö  s   ÿz>TestSeriesPlots.test_df_series_secondary_legend_both_with_axisc                 C   s    t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
dd	|d
}|j
|ddd g d¢}t|j|ƒ |j ¡  ¡ rFJ ‚| ¡  ¡ sNJ ‚d S )NrZ   r$  r%  r&  rˆ   r"  r¦   TF)rz   Z
mark_rightrA   r0  r)  r4  r5  r$   r$   r%   Ú0test_df_series_secondary_legend_both_with_axis_2  s   ÿz@TestSeriesPlots.test_df_series_secondary_legend_both_with_axis_2zinput_logy, expected_scale)Tr<   )ÚsymZsymlogc                 C   sj   t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}|j|d}|jd|d}| ¡ |ks+J ‚| ¡ |ks3J ‚d S )NrZ   r  )r:   T)rz   r:   )r   r!   r_   r`   ra   r3   Z
get_yscale)r4   Z
input_logyZexpected_scaleÚs1Ús2r–   r—   r$   r$   r%   Útest_secondary_logy  s   z#TestSeriesPlots.test_secondary_logyc                 C   sl   t tj d¡ d¡ƒ}tj ¡ \}}d}tj	t
|d |jdd|d W d   ƒ d S 1 s/w   Y  d S )NrZ   zCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolr¬   zk--Úk)r>   r]   rA   )r   r!   r_   r`   ra   ro   rp   rg   r®   r¯   r  r3   )r4   r"  rq   rA   r±   r$   r$   r%   Ú)test_plot_fails_with_dupe_color_and_style'  s   ÿ"ÿz9TestSeriesPlots.test_plot_fails_with_dupe_color_and_stylezbw_method, indZscottr&   ç      à?éœÿÿÿr  c                 C   s    t  d¡ t|jj||d d S )NrS   ©Ú	bw_methodÚind)r®   Úimportorskipr   r3   rR   )r4   r   rB  rC  r$   r$   r%   Útest_kde_kwargs2  s   

zTestSeriesPlots.test_kde_kwargsc                 C   s.   t  d¡ t ddd¡}t|jjd|d d S )NrS   r@  r  r&   r?  rA  )r®   rD  r!   Úlinspacer   r3   Zdensity)r4   r   Úsample_pointsr$   r$   r%   Útest_density_kwargs?  s   
z#TestSeriesPlots.test_density_kwargsc                 C   sZ   t  d¡ tj ¡ \}}t ddd¡}|jjdd||d}t	|dd	 t
|j ¡ d
ƒ d S )NrS   r@  r  r&   Tr?  )r:   rB  rC  rA   r<   ©r;   ZDensity)r®   rD  ro   rp   rg   r!   rF  r3   rR   r   r   r;   Z	get_label)r4   r   rq   rA   rG  r$   r$   r%   Útest_kde_kwargs_check_axesD  s   
z*TestSeriesPlots.test_kde_kwargs_check_axesc                 C   sZ   t  d¡ ttj d¡jddƒ}tj|d< t|j	j
ƒ}tt |jd  ¡ ¡ ƒs+J ‚d S )NrS   rZ   é2   )Úsizer   )r®   rD  r   r!   r_   r`   Úuniformrµ   r   r3   rR   ÚanyÚisnanr‚   Ú	get_xdata)r4   r    r8   r$   r$   r%   Útest_kde_missing_valsL  s
   

"z%TestSeriesPlots.test_kde_missing_valszApi changed in 3.6.0)rÌ   c                 C   s`   t j ¡ \}}|jjd|d}t|dd | ¡ }t||jgƒ | 	¡ }t|dgt
|ƒ ƒ d S )NT)r:   rA   r<   rI  r£   )ro   rp   rg   r3   rU   r   râ   r   r    Zget_yticklabelsrú   )r4   r   rq   rA   ZxlabelsZylabelsr$   r$   r%   Útest_boxplot_seriesU  s   z#TestSeriesPlots.test_boxplot_seriesc                 C   s@   t  d¡ ttdƒƒ}tj ¡ \}}|j||d tj ¡  d S )NrS   rt   ©rO   rA   )	r®   rD  r   r,   ro   rp   rg   r3   r•   ©r4   rO   r    rq   rA   r$   r$   r%   Útest_kind_kwarg_  ó
   
zTestSeriesPlots.test_kind_kwargc                 C   s@   t  d¡ ttdƒƒ}tj ¡ \}}t|j|ƒƒ  tj 	¡  d S )NrS   rt   )
r®   rD  r   r,   ro   rp   rg   rÒ   r3   r•   rT  r$   r$   r%   Útest_kind_attrj  rV  zTestSeriesPlots.test_kind_attrc                 C   s`   t tdƒƒ}tj ¡ \}}d}tjt|d |j||d W d   ƒ d S 1 s)w   Y  d S )NÚabcdr«   r¬   rS  )	r   r  ro   rp   rg   r®   r¯   r°   r3   ©r4   rO   r    rq   rA   r±   r$   r$   r%   Útest_invalid_plot_datau  ó   "ÿz&TestSeriesPlots.test_invalid_plot_datac                 C   s,   t  d¡ ttdƒtd}t|j|d d S )NrS   r   r   rV   )r®   rD  r   r,   Úobjectr   r3   )r4   rO   r    r$   r$   r%   Útest_valid_object_plot}  s   
z&TestSeriesPlots.test_valid_object_plotc                 C   s`   t g d¢ƒ}tj ¡ \}}d}tjt|d |j||d W d   ƒ d S 1 s)w   Y  d S )N)rÄ   rÅ   rÏ   rZ   r«   r¬   rS  )r   ro   rp   rg   r®   r¯   r°   r3   rY  r$   r$   r%   Ú test_partially_invalid_plot_dataƒ  r[  z0TestSeriesPlots.test_partially_invalid_plot_datac                 C   sL   t ddgƒ}tjtdd |jdd W d   ƒ d S 1 sw   Y  d S )Nrf   rZ   z%invalid_kind is not a valid plot kindr¬   Zinvalid_kindrV   )r   r®   r¯   r  r3   ©r4   r    r$   r$   r%   Útest_invalid_kind‹  s   "ÿz!TestSeriesPlots.test_invalid_kindc                 C   sP   t ddd}t ddd}| |¡}tj d¡ |j¡}t||d}t|j	ƒ d S )Nz1/1/2009r³   r   z1/2/2009rZ   r´   )
r   Úappendr!   r_   r`   ra   rL  r   r   r3   )r4   Zdr1Zdr2r   r½   r    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   ƒ d S 1 shw   Y  d S )Nr   r"  r¦   rZ   )rZ   r   )ÚyerrÚxerrc                 S   s   g | ]}|j d d …df ‘qS )Nrf   )Zverticesr(   r$   r$   r%   r+   Ÿ  s    z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>rf   re   z?Asymmetrical error bars should be provided with the shape \(2, z\)r¬   )rZ   r÷   ©rc  )r   r!   r"   r_   r`   r3   ZvstackÚcollectionsÚ	get_pathsÚTr·   Zto_numpyZreshaper¸   r¹   rú   r®   r¯   r  )r4   r    ÚerrrA   rí   rÀ   r±   r$   r$   r%   Útest_errorbar_asymmetrical˜  s   $ÿÿ"ÿz*TestSeriesPlots.test_errorbar_asymmetricalrc  rZ   r   )r   rZ   r"  Úyr&  c                 C   s4   t t d¡dd}t|j||d}t|ddd d S )Nr   r"  r¦   )rc  rO   r   rf   ©rd  rc  )r   r!   r"   r   r3   r   )r4   rO   rc  r    rA   r$   r$   r%   Útest_errorbar_plotª  s   z"TestSeriesPlots.test_errorbar_plotc                 C   sJ   t t d¡dd}t tj d¡ d¡¡}t|j|d}t	|ddd d S )	Nr   r"  r¦   rZ   )rd  rf   r   rl  )
r   r!   r"   r“   r_   r`   ra   r   r3   r   )r4   r    Ús_errrA   r$   r$   r%   Útest_errorbar_plot_yerr_0½  s   z)TestSeriesPlots.test_errorbar_plot_yerr_0rø   )rø   rZ   c                 C   sH   t dddd}tt d¡|dd}||_t|j|d}t|d	d
d d S )Nrõ   rù   ZME)Úfreqrø   r"  r   re  r   rf   rl  )r   r   r!   r"   r   r   r3   r   )r4   rc  Zixr   rA   r$   r$   r%   Útest_errorbar_plot_tsÄ  s
   z%TestSeriesPlots.test_errorbar_plot_tsc                 C   sT   t t d¡dd}t t¡ |jt d¡d W d   ƒ d S 1 s#w   Y  d S )Nr   r"  r¦   r÷   re  )r   r!   r"   r¸   Úexternal_error_raisedr  r3   r_  r$   r$   r%   Ú%test_errorbar_plot_invalid_yerr_shapeØ  s   "ÿz5TestSeriesPlots.test_errorbar_plot_invalid_yerr_shapec                 C   sX   t t d¡dd}dgd }t t¡ |j|d W d   ƒ d S 1 s%w   Y  d S )Nr   r"  r¦   Úzzzre  )r   r!   r"   r¸   rr  r°   r3   )r4   r    rn  r$   r$   r%   Útest_errorbar_plot_invalid_yerrß  s
   
"ÿz/TestSeriesPlots.test_errorbar_plot_invalid_yerrc                 C   s   t |jdd d S )NT©Útabler2   rX   r$   r$   r%   Útest_table_trueæ  ó   zTestSeriesPlots.test_table_truec                 C   s   t |j|d d S )Nrv  r2   rX   r$   r$   r%   Útest_table_selfê  ry  zTestSeriesPlots.test_table_selfc                 C   s,   t  d¡ ttg d¢ƒtjjtjj ƒ d S )NrS   rs   )r®   rD  r   r   r
   ÚPlotAccessorÚ_series_kindsÚ_common_kinds)r4   r$   r$   r%   Útest_series_grid_settingsî  s
   

þz)TestSeriesPlots.test_series_grid_settingsrÆ   )r	  rå   Úgreenz#FF0000c                 C   s„   ddl m} |d|d}||gksJ ‚|d|gd}||gks!J ‚|d|d}||gd ks0J ‚|d|gd}||gd ks@J ‚d S )Nr   ©Úget_standard_colorsrf   r\   rt   )Ú!pandas.plotting._matplotlib.styler  )r4   rÆ   r  rí   r$   r$   r%   Útest_standard_colors÷  s   z$TestSeriesPlots.test_standard_colorsc                 C   s  ddl m} ddlm} |jD ]<}|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sKJ ‚q|jjD ]<}|d|d}||gks_J ‚|d|gd}||gksmJ ‚|d|d}||gd ks|J ‚|d|gd}||gd ksŒJ ‚qPd S )Nr   r  r€  rf   )Z
num_colorsr]   rt   )r   rx   r‚  r  ZcnamesZColorConverter)r4   rx   r  rÆ   rí   r$   r$   r%   Útest_standard_colors_all  s*   
õz(TestSeriesPlots.test_standard_colors_allc                 C   s@   t j ¡ \}}tt d¡d ƒjd|d}t| ¡ dgd d S )Nrø   rf   r  ©r]   rA   ©Z
linecolors)	ro   rp   rg   r   r!   r"   r3   r   r~   ©r4   rq   rA   r$   r$   r%   Útest_series_plot_color_kwargs(  s   z-TestSeriesPlots.test_series_plot_color_kwargsc                 C   sL   t j ¡ \}}tt d¡d tddddjd|d}t| 	¡ dgd d S )	Nrø   rf   rõ   r   r´   r  r…  r†  )
ro   rp   rg   r   r!   r"   r   r3   r   r~   r‡  r$   r$   r%   Ú"test_time_series_plot_color_kwargs.  s
   ÿz2TestSeriesPlots.test_time_series_plot_color_kwargsc           	      C   sz   dd l }t|jƒ}tddd}tt dd¡|d}d}|j ¡ \}}t	|ƒD ]}|j
|d	}q&t| ¡ |d |… d
 d S )Nr   rõ   rø   r   rf   é   r´   rt   ru   r†  )r   r   rv   r   r   r!   r"   rp   rg   r,   r3   r   r~   )	r4   ro   Z
def_colorsr   r    Zncolorsrq   rA   r*   r$   r$   r%   Ú-test_time_series_plot_color_with_empty_kwargs6  s   
z=TestSeriesPlots.test_time_series_plot_color_with_empty_kwargsc                 C   s`   t t d¡dd„ tdƒD ƒd}tj ¡ \}}|jg d¢|d}dd„ dD ƒ}t| 	¡ |ƒ d S )Nr   c                 S   ó   g | ]}d |d›‘qS ©ÚPÚ02dr$   r(   r$   r$   r%   r+   F  r  z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r´   )r   rt   rL   rö   )ÚxticksrA   c                 S   rŒ  r  r$   r(   r$   r$   r%   r+   I  r  )
r   r!   r"   r,   ro   rp   rg   r3   r   râ   )r4   r    rq   rA   r¿   r$   r$   r%   Útest_xticklabelsD  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   rŒ  r  r$   r(   r$   r$   r%   r+   N  r  z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>r´   r   r÷   rZ   )r  )
r   r,   r3   rE   r!   r·   r  r¸   r¹   Z
get_xticks)r4   r    rA   r¿   r$   r$   r%   Útest_xtick_barPlotL  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Úendrp  r´   )Zpandas.tseries.offsetsr“  r   r,   ÚpdZbdate_ranger   r3   )r4   r“  r    r$   r$   r%   Útest_custom_business_day_freqS  s   
ýþ	z-TestSeriesPlots.test_custom_business_day_freqziGH#24426, see also github.com/pandas-dev/pandas/commit/ef1bd69fa42bbed5d09dd17f08c44fc8bfc2b685#r61470674c                 C   sj   t g d¢ƒ}tj ¡ \}}|j|d}|j ¡ }|jddgdd tj ¡ \}}|j ¡ }t 	||¡ d S )NrÜ   ru   r   rf   T)Zinplace)
r   ro   rp   rg   r3   r=   rÓ   Zdropr¸   r¹   )r4   rM   rq   rA   ÚbeforeÚafterr$   r$   r%   Ú%test_plot_accessor_updates_on_inplaceb  s   

z5TestSeriesPlots.test_plot_accessor_updates_on_inplacerJ   c                 C   sT   t ddgƒ}tj ¡ \}}|j||d | ¡ }|d dk s J ‚|d dks(J ‚d S )NrZ   rt   rS  r   rf   )r   ro   rp   rg   r3   r}   )r4   rO   r    rq   rA   Úxlimsr$   r$   r%   Útest_plot_xlim_for_seriesr  s   z)TestSeriesPlots.test_plot_xlim_for_seriesc                 C   sh   t td}|js
J ‚| ¡ }t| ¡ ƒdksJ ‚| ¡ d }t| ¡ ƒdks(J ‚t| ¡ ƒdks2J ‚d S )Nr   rf   r   )r   ÚintÚemptyr3   rú   r~   rP  r¶   )r4   rã   rA   rP   r$   r$   r%   Útest_plot_no_rows~  s   

z!TestSeriesPlots.test_plot_no_rowsc                 C   sH   t g d¢ƒ}tjtdd | ¡  W d   ƒ d S 1 sw   Y  d S )NrÃ   r«   r¬   )r   r®   r¯   r°   r3   )r4   rã   r$   r$   r%   Útest_plot_no_numeric_dataˆ  s   
"ÿz)TestSeriesPlots.test_plot_no_numeric_datazdata, indexrÜ   )rt   rZ   rf   r   )r   rK  r&   rˆ   )iv  i€  i¼  iž  c                 C   sL   t ||d}|jdd}| ¡ }dd„ t|jdd„ dD ƒ}||ks$J ‚d S )	N)r»   r   rE   rV   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 r1   )r¢  r   )r£  r$   r$   r%   Ú<lambda>œ  s   
 z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rw   )r   r3   ÚtolistÚsortedrb   )r4   r»   r   rM   rA   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sJ ‚d S )Nrf   rZ   r    ZC3)r>   r]   r   )r   r3   r‚   Ú	get_color)r4   r    rA   r$   r$   r%   Útest_style_single_ok   s   z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label))Nr£   Únew)Úoldr«  rª  )Nr£   r£   )rP   rJ   rE   rQ   rT   c                 C   sÈ   t g d¢ƒ}||j_|j|d}|dkr%| ¡ dksJ ‚| ¡ |ks$J ‚n%|dkr:| ¡ dks1J ‚| ¡ dks9J ‚n| ¡ dksBJ ‚| ¡ |ksJJ ‚|j|||d}| ¡ |ksZJ ‚| ¡ |ksbJ ‚d S )NrÜ   rV   rQ   r£   rT   Z	Frequency)rO   ZylabelZxlabel)r   r   r    r3   rÈ   r  )r4   rO   Z
index_nameZ	old_labelZ	new_labelrM   rA   r$   r$   r%   Útest_xlabel_ylabel_series¥  s   z)TestSeriesPlots.test_xlabel_ylabel_seriesr   r  )r•  r   rp  rf   )Údaysc                 C   s0   d}t ddg|dj|d}| ¡ dksJ ‚d S )N)rt   rf   rf   rZ   r´   )Zxlim)r   r3   r}   )r4   r   rœ  rA   r$   r$   r%   Útest_timedelta_indexÀ  s   	z$TestSeriesPlots.test_timedelta_indexc                 C   s@   t g d¢ƒ}|jd d}ttjjƒd d… }t| ¡ |d d S )Nrs   r\   rf   r†  )r   r3   r   ro   rp   rv   r   r~   )r4   r'   rA   rÀ   r$   r$   r%   Útest_series_none_colorÍ  s   z&TestSeriesPlots.test_series_none_colorc                 C   s8   t  d¡ | ¡ }W d   ƒ d S 1 sw   Y  d S )NF)r¸   Zassert_produces_warningr3   )r4   r   rq   r$   r$   r%   Útest_plot_no_warningÔ  s   
"ÿz$TestSeriesPlots.test_plot_no_warning)xÚ__name__Ú
__module__Ú__qualname__r®   ÚmarkZslowZparametrizer5   r9   rB   rG   rK   rN   ÚparamÚtdZ
skip_if_norW   rY   rc   rj   rr   ry   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ó   rý   rþ   r  r  r  r  r  r   r!  r#  r/  r1  r6  r7  r8  r<  r>  r!   Úint_rF  rE  rH  rJ  rQ  rR  r
   r{  r}  r|  rU  rW  rZ  r]  r^  r`  rb  rj  r   r“   r_   r`   ra   r  r   rm  ro  rq  rs  ru  rx  rz  r~  rƒ  r„  rˆ  r‰  r‹  r‘  r’  r˜  r›  r  r   r¡  r§  r©  r¬  r—  Ztimedelta_rangeZ	Timedeltar®  r¯  r°  r$   r$   r$   r%   r-   7   sœ   
ýþ

úþ


	

	
ý
ýþ	ÿ
üþ
		
	þ
þ



þüþ
þþþ
	





!ÿ


þþ
þþþ
r-   ),Ú__doc__r   Ú	itertoolsr   Únumpyr!   r®   Zpandas.compatr   Zpandas.compat.numpyr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr¶  Zpandasr—  r   r   r   r	   r
   Zpandas._testingZ_testingr¸   Zpandas.tests.plotting.commonr   r   r   r   r   r   r   r   r   r   r   rD  ro   r”   Zfixturer   r'   r-   r$   r$   r$   r%   Ú<module>   s&    4



