
    da                        d Z ddlmZmZmZmZ ddlZddlZddlZddl	m
Z
mZ ddlmc mZ ddlmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$ dd	l%m&Z& dd
l'm(Z( ej)         G d de&                      Z*ddZ+dS )z< Test cases for time series specific (freq conversion, etc)     )datedatetimetime	timedeltaN)
BaseOffset	to_offset)	DataFrameIndexNaTSeriesconcatisnato_datetime)DatetimeIndexbdate_range
date_range)PeriodPeriodIndexperiod_range)timedelta_range)TestPlotBase)WeekOfMonthc                      e Zd Zej                            d          d             Zd Zd Zd Z	d Z
ej                            dg d          d	             Zej                            dg d
          d             Zd Zd Zej                            dddg          d             Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d
          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d
          d             Zej                            dg d
          d             Zd Zd Zd Zej                            d           d!             Zd" Zd# Z d$ Z!d% Z"d& Z#d' Z$d( Z%d) Z&d* Z'd+ Z(d, Z)d- Z*d. Z+d/ Z,ej        j-        d0             Z.d1 Z/d2 Z0d3 Z1d4 Z2d5 Z3e4j5        d6             Z6d7 Z7d8 Z8d9 Z9d: Z:d; Z;d< Z<d= Z=d> Z>d? Z?d@ Z@dA ZAdB ZBdC ZCdD ZDdE ZEdF ZFdG ZGdH ZHdI ZIdJ ZJdK ZKdL ZLdM ZMej                            d           dN             ZNdO ZOdP ZPdQ ZQdR ZRdS ZSdT ZTdU ZUdV ZVdW ZWdX ZXdY ZYdZ ZZd[ Z[ej                            d\           d]             Z\d^ Z]d_ Z^d`S )a
TestTSPlotzignore::UserWarningc                    |}t          ddd|          }t          ddg|          }t          |j                   |                                }t	          |                                          d                                         }|d         j        |d         j        fd	k    sJ |d
         j        |d
         j        fdk    sJ d S )N1/1/2011   H)periodsfreqtzg     g@g     t@indexr   r   r   )   r   )	r   r   _check_plot_worksplotlist	get_lines	get_xdatahourminute)selftz_aware_fixturer!   r#   tsaxxdatas          c/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/plotting/test_datetimelike.pytest_ts_plot_with_tzzTestTSPlot.test_ts_plot_with_tz/   s     :qsrBBBUFO5111"'"""WWYYR\\^^$$Q'1133auQx/69999b	b	 01V;;;;;;    c                 p   t          t          j                            dd          t	          d                    }| j                                        \  }}|                    d|           |                                |	                                z   D ]}|
                                dk    sJ d S )N
   	   r"   r   fontsizer1   )r	   nprandomrandnrangepltsubplotsr(   get_xticklabelsget_yticklabelsget_fontsize)r.   dffigr1   labels        r3   test_fontsize_set_correctlyz&TestTSPlot.test_fontsize_set_correctly<   s    ryr1--U2YY???(##%%R
r"""''))B,>,>,@,@@ 	- 	-E%%''1,,,,,	- 	-r5   c                    t          ddd          }t          |j        d           }t          t          j                            t          |          d          |          }t          |j	                   |dd	         
                    |d
d                   }t          t          j                            t          |          d          |          }t          |j	                   t          ddd          }t          |j        d           }t          t          j                            t          |          d          |          }t          |j	                   d S )N1/1/1987MSd   r    r   r       r"   r   (   -   c   z2008-1-1 00:15:0015Tr7   )r   r   valuesr	   r;   r<   r=   lenr'   r(   union)r.   idxrD   df2s       r3   test_frame_inferredzTestTSPlot.test_frame_inferredD   s&   $<<<CJT222rys3xx333???"'""" !B$iooc"R%j))	C!44C@@@#(### ,5"EEECJT222rys3xx333???"'"""""r5   c                     t          j        g d          }t          ||          }t          |j        |           t          |j        |           d S )Nr&   r   rN   r"   )xerr)yerr)r;   arrayr	   r'   r(   )r.   ias      r3   test_is_error_nozeroindexz$TestTSPlot.test_is_error_nozeroindexW   sW    HYYYaq!!!!&q))))!&q))))))r5   c                    t          ddd          }t          g dg dd|          }| j                                        \  }}|                    |           t          |                                          d	k    sJ | j                            |           d
}t          j	        t          |          5  |d                                          d d d            d S # 1 swxY w Y   d S )NrI   ArN   rL   )xyzrZ   )rb   Br1   r&   zno numeric data to plotmatch)r   r	   r?   r@   r(   rT   r*   closepytestraises	TypeError)r.   rV   rD   rE   r1   msgs         r3   test_nonnumeric_excludez"TestTSPlot.test_nonnumeric_exclude^   s!   #q999___999==sCC(##%%R
22<<>>""a''''s']9C000 	 	sGLLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :C""C&)C&r    )STr   DWMQrb   c                    t          d|d          }t          t          j                            t          |                    |          }| j                                        \  }}t          |j	        |           d S N
12/31/1999rK   rL   rg   )
r   r   r;   r<   r=   rT   r?   r@   r'   r(   r.   r    rV   ser_r1   s         r3   test_tsplot_periodzTestTSPlot.test_tsplot_periodk   sk    <dC@@@RY__SXX..44!!##2#(r******r5   )	rp   rq   r   rr   rs   rt   zQ-DECrb   1B30Minc                    t          d|d          }t          t          j                            t          |                    |          }| j                                        \  }}t          |j	        |           d S rw   )
r   r   r;   r<   r=   rT   r?   r@   r'   r(   ry   s         r3   test_tsplot_datetimezTestTSPlot.test_tsplot_datetimer   sm     D#>>>RY__SXX..44!!##2#(r******r5   c                     t          j                    }| j                                        \  }}|                    d|           d}||                                d                                         k    sJ d S )Nkstyler1   )        r   r   r&   r   )tmmakeTimeSeriesr?   r@   r(   r*   	get_color)r.   r0   r{   r1   colors        r3   test_tsplotzTestTSPlot.test_tsplot{   sr      !!##2
cb!!!"q)3355555555r5   c                    t          j                    }d}t          j        t          |          5  |                    dd           d d d            n# 1 swxY w Y   |                    d          }t          j        t          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )NzCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolrh   zb-z#000099)r   r   T)drop)r   r   rk   rl   
ValueErrorr(   reset_index)r.   r0   rn   ss       r3   test_both_style_and_colorz$TestTSPlot.test_both_style_and_color   s@     % 	
 ]:S111 	1 	1GG$iG000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 NNN%%]:S111 	0 	0FFYF///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s#   AAAB66B:=B:msusc                    | j                                         \  }}t          dd|          }t          t          j                            t          |                    |          }t          |j	        |           d S )N1/1/2012rK   r   r    rg   )
r?   r@   r   r   r;   r<   r=   rT   r'   r(   )r.   r    r{   r1   rngrz   s         r3   test_high_freqzTestTSPlot.test_high_freq   sk    !!##2St<<<RY__SXX..44#(r******r5   c                    ddl m}  |d d          J  |dd          dk    sJ  |t          dd          d          t          dd          j        k    sJ  |dd          t          d	d          j        k    sJ d S )
Nr   )get_datevaluerr     rb   rt   z1987-12rI   z1987-1-1)%pandas.plotting._matplotlib.converterr   r   ordinal)r.   r   s     r3   test_get_datevaluezTestTSPlot.test_get_datevalue   s    GGGGGG}T3''///}T3''4////}VD#..44y#8N8N8VVVVV}Z--
C1H1H1PPPPPPPr5   c                 v   d }t          dt          ddd                    }| j                                        \  }}|                    |            ||d	           t          dt          ddd
                    }|                    |            ||d           t          j                     d S )Nc                     |                                  d         }|                                d         j        }|                                d         }||                     ||          k    sJ d S )Nr   )r*   r+   r   	get_ydataformat_coord)r1   expected_string
first_linefirst_xfirst_ys        r3   check_format_of_first_pointzITestTSPlot.test_ts_plot_format_coord.<locals>.check_format_of_first_point   sh    *J **,,Q/7G **,,Q/G"boogw&G&GGGGGGGr5   r&   z
2014-01-01rN   zA-DECr   r"   rg   zt = 2014  y = 1.000000rr   zt = 2014-01-01  y = 1.000000)r   r   r?   r@   r(   r   rj   )r.   r   annualr{   r1   dailys         r3   test_ts_plot_format_coordz$TestTSPlot.test_ts_plot_format_coord   s    	H 	H 	H L!'!R!R!RSSS!!##2r##B(@AAA q
< M M MNNN

b
##B(FGGG





r5   c                     t          d|d          }t          t          j                            t          |                    |          }t          |j        |j        j	                   d S Nrx   rK   rL   )
r   r   r;   r<   r=   rT   r'   r(   r#   r    r.   r    rV   rz   s       r3   test_line_plot_period_seriesz'TestTSPlot.test_line_plot_period_series   sU    <dC@@@RY__SXX..44#(CIN33333r5   frqncy)1S3S5T7H4D8W11M3Ac                     t          d|d          }t          t          j                            t          |                    |          }t          |j        |j        j	        j
                   d S r   )r   r   r;   r<   r=   rT   r'   r(   r#   r    	rule_code)r.   r   rV   r   s       r3    test_line_plot_period_mlt_seriesz+TestTSPlot.test_line_plot_period_mlt_series   sZ     <fcBBB29??3s88,,c22!&!',"899999r5   c                     t          d|d          }t          t          j                            t          |                    |          }t          |j        |j        j	        j
                   d S r   )r   r   r;   r<   r=   rT   r'   r(   r#   r    r   r   s       r3   test_line_plot_datetime_seriesz)TestTSPlot.test_line_plot_datetime_series   sZ     D#>>>RY__SXX..44#(CIN$<=====r5   c                     t          d|d          }t          t          j                            t          |          d          |g d          }t          |j        |j        j	                   d S Nrx   rK   rL   rN   )rb   rf   Cr#   columns)
r   r	   r;   r<   r=   rT   r'   r(   r#   r    r.   r    rV   rD   s       r3   test_line_plot_period_framez&TestTSPlot.test_line_plot_period_frame   s`    D#>>>rys3xx333XXX"'28=11111r5   c                 .   t          d|d          }t          t          j                            t          |          d          |g d          }|j                            |j        j        j	                  j        }t          |j        |           d S r   )r   r	   r;   r<   r=   rT   r#   asfreqr    r   r'   r(   )r.   r   rV   rD   r    s        r3   test_line_plot_period_mlt_framez*TestTSPlot.test_line_plot_period_mlt_frame   s{     <fcBBBrys3xx333XXXxrx}677<"'4(((((r5   c                 .   t          d|d          }t          t          j                            t          |          d          |g d          }|j                            |j        j        j	                  j        }t          |j        |           d S r   )r   r	   r;   r<   r=   rT   r#   	to_periodr    r   r'   r(   r   s       r3   test_line_plot_datetime_framez(TestTSPlot.test_line_plot_datetime_frame   s}     D#>>>rys3xx333XXXx!!"(-"9::?"'4(((((r5   c                    t          d|d          }t          t          j                            t          |                    |          }t          |j        t          t          j        |j	                                      }t          |j        |j	        j                   |g d         }t          |j                   d S )Nrx   rK   rL   )r   rN         )r   r   r;   r<   r=   rT   rS   r
   asarrayr#   r'   r(   inferred_freqr   s       r3   test_line_plot_inferred_freqz'TestTSPlot.test_line_plot_inferred_freq   s     D#>>>RY__SXX..44SZrz#)'<'<!=!=>>#(CI$;<<<,,,#(#####r5   c                 F   | j                                         \  }}t          dd          }t          t	          t          |                    |          }t          |d d         |dd          g          }|                    |           t          |d          rJ d S )Nz2001-1-1z	2001-1-10r"   rN   r   rg   r    )	r?   r@   r   r   r>   rT   r   r(   hasattr)r.   r{   r1   r   r0   s        r3   test_fake_inferred_businessz&TestTSPlot.test_fake_inferred_business   s    !!##2[11E#c((OO3///RVRV$%%
22v&&&&&&&r5   c                 ,   t          j                    }t          |j                   t	          |j        d         dd          }t          t          j        	                    t          |                    |          }t          |j                   d S )Nr   BQSr7   rL   r"   )r   r   r'   r(   r   r#   r   r;   r<   r=   rT   )r.   rz   drs      r3   test_plot_offset_freqz TestTSPlot.test_plot_offset_freq   sv    !!#(###	!5"===RY__SWW--R888#(#####r5   c           	      "   t          t          ddd          t          ddd          t          ddd          g          }t          t          j                            t          |                    |          }t          |j                   d S )N  r&   r      r"   )	r
   r   r   r;   r<   r=   rT   r'   r(   )r.   r   rz   s      r3    test_plot_multiple_inferred_freqz+TestTSPlot.test_plot_multiple_inferred_freq  sw    HT1a(((4A*>*>qRT@U@UVWWRY__SWW--R888#(#####r5   zApi changed in 3.6.0)reasonc                    dd l mc mc m} t	          ddd          }t          t          j                            t          |          d          |          }| j
                                        \  }}|                    |           |                                }|                                }|                                }t!          ||          D ]e\  }	}
|                    |	                              d	          }t'          |
                                          }t          |          r||k    sJ fd S )
Nr   z2012-6-22 21:59:51.960928L  rL   r   r"   rg   %H:%M:%S.%f)r   plotting_matplotlib	converterr   r	   r;   r<   r=   rT   r?   r@   r(   	get_xaxisget_ticklocsget_ticklabelszip_from_ordinalstrftimestrget_text)r.   convrV   rD   r{   r1   axistlocstlabelslocrF   xprss                r3   test_uhfzTestTSPlot.test_uhf  s5   <<<<<<<<<<<<43LLLrys3xx333???!!##2
2||~~!!##%%''eW-- 	  	 JC##C((11-@@BU^^%%&&B2ww  Rxxxx		  	 r5   c                 8   t          ddd          }t          t          j                            t          |          d          |          }|j        g d         }| j                                        \  }}|	                    |           t          |                                d	                                         d d d	f                                                   }d
}t          j        |dd          ||dz  |gz
            dk                                     sJ | j                                        \  }}|                                }|j                            t&                    |_        |	                    |           t          |                                d	                                         d d d	f                                                   }t          j        |dd          |z
            dk                                     sJ d S )Nz2012-6-22 21:59:51rp   rK   rL   r   r"   )r   r&   rN      rg   r   g)QΠE>r&   g:0yE>)r   r	   r;   r<   r=   rT   ilocr?   r@   r(   r   r*   
get_xydatadifffabsallcopyr#   astypeobject)	r.   rV   rD   irregr{   r1   diffssecrW   s	            r3   test_irreg_hfzTestTSPlot.test_irreg_hf  s   -CEEErys3xx333???%!!##2

b
r||~~a(3355aaad;<<AACC abb	S#'3$77884?DDFFFFF!!##2ggiiHOOF++	Br||~~a(3355aaad;<<AACCabb	C((4/446666666r5   c                 F   t          j                    }|g d         }| j                                        \  }}|                    |          }|J t          |                                d                                         |j                  D ]\  }}||k    sJ d S )N)r   r&   r      rg   r   )	r   r   r?   r@   r(   r   r*   r+   r#   )r.   rz   r{   r1   retr   r   s          r3   "test_irregular_datetime64_repr_bugz-TestTSPlot.test_irregular_datetime64_repr_bug,  s    !!,,,!!##2hh"hoo",,..+5577CC 	 	FB88888	 	r5   c                    t          j                    }| j                                        \  }}|                    |           |                                d                                         d         |j        d         j        k    sJ |                                d         	                                }t          |          j        dk    sJ d S )Nrg   r   r$   datarf   )r   makePeriodSeriesr?   r@   r(   r*   r   r#   r   r+   r   freqstrr.   btsr{   r1   rV   s        r3   test_business_freqzTestTSPlot.test_business_freq8  s    !##!!##2B||~~a ++--d3sy|7KKKKKllnnQ))++$$$,333333r5   c                     t          j        d                              d          }|                    d          }| j                                        \  }}|                    |           |                                d                                         d         |j	        d         j
        k    sJ |                                d                                         }t          |          j        dk    sJ d S )Ni,  BMrt   rg   r   r$   r  )r   r   r   r   r?   r@   r(   r*   r   r#   r   r+   r   r  )r.   r	  r0   r{   r1   rV   s         r3   test_business_freq_convertz%TestTSPlot.test_business_freq_convert@  s    $$++D11]]3!!##2B||~~a ++--d3rx{7JJJJJllnnQ))++$$$,333333r5   c                    t                      }t          j        d                              |          }| j                                        \  }}|                    |           |                                d                                         }d}t          j
        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nr   rg   r   z)freq not specified and cannot be inferredrh   r  )r   r   r   r   r?   r@   r(   r*   r+   rk   rl   r   r   )r.   r    r	  r{   r1   rV   rn   s          r3   test_freq_with_no_period_aliasz)TestTSPlot.test_freq_with_no_period_aliasI  s    }}""))$//!!##2BllnnQ))++9]:S111 	" 	"S!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   1CCCc                 z   t          ddd          t          d          z   }t          t          j        d          |          }| j                                        \  }}|                    |           |                                d	         	                                }t          |          j        rJ d S )
Nz
2012-12-20   r   r      minutesr"   rg   r   )r   r   r	   r;   aranger?   r@   r(   r*   r+   r
   is_normalized)r.   rV   rD   r{   r1   r   s         r3   test_nonzero_basezTestTSPlot.test_nonzero_baseU  s    r<<<yQS?T?T?TTry}}C000!!##2
2\\^^A((**99******r5   c                 x   t          dt          j                    i          }| j                                        \  }}|                    |           |                                d                                         }t          j        |j	        
                                t          |                     d S )Nr_   rg   r   )r	   r   r   r?   r@   r(   r*   r+   assert_index_equalr#   r   r   r  s        r3   test_dataframezTestTSPlot.test_dataframe^  s    b/11233!!##2BllnnQ))++
ci1133[5E5EFFFFFr5   c                      fd}t          j                    } j                                        \  }}|                    |            ||            j                                        \  }}t          ||dz   d          }|                    |            ||           t          ||dz   d          }|                    d          }|D ]} ||           d S )Nc                    |                                  }|                     |d         dz
  |d         dz              |                                  }|d         |d         dz
  k    sJ |d         |d         dz   k    sJ t          d| j                  t          d| j                  f}|                     dd           |                                  }t	          |d                   |d         j        k    sJ t	          |d                   |d         j        k    sJ t          d| j                  t          d| j                  f}|                     t          ddd          t          ddd                     |                                  }t	          |d                   |d         j        k    sJ t	          |d                   |d         j        k    sJ |                                 }j        	                    |           d S )	Nr   r   r&   r7   1/1/2000z4/1/2000r   r   )
get_xlimset_xlimr   r    intr   r   
get_figurer?   rj   )r1   xlimresultexpectedrE   r.   s        r3   _testz*TestTSPlot.test_axis_limits.<locals>._testf  s   ;;==DKKQ!T!Wr\222[[]]F!9Q!++++!9Q",,,, z2733VJ5P5PQHKK
J///[[]]Fvay>>Xa[%88888vay>>Xa[%88888 z2733VJ5P5PQHKKq!,,htQ.B.BCCC[[]]Fvay>>Xa[%88888vay>>Xa[%88888--//CHNN3r5   rg   r&   r_   bT)r@   )r   r   r?   r@   r(   r	   )r.   r%  rz   r{   r1   rD   axess   `      r3   test_axis_limitszTestTSPlot.test_axis_limitse  s   	  	  	  	  	 . !!!!##2Bb			!!##2SsQw//00
2b			SsQw//00www%% 	 	BE"IIII	 	r5   c                 :   dd l mc mc m} |                    t          d                    |j        k    sJ |                    t          d                    |j        k    sJ |                    t          d                    |j        k    sJ |                    t          d                    |j        k    sJ |                    t          d                    |j	        k    sJ |                    t          d                    |j        k    sJ d S )Nr   rf   rr   rt   ru   rb   rs   )
r   r   r   r   
get_finderr   _daily_finder_monthly_finder_quarterly_finder_annual_finder)r.   r   s     r3   test_get_finderzTestTSPlot.test_get_finder  s   <<<<<<<<<<<<y~~..$2DDDDDy~~..$2DDDDDy~~..$2FFFFFy~~..$2HHHHHy~~..$2EEEEEy~~..$2DDDDDDDr5   c                 $   g d}t          dd          j        gt          |          z  x}}g }g }|D ]J}t          d|          }t	          t
          j                            t          |                    |          }| j        	                                \  }	}
|
                    |
           |
                                }|                    |                                d                    |
                                \  }}|
                    |dz   |           |                    |                                d                    | j                            |
                                           L||k    sJ ||k    sJ d S )	N)r7   rO      i  i  i
  '  z1999-1-1rf   rM   r   rg   r   ?)r   r   rT   r   r   r;   r<   r=   r?   r@   r(   r   appendget_majorticklocsr  r  rj   r!  )r.   day_lstxpl1xpl2rs1rs2nr   rz   r{   r1   xaxisvminvmaxs                 r3   test_finder_dailyzTestTSPlot.test_finder_daily  sd   666js333;<s7||KKt 	, 	,Aj!444CS22C88CH%%''EArHHHOOOLLNNEJJu..003444JD$KKs
D)))JJu..003444HNN2==??++++d{{{{d{{{{{{r5   c                 B   ddg}t          d          j        gt          |          z  x}}g }g }|D ][}t          dt	          |dz            d          }t          t          j                            t          |                    |          }| j	        
                                \  }	}
|                    |
           |
                                }|                    |                                d	                    |
                                \  }}|
                    |d
z   |           |                    |                                d	                    | j	                            |
                                           ]||k    sJ ||k    sJ d S )Ng      @r   1988Q11987Q2r   ru   r   rg   r   r5  r   r   rT   r   r   r   r;   r<   r=   r?   r@   r(   r   r6  r7  r  r  rj   r!  r.   yrsr9  r:  r;  r<  r=  r   rz   r{   r1   r>  r?  r@  s                 r3   test_finder_quarterlyz TestTSPlot.test_finder_quarterly  si   Bih''/03s88;;t 	, 	,AxQU#FFFCS22C88CH%%''EArHHHOOOLLNNEJJu..003444;;==LT4KKs
D)))JJu..003444HNN2==??++++d{{{{d{{{{{{r5   c                 B   g d}t          d          j        gt          |          z  x}}g }g }|D ][}t          dt	          |dz            d          }t          t          j                            t          |                    |          }| j	        
                                \  }	}
|                    |
           |
                                }|                    |                                d                    |
                                \  }}|
                    |d	z   |           |                    |                                d                    | j	                            |
                                           ]||k    sJ ||k    sJ d S )
N)gffffff?g      @r   r   zJan 1988rD     rt   r   rg   r   r5  rE  rF  s                 r3   test_finder_monthlyzTestTSPlot.test_finder_monthly  sk      j))12SXX==t 	, 	,AxQV3GGGCS22C88CH%%''EArHHHOOOLLNNEJJu..003444JD$KKs
D)))JJu..003444HNN2==??++++d{{{{d{{{{{{r5   c                    t          ddd          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |	                                }|
                                d         }t          dd          j        }||k    sJ d S )NrC  i   rt   r   rg   r   1989Q1)r   r   r;   r<   r=   rT   r?   r@   r(   r   r7  r   r   )r.   r   rz   r{   r1   r>  r   r   s           r3   test_finder_monthly_longz#TestTSPlot.test_finder_monthly_long  s    8W3???RY__SXX..44!!##2B$$&&q)Hc""*Rxxxxxxr5   c                    g d}d |D             }g }dD ]}t          d|d          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |	                                }|
                    |                                d                    | j                            |                                           ||k    sJ d S )	N)r   i    rP    i  i  iz  c                 :    g | ]}t          |d           j        S )rb   rM   )r   r   .0rc   s     r3   
<listcomp>z1TestTSPlot.test_finder_annual.<locals>.<listcomp>  s(    666afQS!!!)666r5   )r   r7      1   rQ      iW  i  1987rb   r   rg   r   )r   r   r;   r<   r=   rT   r?   r@   r(   r   r6  r7  rj   r!  )	r.   r   r   nyearsr   rz   r{   r1   r>  s	            r3   test_finder_annualzTestTSPlot.test_finder_annual  s    ===6626669 	, 	,FvvC@@@CS22C88CH%%''EArHHHOOOLLNNEIIe--//2333HNN2==??++++Rxxxxxxr5   c                    d}t          dd|          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |	                                }|
                                d         }t          dd          j        }||k    sJ d S )Ni@ 1/1/1999MinrL   rg   r   rM   r   r   r;   r<   r=   rT   r?   r@   r(   r   r7  r   r   )	r.   nminutesr   rz   r{   r1   r>  r   r   s	            r3   test_finder_minutelyzTestTSPlot.test_finder_minutely  s    %BBBRY__SXX..44!!##2B$$&&q)JU+++3Rxxxxxxr5   c                    d}t          dd|          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |	                                }|
                                d         }t          dd          j        }||k    sJ d S )N   r]  r   rL   rg   r   rM   r_  )	r.   nhoursr   rz   r{   r1   r>  r   r   s	            r3   test_finder_hourlyzTestTSPlot.test_finder_hourly  s    #v>>>RY__SXX..44!!##2B$$&&q)JS)))1Rxxxxxxr5   c                    t          j                    }t          j        |j        dd<   | j                                        \  }}|                    |           |                                }t          |          dk    sJ |d         }|
                                }t          j                            |t          |          t          j                  }t          |t          j        j        j                  sJ |j        }|dddf                                         sJ | j                            |                                           t          j                    }|g d         }t          j        |j        dd<   | j                                        \  }}|                    |          }|                                }t          |          dk    sJ |d         }|
                                }t          j                            |t          |          t          j                  }t          |t          j        j        j                  sJ |j        }|dddf                                         sJ | j                            |                                           g d}t)          t          j                            t          |                    |          }	t          j        |	j        dd<   | j                                        \  }}|	                    |           |                                }t          |          dk    sJ |d         }|
                                }t          j                            |t          |          t          j                  }t          |t          j        j        j                  sJ |j        }|dddf                                         sJ d S )	Nr      rg   r&   r   mask
fill_value)	r   r&   r   r   r   r8   rJ        r   )r   r   r;   nanr   r?   r@   r(   r*   rT   r   maMaskedArrayr   
isinstancecoreri  r   rj   r!  r   r<   r=   )
r.   r0   r{   r1   linesliner  ri  rV   rz   s
             r3   	test_gapszTestTSPlot.test_gaps  s6     "!!##2
25zzQQx  u  DJJ26 JJ$
 677777yAbD!G}  """""r}}'''   .../v!!!##2WWW^^5zzQQx  u  DJJ26 JJ$
 677777yAaCF|!!!!!r}}''' -,,RY__SXX..441!!##2B5zzQQx  u  DJJ26 JJ$
 677777yAaCF|!!!!!!!r5   c                    t          j                    }t          j        |j        dd<   | j                                        \  }}|                    |           t          |j	        d         |j	        d         d          }t          t          j                            t          |                    |          }|                    d	           |                                }t          |          d
k    sJ t          |j                                                  d
k    sJ |d         }|                                }t          j                            |t'          |          t          j                  }t)          |t          j        j        j                  sJ |j        }	|	ddd
f                                         sJ d S )Nr   rg  rg   r   r%   12hrM   Tsecondary_yr&   rh  )r   r   r;   rm  r   r?   r@   r(   r   r#   r   r<   r=   rT   r*   right_axr   rn  ro  r   rp  rq  ri  r   )
r.   lowr{   r1   idxhr   rr  rs  r  ri  s
             r3   test_gap_upsamplezTestTSPlot.test_gap_upsample>  sq   !!2!!##2B#)A,	"EBBB29??3t99--t44	4   5zzQ2;((**++q0000Qx  u  DJJ26 JJ$
 677777yAbD!G}  """""""r5   c                    t          t          j                            d                    }t          t          j                            d                    }| j                                        \  }}|                    d          }t          |d          sJ t          |d          rJ |                                }|	                                d         }t          |
                                |                                          }t          j        ||           |                                                                dk    sJ |d                                                                         rJ | j                            |           | j                                        \  }}	|                    |	           |	                                                                d	k    sJ | j                            |	                                           |                                }|                    d          }	|                                                                sJ t          |d          rJ t          |d          sJ t          |	d          sJ t          |	d          rJ d S )
Nr7   Trw  left_axry  r   rightrg   left)r   r;   r<   r=   r?   r@   r(   r   get_axesr*   r   r+   r   assert_series_equal	get_yaxisget_ticks_positionget_visiblerj   r!  )
r.   rz   ser2rE   r{   r1   r(  rs  r   ax2s
             r3   test_secondary_yzTestTSPlot.test_secondary_yS  sP   RY__R(())bioob))**""$$QXX$X''r9%%%%%2z*****||~~||~~a DNN$$dnn&6&677
sB'''||~~0022g====7$$&&2244444s""$$3		S	}}1133v====s~~''(((YY[[hh4h((||~~))+++++2y)))))r:&&&&&sI&&&&&3
+++++++r5   c                 :   t          dd          }t          t          j                            d          |          }t          t          j                            d          |          }| j                                        \  }}|                    d          }t          |d          sJ t          |d          rJ |	                                }|
                                d         }t          |                                |                                                                          }	t          j        ||	           |                                                                d	k    sJ |d                                                                         rJ | j                            |           | j                                        \  }}
|                    |

           |
                                                                dk    sJ | j                            |
                                           |                                }|                    d          }
|                                                                sJ d S )Nr  r7   r4  Trw  r~  ry  r   r  rg   r  )r   r   r;   r<   r=   r?   r@   r(   r   r  r*   r   r+   to_timestampr   r  r  r  r  rj   r!  )r.   rV   rz   r  rE   r{   r1   r(  rs  r   r  s              r3   test_secondary_y_tszTestTSPlot.test_secondary_y_tso  s   R000RY__R((#..bioob))3//""$$QXX$X''r9%%%%%2z*****||~~||~~a DNN$$dnn&6&677DDFF
sB'''||~~0022g====7$$&&2244444s""$$3		S	}}1133v====s~~''(((YY[[hh4h((||~~))+++++++r5   c                    t          t          j                            d                    }| j                                        \  }}|                    dd|          }t          |d          sJ t          |d          rJ |                                }|d         	                                
                                dk    sJ d S )	Nr7   Tdensityrx  kindr1   r~  ry  r&   r  )r   r;   r<   r=   r?   r@   r(   r   r  r  r  r.   rz   rE   r1   r(  s        r3   test_secondary_kdezTestTSPlot.test_secondary_kde  s    RY__R(())(##%%RXX$Y2X>>r9%%%%%2z*****||~~Aw  ""55777BBBBBBr5   c                 R   t          t          j                            d                    }| j                                        \  }}|                    dd|           |                                }|d                                         	                                dk    sJ d S )Nr7   Tbarr  r&   r  )
r   r;   r<   r=   r?   r@   r(   r  r  r  r  s        r3   test_secondary_barzTestTSPlot.test_secondary_bar  s    RY__R(())(##%%RT"555||~~Aw  ""55777BBBBBBr5   c                    t          t          j                            dd          g d          }|                    ddgd          }|d	                                                                         d
k    sJ |d                                                                         dk    sJ |d                                                                         d
k    sJ d S )Nr   rN   r_   r'  cr   r_   r  T)rx  r@   r   r  r&   r  r   r	   r;   r<   r=   r(   r  r  r.   rD   r(  s      r3   test_secondary_framezTestTSPlot.test_secondary_frame  s    ryq!,,oooFFFwwC:w==Aw  ""55777BBBBAw  ""55776AAAAAw  ""55777BBBBBBr5   c                    t          t          j                            dd          g d          }|                    dddgd	          }|d
                                                                         dk    sJ |d                                                                         dk    sJ |d                                                                         dk    sJ d S )Nr   rN   r  r  r  r_   r  T)r  rx  r@   r   r  r&   r  r   r  r  s      r3   test_secondary_bar_framez#TestTSPlot.test_secondary_bar_frame  s    ryq!,,oooFFFwwESzDwIIAw  ""55777BBBBAw  ""55776AAAAAw  ""55777BBBBBBr5   c                    t          j                    }|g d         }| j                                        \  }}|                    |           |                    d|          }|                                }t          |d                                                   }t          |d                                                   }t          j        ||j	        
                    d                     t          j        ||j	        
                    d                     |                                \  }	}
|j	        
                                }|	|d         j        k    sJ |
|d         j        k    sJ d S 	Nr   r   r7   r   rJ        rk  rg   gr   r   r&   rf   r%   )r   r   r?   r@   r(   r*   r   r+   r  r#   r   r  r   r.   s1s2r{   r1   r  rr  idx1idx2r  r  pidxs               r3   test_mixed_freq_regular_firstz(TestTSPlot.test_mixed_freq_regular_first  sF     .../ !!##2
2ggCBg''58--//0058--//00
dBH$6$6s$;$;<<<
dBH$6$6s$;$;<<<llnnex!!##tAw&&&&R(((((((r5   c                 b   t          j                    }|g d         }| j                                        \  }}|                    d|           |                    |           t          |d          rJ |                                }|d                                         }t          j        ||j	        
                    t                    j                   |d                                         }t          j        ||j	        
                    t                    j                   d S Nr  r  r   rg   r    r   r&   )r   r   r?   r@   r(   r   r*   r+   assert_numpy_array_equalr#   r   r   rS   r.   r  r  r{   r1   rr  x1x2s           r3   test_mixed_freq_irregular_firstz*TestTSPlot.test_mixed_freq_irregular_first  s      .../!!##2
cb!!!
22v&&&&&1X!!
#B(?(?(FGGG1X!!
#B(?(?(FGGGGGr5   c                 4   t          j                                                    }|j        g dd d f         }| j                                        \  }}|                    |           |                    d|          }|                                }t          |d         	                                          }t          |d         	                                          }|
                    |j                            d                    sJ |
                    |j                            d                    sJ |                                \  }	}
|j                                        }|	|d         j        k    sJ |
|d         j        k    sJ d S r  )r   r   to_framer   r?   r@   r(   r*   r   r+   equalsr#   r   r  r   r  s               r3    test_mixed_freq_regular_first_dfz+TestTSPlot.test_mixed_freq_regular_first_df  se     ))++W333QQQ67!!##2
2ggCBg''58--//0058--//00{{28--c2233333{{28--c2233333llnnex!!##tAw&&&&R(((((((r5   c                    t          j                                                    }|j        g dd d f         }| j                                        \  }}|                    d|           |                    |           t          |d          rJ |                                }|d         	                                }t          j
        ||j                            t                    j                   |d         	                                }t          j
        ||j                            t                    j                   d S r  )r   r   r  r   r?   r@   r(   r   r*   r+   r  r#   r   r   rS   r  s           r3   "test_mixed_freq_irregular_first_dfz-TestTSPlot.test_mixed_freq_irregular_first_df  s     ))++W333QQQ67!!##2
cb!!!
22v&&&&&1X!!
#B(?(?(FGGG1X!!
#B(?(?(FGGGGGr5   c                 N   t          ddd          }t          ddd          }t          t          j                            t          |                    |          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |                    |           |	                                D ]/}t          |                                          j        dk    sJ 0d S )	Nr]  m  rr   r   rJ  rt   rg   r  r   r   r;   r<   r=   rT   r?   r@   r(   r*   r   r+   r    r.   r{  idxlhighrz  r{   r1   rs  s           r3   test_mixed_freq_hf_firstz#TestTSPlot.test_mixed_freq_hf_first  s    *c<<<*bs;;;biooc$ii00$77RY__SYY//66!!##2		R	BLLNN 	B 	BDDNN$4$4555:cAAAAA	B 	Br5   c                    t          ddd          }t          j                            d          }t	          ||          }|                    d                                          }| j                                        \  }}|	                    |          }|	                    d	|
           |j
        d                                         d         |j
        d                                         d         k    sJ d S )Nz2012-01-01 13:00
2012-01-02r   rM   rJ  r"   rq   rg   rr   r   r&   )r   r;   r<   r=   r   r   interpolater?   r@   r(   rr  r+   )r.   ts_indts_datar0   ts2r{   r1   s          r3   test_mixed_freq_alignmentz$TestTSPlot.test_mixed_freq_alignment  s    .3GGG)//"%%G6***iinn((**!!##2WWW^^sr"""x{$$&&q)RXa[-B-B-D-DQ-GGGGGGGr5   c                 N   t          ddd          }t          ddd          }t          t          j                            t          |                    |          }t          t          j                            t          |                    |          }| j                                        \  }}|                    d|           |                    d|           |	                                D ]/}t          |                                	          j        dk    sJ 0|                                }t          |j                  d
k    sJ | j                            |                                           t          ddd          }t          ddd          }t          t          j                            t          |                    |          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |                    |           |	                                D ]/}t          |                                	          j        dk    sJ 0d S )Nr]  r  rr   r   rJ  rt   T)legendr1   r  r      rq   r   r   rg   )r   r   r;   r<   r=   rT   r?   r@   r(   r*   r   r+   r    
get_legendtextsrj   r!  )	r.   r{  r  r  rz  r{   r1   rs  legs	            r3   test_mixed_freq_lf_firstz#TestTSPlot.test_mixed_freq_lf_first  s5   *c<<<*bs;;;biooc$ii00$77RY__SYY//66!!##2$$$		"	%%%LLNN 	B 	BDDNN$4$4555:cAAAAAmmoo39~~""""r}}'''*c<<<*ac:::biooc$ii00$77RY__SYY//66!!##2B		R	LLNN 	B 	BDDNN$4$4555:cAAAAA	B 	Br5   c                 h   t          j                    }|g d         }t          ddd          }t          t          j                            t          |                    |          }| j        	                                \  }}|
                    |           |
                    |           d S )N)r   r&   r   rN   r   r   r   r      r8   r7   rk              z1/3/2000r  rf   r   rg   )r   r   r   r   r;   r<   r=   rT   r?   r@   r(   )r.   r0   r   r   psr{   r1   s          r3   test_mixed_freq_irreg_periodz'TestTSPlot.test_mixed_freq_irreg_period  s      IIIJ:r<<<BIOOCHH--s33!!##2

b

2r5   c                    t          ddd          }|d d                             |dd                    }t          t          t	          |                    |          }t          t          t	          |                    |          }| j                            dd          \  }\  }}|                    |	           |                    |	           |j        dk    sJ |j        dk    sJ |j	        d
         
                                d         |j	        d
         
                                d         k    sJ | j                                        \  }}|                                }|                    |	           |                    |	           |j	        d
         
                                d         |j	        d
         
                                d         k    sJ d S )N
2015-01-01rN   rt   r   r&   r   T)nrowssharexrg   r   r$   )r   rU   r   r>   rT   r?   r@   r(   r    rr  r   twinx)r.   r  r  r  r  rE   ax1r  s           r3   test_mixed_freq_shared_axz$TestTSPlot.test_mixed_freq_shared_ax"  s   ,<<<BQBx~~d122h''E#d))$$d++E#d))$$d++(++!D+AAZc3
3
3x3x3y|&&((.#)A,2I2I2K2KD2QQQQQ 8$$&&Siikk
3
3y|&&((.#)A,2I2I2K2KD2QQQQQQQr5   c                 <   | j                                         \  }}t          dt          dg          }t	          t          t          |                    |          }|                    |           |                                d         	                                }|j
                                        t	          |                                          k    sJ t	          |                                          |j
                                        k    sJ d S )Nr  z
2015-01-03rg   r   )r?   r@   r   r   r   r>   rT   r(   r*   r+   r#   minmax)r.   r{   r1   dtir   r2   s         r3   test_nat_handlingzTestTSPlot.test_nat_handlingB  s    !!##2\3=>>5S??C((	"q!++--w{{}}u 1 1 3 33333e}}  ""agkkmm333333r5   c                 X   t          ddd          }t          ddd          }t          t          j                            t          |                    |          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |                    |           |	                                D ]4}t          |                                          j        |j        k    sJ 5d S )	Nr]  4   rs   r   rJ  rt   rg   r  r  r  s           r3   test_to_weekly_resamplingz$TestTSPlot.test_to_weekly_resamplingM  s    *bs;;;*bs;;;biooc$ii00$77RY__SYY//66!!##2		R	BLLNN 	H 	HDDNN$4$4555:diGGGGG	H 	Hr5   c                    t          ddd          }t          ddd          }t          t          j                            t          |                    |          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |                    |           |	                                j
                            t          j                  }t          j        g dt          j        	          }|                                D ]}	t          |	                                
          j        |j        k    sJ |	                    d          }
t          |
          dk    rt%          j        |
|           st%          j        |
|           t%          j                     d S )Nr]  r  rs   r   rJ  rt   rg   i  i  i  i  i  i   i  i  i  i  i  i  dtyper  Forig)r   r   r;   r<   r=   rT   r?   r@   r(   r   asi8r   float64r]   r*   r   r+   r    r   r  rj   )r.   r{  r  r  rz  r{   r1   
expected_h
expected_lrs  r2   s              r3   test_from_weekly_resamplingz&TestTSPlot.test_from_weekly_resamplingX  s   *bs;;;*bs;;;biooc$ii00$77RY__SYY//66!!##2B		R	^^%%*11"*==
XTTT*
 
 

 LLNN 	? 	?DDNN$4$4555:diGGGGNNN..E5zzR+E:>>>>+E:>>>>





r5   c                    t          ddd          }t          ddd          }t          t          j                            t          |          d          |g d	          }t          t          j                            t          |          d          |g d	          }d
D ]l\  }}| j                                        \  }}|                    |d|           |                    |d|           t          j	        g dt          j
                  }	t          j        t          |	          t          j
                  }
t          d          D ]}|j        |         }t          |                                          j        |j        k    sJ t#          j        |                    d          |	           |
||         j        z  }
t#          j        |                    d          |
           |                                j                            t          j
                  }	t          j        t          |	          t          j
                  }
t          d          D ]}|j        d|z            }t          |                                          j        |j        k    sJ t#          j        |                    d          |	           |
||         j        z  }
t#          j        |                    d          |
           nd
D ]m\  }}| j                                        \  }}|                    |d|           |                    |d|           |                                j                            t          j
                  }	t          j        t          |	          t          j
                  }
t          d          D ]}|j        |         }t          |                                          j        |j        k    sJ t#          j        |                    d          |	           |
||         j        z  }
t#          j        |                    d          |
           t          j	        g dt          j
                  }	t          j        t          |	          t          j
                  }
t          d          D ]}|j        d|z            }t          |                                          j        |j        k    sJ t#          j        |                    d          |	           |
||         j        z  }
t#          j        |                    d          |
           od S )Nr]  r  rs   r   rJ  rt   rN   )r   r&   r   r   ))rs  area)r  rs  T)r  stackedr1   r  r  Fr  r  )r   r	   r;   r<   randrT   r?   r@   r(   r]   r  zerosr>   rr  r   r+   r    r   r  rS   r   r   r  r   )r.   r{  r  r  rz  kind1kind2r{   r1   
expected_x
expected_yr^   rs  rr  s                 r3   $test_from_resampling_area_line_mixedz/TestTSPlot.test_from_resampling_area_line_mixedo  s   *bs;;;*bs;;;D		155T999UUU	s4yy!44D)))TTT A (	T (	TLE5H%%''EArHH%"H555II5$2I666    j  J" #j//DDDJ1XX T Tx{"4>>#3#3449TYFFFF+DNNN,F,F
SSSc!fm+
+DNNN,F,F
SSSS )).55bjAAJ#j//DDDJ1XX T TxA"(8(8999>$)KKKK+DNNN,F,F
SSSd1gn,
+DNNN,F,F
SSSST A '	U '	ULE5H%%''EArII5$2I666HH%"H555 )).55bjAAJ#j//DDDJ1XX T Tx{"(8(8999>$)KKKK+DNNN,F,F
SSSd1gn,
+DNNN,F,F
SSSS    j  J" #j//DDDJ1XX U UQ"(9(9:::?49LLLL+EOOO,G,GTTTc!fm+
+EOOO,G,GTTTTUE'	U '	Ur5   c                 (   t          ddd          }t          ddd          }t          t          j                            t          |                    |          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |                    |           t          |	                                          dk    sJ |	                                D ]/}t          |                                	          j        d
k    sJ 0t          j                     | j                                        \  }}|                    |           |                    |           t          |	                                          dk    sJ |	                                D ]/}t          |                                	          j        d
k    sJ 0d S )Nz2014-07-01 09:00rp   2   rL   100Lr   rg   r   r  r   )r   r   r;   r<   r=   rT   r?   r@   r(   r*   r   r+   r    r   rj   r  s           r3   "test_mixed_freq_second_millisecondz-TestTSPlot.test_mixed_freq_second_millisecond  s   ,3CCC,63GGGbiooc$ii00$77RY__SYY//66!!##2		R	B2<<>>""a''''LLNN 	B 	BDDNN$4$4555:cAAAAA



 !!##2B		R	2<<>>""a''''LLNN 	B 	BDDNN$4$4555:cAAAAA	B 	Br5   c                 p   t          ddd          t          ddd          t          ddd          g}t          t          j                            t          |          d          t          |t                              }t          |j	                   t          dd	          }|g d
                             t                    }t          t          j                            t          |          d          |          }| j                                        \  }}t          |j	        |           d S )Nr   r&   r   rl  rN   r  r  r7   r4  )r   r   r   r8   rg   )r   r	   r;   r<   r=   rT   r
   r   r'   r(   r   r   r?   r@   )r.   rV   rD   r{   r1   s        r3   test_irreg_dtypeszTestTSPlot.test_irreg_dtypes  s    D!QdAq!1!14a3D3DErys3xx33U3f5M5M5MNN"'""" R000,,,&&v..rys3xx33S99!!##2"'b))))))r5   c                    t          dddddd          t          j                            ddd                                          }t          j        fd|D                       }t          t          j                            t          |                    t          j                            t          |                    d|          }| j	        
                                \  }}|                    |	           |                                }|                                }t          ||          D ]\  }}	t          t!          |          d
          \  }
}t          |
d
          \  }}
|	                                }t          |          dk    rW|dk    r%t%          ||
|                              d          }n$t%          ||
|                              d          }||k    sJ d S )Nr&   rN   r  r   rl  c                 t    g | ]4}t          t          |                     z                                   5S r  r   r   r   rT  rc   ts     r3   rU  z(TestTSPlot.test_time.<locals>.<listcomp>  ;    NNN!Ic!ff5555;;==NNNr5   r&  r"   rg   <   %H:%M:%S%H:%M)r   r;   r<   randintcumsumr]   r	   r=   rT   r?   r@   r(   
get_xticksrA   r   divmodr   r   r   r   r.   deltasr0   rD   rE   r1   tickslabels_tick_labelmr   hr   r   r  s                  @r3   	test_timezTestTSPlot.test_time  s   Q1aQ''""1b!,,3355XNNNNvNNNOO)//#b''**R1I1IJJRT
 
 
 (##%%R
2 ##%% // 		  		 ME6#e**b))DAq!R==DAq""B2ww{{66aA//
;;BBaA//88BRxxxx		  		 r5   c                    t          dddddd          t          j                            ddd                                          }t          j        fd|D                       }t          t          j                            t          |                    t          j                            t          |                    d|          }| j	        
                                \  }}|                    |	           |                                }|                                }t          ||          D ]\  }}	t          t!          |          d
          \  }
}t          |
d
          \  }}
|	                                }t          |          dk    rW|dk    r%t%          ||
|                              d          }n$t%          ||
|                              d          }||k    sJ |                    dd           |                                }|                                }t          ||          D ]\  }}	t          t!          |          d
          \  }
}t          |
d
          \  }}
|	                                }t          |          dk    rW|dk    r%t%          ||
|                              d          }n$t%          ||
|                              d          }||k    sJ d S )Nr&   rN   r  r   rl  c                 t    g | ]4}t          t          |                     z                                   5S r  r  r  s     r3   rU  z4TestTSPlot.test_time_change_xlim.<locals>.<listcomp>	  r  r5   r&  r"   rg   r  r  r	  z1:30z5:00)r   r;   r<   r
  r  r]   r	   r=   rT   r?   r@   r(   r  rA   r   r  r   r   r   r   r  r  s                  @r3   test_time_change_xlimz TestTSPlot.test_time_change_xlim  s   Q1aQ''""1b!,,3355XNNNNvNNNOO)//#b''**R1I1IJJRT
 
 
 (##%%R
2 ##%% // 		  		 ME6#e**b))DAq!R==DAq""B2ww{{66aA//
;;BBaA//88BRxxxx 	FF### ##%% // 		  		 ME6#e**b))DAq!R==DAq""B2ww{{66aA//
;;BBaA//88BRxxxx		  		 r5   c                     t          dddddd          t          j                            ddd                                          }t          j        fd|D                       }t          t          j                            t          |                    t          j                            t          |                    d|          }| j	        
                                \  }}|                    |	          }|                                }|                                }t          ||          D ]A\  }}	t          t!          |          d
          \  }
}t#          |t!          |          z
  dz            }t          |
d
          \  }}
|	                                }t          |          dk    r|dz  dk    r&t'          ||
||                              d          }n|dz  dk    r.t'          ||
||                              d          d d         }nQ|dk    r&t'          ||
||                              d          }n%t'          ||
||                              d          }||k    sJ Cd S )Nr&   rN   r  r   rl  c                 t    g | ]4}t          t          |                     z                                   5S ))microsecondsr  r  s     r3   rU  z.TestTSPlot.test_time_musec.<locals>.<listcomp>2  s;    SSSqI3q66::::@@BBSSSr5   r&  r"   rg   r  g    .Ai  r   r  r	  )r   r;   r<   r
  r  r]   r	   r=   rT   r?   r@   r(   r  rA   r   r  r   roundr   r   r   )r.   r  r0   rD   rE   r1   r  r  r  r  r  r   r   r  r   r   r  s                   @r3   test_time_museczTestTSPlot.test_time_musec/  sK   Q1aQ''""1b!,,3355XSSSSFSSSTT)//#b''**R1I1IJJRT
 
 
 (##%%RWWW^^ ##%% // 	  	 ME6#e**b))DAqE

*c122B!R==DAq""B2ww{{I!##aAr**33MBBBBDjQ&&aAr**33MBB3B3GBB!VVaAr**33J??BBaAr**33G<<BRxxxx!	  	 r5   c                 &   t          ddd          }t          ddd          }t          t          j                            t          |                    |          }t          t          j                            t          |                    |          }| j                                        \  }}|                    |           |                    d|	          }|	                                D ].}t          |                                          j        dk    sJ /t          |d
          sJ t          |d          rJ |j        	                                D ].}t          |                                          j        dk    sJ /d S )Nr]  r  rr   r   rJ  rt   rg   Trx  r1   r~  ry  )r   r   r;   r<   r=   rT   r?   r@   r(   r*   r   r+   r    r   r~  r  s           r3   test_secondary_upsamplez"TestTSPlot.test_secondary_upsampleN  si   *c<<<*bs;;;biooc$ii00$77RY__SYY//66!!##2BYY4BY//LLNN 	= 	=Dt~~//005<<<<<r9%%%%%2z*****J((** 	= 	=Dt~~//005<<<<<	= 	=r5   c                 z   | j                                         }|                    d          }t          j                    }|                    ddg|           |                                }t          |                                          dk    sJ |	                                d         
                                dk    sJ |	                                d         
                                d	k    sJ |	                                d
         
                                dk    sJ |	                                d         
                                dk    sJ |j                                        J t                      }|                                D ])}|                    |                                           *t          |          dk    sJ | j                             |           | j                                         }|                    d          }|                    ddgd|           |                                }t          |                                          dk    sJ |	                                d         
                                dk    sJ |	                                d         
                                dk    sJ |	                                d
         
                                dk    sJ |	                                d         
                                dk    sJ | j                             |           | j                                         \  }}|                    ddg|           |                                }|	                                d         
                                dk    sJ |	                                d         
                                dk    sJ | j                             |           | j                                         \  }}|                    ddgd|           |                                }|	                                d         
                                dk    sJ |	                                d         
                                dk    sJ | j                             |           | j                                         }|                    d          }t          j                    }|                    ddg|          }|                                }t          |                                          dk    sJ |j                                        J t                      }|                                D ])}|                    |                                           *t          |          dk    sJ | j                             |           t          j                    }| j                                         }|                    d          }|                    ddg|          }|                                }t          |                                          dk    sJ |j                                        J t                      }|                                D ])}|                    |                                           *t          |          dk    sJ | j                                          | j                                         }|                    d          }|                    ddg|          }|                                }t          |                                          dk    sJ |j                                        J t                      }|                                D ])}|                    |                                           *t          |          dk    sJ d S )N   rb   rf   r!  r   r   z	A (right)r&   z	B (right)r   r   rN   rr   F)rx  
mark_rightr1   r  )r  rx  r1   )r  rx  r%  r1   )r?   figureadd_subplotr   makeTimeDataFramer(   r  rT   r*   	get_textsr   ry  setaddr   rj   r@   makeDataFrame)r.   rE   r1   rD   r  colorsrs  s          r3   test_secondary_legendz TestTSPlot.test_secondary_legend]  s   hoo__S!! !##
S#J2...mmoo3==??##q((((}}q!**,,;;;;}}q!**,,;;;;}}q!**,,3333}}q!**,,3333{%%''///MMOO 	) 	)DJJt~~''(((( 6{{ashoo__S!!
S#J5R@@@mmoo3==??##q((((}}q!**,,3333}}q!**,,3333}}q!**,,3333}}q!**,,3333s(##%%R
U"555mmoo}}q!**,,;;;;}}q!**,,3333s(##%%R
U%BGGGmmoo}}q!**,,3333}}q!**,,3333shoo__S!!!##WW#sW33mmoo3==??##q(((({%%''///MMOO 	) 	)DJJt~~''(((( 6{{as hoo__S!!WW#sW33mmoo3==??##q(((({%%''///MMOO 	) 	)DJJt~~''(((( 6{{ahoo__S!!WW#sW33mmoo3==??##q(((({%%''///MMOO 	) 	)DJJt~~''(((( 6{{ar5   c                    t          ddd          }t          t          j                            t          |          d          |          }| j                                        \  }}|                    |          }|	                                }|
                                D ]A}t          |                                          dk    r|                                dk    sJ Bd S )	Nr   rJ  rt   r   rN   rg   r   r  )r   r	   r;   r<   r=   rT   r?   r@   r(   r   r   r   get_rotation)r.   r   rD   r{   r1   r>  rs  s          r3   test_format_date_axisz TestTSPlot.test_format_date_axis  s    Rc:::rys3xx33S99!!##2WWW^^((** 	1 	1D4==??##a''((**b0000	1 	1r5   c                 X   t          ddd          }t          t          t          |                              }| j                                        \  }}|                    ||d          }t          j        t          |d         
                                          |           d S )Nr  r7   rr   startr   r    Y)rF   r   )r   r)   r>   rT   r?   r@   r(   r   r  r   r+   )r.   rc   rd   r{   r1   rr  s         r3   test_ax_plotzTestTSPlot.test_ax_plot  s    \2C@@@s1vv!!##21C((
mE!H,>,>,@,@AA1EEEEEr5   c                    t          ddd          t          ddd          g}t          j        ddd          }t          j        dd	d          }d
dd}| j                                        \  }} |j        d |D             |fi |  |j        d |D             |fi | |                                \  }}t          j        d |D             t          j                  }	t          j
        |                                d d df         |	           t          j        d |D             t          j                  }	t          j
        |                                d d df         |	           d S )N  rJ     i  r&   g      $@g      &@g      ?g      (@-r   )fmtlwc                 6    g | ]}|                                 S  	toordinalrS  s     r3   rU  z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>       333akkmm333r5   c                 6    g | ]}|                                 S r>  r?  rS  s     r3   rU  z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>  rA  r5   c                 6    g | ]}|                                 S r>  r?  rS  s     r3   rU  z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>       555!555r5   r  r   c                 6    g | ]}|                                 S r>  r?  rS  s     r3   rU  z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>  rD  r5   )r   r;   r  r?   r@   	plot_dater*   r]   r  r   r  r   )
r.   datesvalues1values2kwr{   r1   line1line2exps
             r3   test_mpl_nopandaszTestTSPlot.test_mpl_nopandas  s}   dB##T$2%6%67)D$,,)D$,,""!!##233U333WCCCCC33U333WCCCCC||~~uh55u555RZHHH
#E$4$4$6$6qqq!t$<cBBBh55u555RZHHH
#E$4$4$6$6qqq!t$<cBBBBBr5   c                 
   ddl m} t          j                    d d         }|g d         }| j                                        \  }}|d d                             |           |dd                              |           |                                \  }}||                    |j	        
                                d|          k    sJ ||                    |j	                                        d|          k    sJ d S )Nr   DatetimeConverterrl  r&   r   r   r   r  r8   r7   rJ  r  r  rk  r  r  r   rg    r   rQ  r   r   r?   r@   r(   r  convertr#   r  r  r.   rQ  r0   ts_irregularr{   r1   r  r  s           r3    test_irregular_ts_shared_ax_xlimz+TestTSPlot.test_irregular_ts_shared_ax_xlim  s   KKKKKK  "%HHHI !!##2RaR$$$QRR$$$ kkmme(001C1G1G1I1I2rRRRRRR)11,2D2H2H2J2JBPRSSSSSSSSr5   c                 h   g d}g d}t          d|          }t          d|          }| j                                        \  }}|                    |           |                                \  }}|                    d|           |                                \  }	}
||	k    sJ ||
k     sJ d S )	N)r&   r   rN   r   )r   r   r   r  r&   r"   r   rg   Tr!  )r   r?   r@   r(   r  r.   index_1index_2r  r  r{   r1   left_beforeright_before
left_afterright_afters              r3   test_secondary_y_non_ts_xlimz'TestTSPlot.test_secondary_y_non_ts_xlim  s    ,,,,AW%%%AW%%%!!##2
2$&KKMM!\
DR((("$++--
Kj((((k))))))r5   c                    t          ddd          }t          ddd          }t          d|          }t          d|          }| j                                        \  }}|                    |	           |                                \  }}|                    d
|           |                                \  }	}
||	k    sJ ||
k     sJ d S )N
2000-01-01r   rr   r3  z
2000-01-05r&   r"   r   rg   Tr!  )r   r   r?   r@   r(   r  rZ  s              r3    test_secondary_y_regular_ts_xlimz+TestTSPlot.test_secondary_y_regular_ts_xlim  s    <EEE<EEEAW%%%AW%%%!!##2
2$&KKMM!\
DR((("$++--
Kj((((k))))))r5   c                    t          ddd          }t          d|          }| j                                        \  }}|                    |           |                                \  }}|                    d                                                              d	|
           |                                \  }}||k    sJ ||k    sJ d S )Nrc  r3  r  r   r&   r"   rg   rr   Tr!  )r   r   r?   r@   r(   r  resamplemean)	r.   r   r0   r{   r1   r]  r^  r_  r`  s	            r3   #test_secondary_y_mixed_freq_ts_xlimz.TestTSPlot.test_secondary_y_mixed_freq_ts_xlim  s    u5AAAAS!!!!!##2
2$&KKMM!\
C$$"$==="$++--
K j(((({******r5   c                 H   ddl m} t          j                    d d         }|g d         }| j                                        \  }}|d d                             |           |dd                              d|           |d d                             |           |                                \  }}||                    |j	        
                                d	|          k    sJ ||                    |j	                                        d	|          k    sJ d S )
Nr   rP  rl  rR  r   rg   Tr!  rS  rT  rV  s           r3   "test_secondary_y_irregular_ts_xlimz-TestTSPlot.test_secondary_y_irregular_ts_xlim  s3   KKKKKK  "%HHHI!!##2RaR$$$QRR$2666RaR$$$kkmme(001C1G1G1I1I2rRRRRRR)11,2D2H2H2J2JBPRSSSSSSSSr5   c                    t          ddd          t          ddd          g}| j                                        \  }}|                    |           t	          dddd          t	          dddd          g}|                    |           d S )Ni  r&   r   rJ  )r   r?   r@   r(   r   )r.   rS   r{   r1   s       r3   test_plot_outofbounds_datetimez)TestTSPlot.test_plot_outofbounds_datetime.  s    tQ""Dq!$4$45!!##2
4Ar**HT1a,D,DE
r5   c                    d t          j        d          D             }t          ddd          }t          t           j                            t          |          d          |          }| j                                        \  }}|	                    d|           | j        
                                 |                                }d	 |D             }t          |          t          |          k    sJ ||k    sJ d S )
Nc                     g | ]}d |d	S )z00:00:00.0000000z0>2dr>  )rT  r^   s     r3   rU  zATestTSPlot.test_format_timedelta_ticks_narrow.<locals>.<listcomp>8  s$    NNN16a666NNNr5   r7   0nsr   rN   r   r9   c                 6    g | ]}|                                 S r>  r   rS  s     r3   rU  zATestTSPlot.test_format_timedelta_ticks_narrow.<locals>.<listcomp>A       666!666r5   )r;   r  r   r	   r<   r=   rT   r?   r@   r(   drawrA   r.   expected_labelsr   rD   rE   r1   r  result_labelss           r3   "test_format_timedelta_ticks_narrowz-TestTSPlot.test_format_timedelta_ticks_narrow7  s    NN	"NNNc2D999rys3xx33S99(##%%R
r"""##%%66v666=!!S%9%99999//////r5   c                    g d}t          ddd          }t          t          j                            t          |          d          |          }| j                                        \  }}|                    d|          }| j        	                                 |
                                }d	 |D             }t          |          t          |          k    sJ ||k    sJ d S )
N)	z00:00:00z1 days 03:46:40z2 days 07:33:20z3 days 11:20:00z4 days 15:06:40z5 days 18:53:20z6 days 22:40:00z8 days 02:26:40z9 days 06:13:20ro  r7   1 dr   rN   r   r9   c                 6    g | ]}|                                 S r>  rr  rS  s     r3   rU  z?TestTSPlot.test_format_timedelta_ticks_wide.<locals>.<listcomp>Y  rs  r5   )r   r	   r;   r<   r=   rT   r?   r@   r(   rt  rA   ru  s           r3    test_format_timedelta_ticks_widez+TestTSPlot.test_format_timedelta_ticks_wideE  s    

 

 

 c2E:::rys3xx33S99(##%%RWWaBW''##%%66v666=!!S%9%99999//////r5   c                    t          t          d          t          dd                    }| j                                        \  }}t          |j        |           t          ddd          }t          t          j        	                    t          |                    |          }| j                                        \  }}t          |j        |           t          ddd	          }t          t          j        	                    t          |                    |          }| j                                        \  }}t          |j        |           d S )
Nr   1dayr4  rg   z1 day 2 hr 30 min 10 sr7   rz  r   z1 ns)r   r>   r   r?   r@   r'   r(   r;   r<   r=   rT   )r.   r   r{   r1   r#   s        r3   test_timedelta_plotzTestTSPlot.test_timedelta_plot]  s"   588_VQ???@@!!##2!&R((((   8"5QQQ29??3u::..66!!##2!&R((((   8"6RRR29??3u::..66!!##2!&R((((((r5   c                    t          ddd          }|}t          j        ddd          }t          j        ddd          d d d         }| j                                        \  }}|                    ||g||g	           d S )
Nr   r7   r   r   r   r&   g?r%   )weights)r   r;   r  r?   r@   hist)r.   r   rc   w1w2r{   r1   s          r3   	test_histzTestTSPlot.test_histo  s    Rc:::Yq!S!!Yq!S!!$$B$'!!##2
AR)))))r5   c           
         t          g dt          ddd          t          ddd          t          ddd          g          }t          g dt          ddd          t          d	dd          t          d
dd          g          }| j                                        \  }}|                    |           |                    |           |                    |           d S )NrZ   rQ  rJ  r9  r   i  r"   i  i  r8  rg   )r   r   r?   r@   r(   )r.   r  r  r{   r1   s        r3   test_overlapping_datetimez$TestTSPlot.test_overlapping_datetimex  s    IIr2&&r2&&r2&&
 
 
 IIr2&&r2&&r2&&
 
 
 !!##2
2
2
2r5   z1GH9053 matplotlib does not use ax.xaxis.converterc                    t          t          j                            d          t	          dd                    }|                                }t          j        t                    5  |                    |j	        |j
        d           d d d            n# 1 swxY w Y   |j        \  }}t          j        |                                |                                           d S )Nr7   z
1970-01-02r4  r"   r  )r   )r   r;   r<   r=   r   r(   r   assert_produces_warningDeprecationWarningr#   rS   rr  r  r   )r.   r   r1   l1l2s        r3   test_add_matplotlib_datetime64z)TestTSPlot.test_add_matplotlib_datetime64  s    
 29??2&&jr.R.R.RSSSVVXX'(:;; 	2 	2GGAGQXSG111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 B
#BMMOOR]]__EEEEEs   +#BB!Bc                    t          t          j                            d                              dd          ddg          }t          ddd	          |d
<   | j                                        \  }}|                    d
d|           | j        	                                 |
                                d         }d}|                                |k    sJ d S )Nr   r7   r   rc   rd   r  z
2018-01-01rr   r   r   )rc   rd   r  )r	   r;   r<   RandomStater  r   r?   r@   scatterrt  rA   r   )r.   rD   rE   r1   rF   r$  s         r3   "test_matplotlib_scatter_datetime64z-TestTSPlot.test_matplotlib_scatter_datetime64  s    ry,,Q//44R;;c3ZPPPbsCCC6
(##%%R


Vs
,,,""$$Q'~~8++++++r5   c                    t          g d          }t          |g dd          }|                    dd          }|                     |d           t          g d          }t          |g dd          }|                    dd          }|                     |d	           |                    d                              dd
          }|                     |d	           |                    d                              dd          }|                     |d           |                    ddd
d
          }|                     |d	           |                    ddd
d          }|                     |d           d S )N)
2020-05-01
2020-05-02z
2020-05-03rZ   )rc   rd   rc   rd   r   )xrot)r  r  z
2020-05-04r  T)rd   	use_indexF)rc   rd   r@   r  )r   r	   r(   _check_ticks_props	set_index)r.   rc   rD   r(  s       r3   test_check_xticks_rotz TestTSPlot.test_check_xticks_rot  s    BBBCCQYYY//00www$$1--- BBBCCQYYY//00www$$2... ||C  %%t%<<2...||C  %%u%==1--- wwd4w@@2...wwd5wAA1-----r5   N)___name__
__module____qualname__rk   markfilterwarningsr4   rG   rX   r`   ro   parametrizer|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   xfailr   r   r  r
  r  r  r  r  r)  r0  rA  rH  rK  rN  r[  slowra  re  rt  r|  r  r  tdskip_if_no_scipyr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r.  r1  r6  rN  rX  ra  rd  rh  rj  rl  rx  r|  r  r  r  r  r  r  r>  r5   r3   r   r   -   s       [ 566
< 
< 76
<- - -# # #&* * *   [V%M%M%MNN+ + ON+ [GGG + + +6 6 60 0 0 [VdD\22+ + 32+Q Q Q  & [V%M%M%MNN4 4 ON4
 [CCC : : : [GGG > > >
 [V%M%M%MNN2 2 ON2
 [CCC ) ) ) [GGG ) ) ) [GGG $ $ $' ' '$ $ $$ $ $
 [455    65 $7 7 7&
 
 
4 4 44 4 4
" 
" 
"+ + +G G G& & &PE E E  ,  ,  ,     [
 
 

 
 
1" 1" 1"f# # #*, , ,8, , ,2 C C CC C CC C CC C C) ) ),H H H) ) )"H H H	B 	B 	BH H HB B B0  R R R@	4 	4 	4	H 	H 	H  .YU YU YUvB B B.* * *     0'  '  ' R     >= = =Y  Y  Y v [4551 1 651F F FC C C$T T T"* * * * * * + + +T T T$  0 0 00 0 00) ) )$* * *  4 [QRR
F 
F SR
F	, 	, 	,. . . . .r5   r   c                    dd l m} |                                }	 |                                 |                    d          }|                    d|                                          }t          |dd           }	 | |i |}
|
J |                    d|                                          }|7|j        j	        }t          |t                    r|j        }|	|j	        |k    sJ ||	|j	        |k    sJ |                    d          }||d<    | |i |}
|
J t          j        d          5 }|                    |           d d d            n# 1 swxY w Y   t          j        d          5 }t!          j        ||           d d d            n# 1 swxY w Y   |                    |           d S # |                    |           w xY w)Nr   r$  r1   r       T)return_filelike)matplotlib.pyplotpyplotgcfclfr'  popgcagetattrr#   r    rp  r   r   r   ensure_cleansavefigpickledumprj   )fr    seriesargskwargsr?   rE   r1   orig_axorig_axfreqr  dfreqpaths                r3   r'   r'     sT   ######
''))C 			__S!!**T37799--gvt44a   ZZcggii((L%E%,, ("w%'''' 37d????__S!!ta   _T222 	dKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 _T222 	#dKT"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 			#		#sT   DF= 7EF= EF=  E!F= 9FF= FF= "F#F= =G)NN),__doc__r   r   r   r   r  numpyr;   rk   pandas._libs.tslibsr   r   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr	   r
   r   r   r   r   r   pandas._testing_testingr   pandas.core.indexes.datetimesr   r   r   pandas.core.indexes.periodr   r   r   pandas.core.indexes.timedeltasr   pandas.tests.plotting.commonr   pandas.tseries.offsetsr   skip_if_no_mplr   r'   r>  r5   r3   <module>r     s   B B                         * ) ) ) ) ) ) ) )                                
         
 ; : : : : : 5 5 5 5 5 5 . . . . . . T. T. T. T. T. T. T. T.n,% % % % % %r5   