
    Pim                        d dl m Z mZmZ d dlZd dlZd dlmc mZ	 d dl
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  e ddd           e ddd          cZZ G d d	          Z G d
 d          Z G d d          Zd Zd Z d Z!dS )    )datetime	timedeltatimezoneN)	DataFrameDatetimeIndexIndexSeries	Timestampbdate_range
date_range)	BMonthEndMinuteMonthEndi     i  c                      e Zd Zg dZd Zej                            dej	        e
eg          d             Zej                            de          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                            dg d          d             Zej                            dddg          d             Zd Zej                            de          d             Zd Z d Z!ej                            dg d          d              Z"d! Z#d" Z$ej                            d#g d$          d%             Z%d& Z&d'S )(TestDatetimeIndexSetOps)NUTC
Asia/Tokyo
US/Easternzdateutil/Asia/Singaporedateutil/US/Pacificc                     t          dd          }|d d         }|dd          }|                    ||          }t          j        ||           d S N
2020-01-01
   periods   sortr   uniontmassert_index_equal)selfr   
everythingfirstsecondr!   s         ~/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/indexes/datetimes/test_setops.pytest_union2z#TestDatetimeIndexSetOps.test_union2,   s\    b999
2A2ABBF..
eZ00000    boxc                     t          dd          }|d d         }|dd          }|                    ||          } ||j                  }|                    ||          }t          j        ||           d S r   )r   r!   valuesr"   r#   )	r$   r   r+   r%   r&   r'   expectedcaseresults	            r(   test_union3z#TestDatetimeIndexSetOps.test_union33   s    b999
2A2ABB ;;vD;11s6=!!T--
fh/////r*   tzc                 d   t          ddd|d          }t          ddd|d          }t          ddd|d          }t          t          |          t          |          z             }t          ddd|d          }t          ddd|d          }t          ddd	|d          }	t          t          |          t          |d d
                   z             }
t          ddd|d          }t          g |                              d          }t          ddd|d          }|}||||f|||	|
f||||ffD ]w\  }}}}|                    ||          }t          j        ||           |                    ||          }|t          j        ||           bt          j        ||           xd S )N1/1/2000Dr   ns)freqr   r2   unit1/6/2000r   1/4/2000      r2   r   )r   r   listas_unitr!   r"   r#   )r$   r2   r   rng1other1	expected1expected1_notsortedrng2other2	expected2expected2_notsortedrng3other3	expected3expected3_notsortedrngotherexpexp_notsortedresult_unions                       r(   
test_unionz"TestDatetimeIndexSetOps.test_union?   s   *3btLLLJS!NNNzRBTRRR	+DLL4::,EFF*3btLLLJS!NNNzQ2DQQQ	+DLL4RaR>>,IJJ*3btLLLrb)))11$77zQ2DQQQ	" 69&9:69&9:69&9:/
 	C 	C*C]
 99U966L!,444 ;;s;66L|%lC8888%lMBBBB	C 	Cr*   c                 R   t          g d          }t          |                                d          }|                    ||          }t          j        ||           |d d                             ||          }t          j        ||           |j        |j        k    sJ d S )N)
2000-01-03
2000-01-01
2000-01-02inferr7   r   r   )r   sort_valuesr!   r"   r#   r7   )r$   r   idxorderedr0   s        r(   test_union_coveragez+TestDatetimeIndexSetOps.test_union_coverage^   s    FFFGG 1 1@@@s..
fg...!""7"66
fg...{gl******r*   c                 P   t          ddd          }t          ddd          }|                    ||          }t          |          t          |dd                    z   }|t          t	          |                    }nt          |          }t          j        ||           d S )N1/1/2012   3hr   r7   4hr   r   )r   r!   r>   r   sortedr"   r#   )r$   r   rng_arng_br0   rN   s         r(   test_union_bug_1730z+TestDatetimeIndexSetOps.test_union_bug_1730h   s    :qt<<<:qt<<<U..5kkDqrrOO+<s,,CC$$C
fc*****r*   c                     t          dg          }t          g d          }|                    ||          }t          g d          }||                                }t          j        ||           d S )N2012-05-11 15:19:49.695000)2012-05-29 13:04:21.3220002012-05-11 15:27:24.8730002012-05-11 15:31:05.350000r   )rg   rh   ri   rj   )r   r!   rX   r"   r#   )r$   r   leftrightr0   rN   s         r(   test_union_bug_1745z+TestDatetimeIndexSetOps.test_union_bug_1745t   s    :;<<  
 
 E--  
 
 <//##C
fc*****r*   c                 B   ddl m} t          dd          }| |d          z   }|                    ||          }t	          |          t	          |          z   }|t          t          |                    }nt          |          }t          j        ||           d S )Nr   
DateOffsetz
2013-01-01z
2013-02-01   )minutesr   )	pandasrp   r   r!   r>   r   rb   r"   r#   )r$   r   rp   rk   rl   r0   rN   s          r(   test_union_bug_4564z+TestDatetimeIndexSetOps.test_union_bug_4564   s    %%%%%%,55zz"----E--4jj4;;&<s,,CC$$C
fc*****r*   c                     t          dd          }d |j        _        |                    ||          }t	          j        ||           |j        J d S )N20150101r   r   r   )r   _datar7   r!   r"   r#   )r$   r   r.   r0   s       r(   test_union_freq_both_nonez1TestDatetimeIndexSetOps.test_union_freq_both_none   sZ    z2666"t44
fh///{"""""r*   c                     t          dd          }|g d         }|g d         }|j        J |j        J |                    |          }t          j        ||           |j        dk    sJ d S )Nz
2016-01-01r   r   )r   r   r<   r^   )   r<   r   r5   )r   r7   r!   r"   r#   )r$   dtirk   rl   r0   s        r(   test_union_freq_inferz-TestDatetimeIndexSetOps.test_union_freq_infer   s     q111<<< IIIy   z!!!E""
fc***{c!!!!!!r*   c                    t          ddd          }t          t          j                            d                              t          |                    |          }t          ddd          }t          t          j                            d                              t          |                    |          }t          ||d          }t          ddd          }t          j	        |j
        |           d S )	Nz1/1/1999r]   MSrW   rz   z1/1/1980z	12/1/2001)s1s2)r   r	   nprandomdefault_rngstandard_normallenr   r"   r#   index)r$   r@   r   rD   r   dfrN   s          r(   test_union_dataframe_indexz2TestDatetimeIndexSetOps.test_union_dataframe_index   s    *jt<<<BI))!,,<<SYYGGNN*k===BI))!,,<<SYYGGNNb++,,Zd;;;
bh,,,,,r*   c                     t          t          j        dddt          j                            }t	          ddd          }|                    ||	           |                    ||	           d S )
Nr      rz   dtypez2012-01-03 00:00:00r   r5   )startr   r7   r   )r   r   arangeint64r   r!   )r$   r   i1i2s       r(   test_union_with_DatetimeIndexz5TestDatetimeIndexSetOps.test_union_with_DatetimeIndex   sk    29QARX666773RcJJJ
$
$r*   c                 8   t          ddd                              d          }t          ddd                              d          }|                    |          }t          ddd                              d          }t          j        ||           d S )NrT   r<   r   r   r2   msus)r   r?   r!   r"   r#   )r$   idx1idx2r0   r.   s        r(   (test_union_same_timezone_different_unitsz@TestDatetimeIndexSetOps.test_union_same_timezone_different_units   s    ,e<<<DDTJJ,e<<<DDTJJD!!lA%@@@HHNN
fh/////r*   c                    d}t          dd|                              d          }t          dd|                              d          }|j        |j        k    sJ |j        |j        k    sJ |                    |          }t          dd|                              d          }t          j        ||           d S N	UTC+05:00rT   r<   r   r   r6   )r   r?   r2   r   r!   r"   r#   )r$   r2   r   r   r0   r.   s         r(   0test_union_same_nonzero_timezone_different_unitszHTestDatetimeIndexSetOps.test_union_same_nonzero_timezone_different_units   s     ,b999AA$GG,b999AA$GG w$'!!!!zTZ'''' D!!lA"===EEdKK
fh/////r*   c                 >   d}t          dd|                              d          }t          dd|                              d          }|                    |          }t          g d|                              d          }t	          j        ||           d S )	Nr   rT   r<   r   r   rS   )rT   rU   rS   
2000-01-04z
2000-01-05r=   )r   r?   r!   r   r"   r#   )r$   r2   r   idx3r0   r.   s         r(   8test_union_different_dates_same_timezone_different_unitszPTestDatetimeIndexSetOps.test_union_different_dates_same_timezone_different_units   s     ,b999AA$GG,b999AA$GG D!! RRR
 
 
 '$-- 	 	fh/////r*   c                    d}t          dd|                              d          }t          dd|                              d          }|j        |j        k    sJ |j        |j        k    sJ |                    |          }t          dd|          }t          j        ||           |                    |          }t          j        ||                    d                     d S r   )r   r?   r2   r   intersectionr"   r#   )r$   r2   r   r   r0   r.   result2s          r(   /test_intersection_same_timezone_different_unitszGTestDatetimeIndexSetOps.test_intersection_same_timezone_different_units   s     ,b999AA$GG,b999AA$GG w$'!!!!zTZ'''' ""4((lA"===
fh/// ##D))
gx'7'7'='=>>>>>r*   c                    d}t          dd|                              d          }t          dd|                              d          }|j        |j        k    sJ |j        |j        k    sJ |                    |          }t          ddg|	                              d          }t          j        ||           d S )
Nr   rT   r<   r   r   rU   r6   r   r=   )r   r?   r2   r   symmetric_differencer   r"   r#   )r$   r2   r   idx4r0   r.   s         r(   7test_symmetric_difference_same_timezone_different_unitszOTestDatetimeIndexSetOps.test_symmetric_difference_same_timezone_different_units   s     ,b999AA$GG,b999AA$GG w$'!!!!zTZ'''' **400 ,!="EEEMMdSS
fh/////r*   c                    t          dd          }|dd          |                              }t          j        |           fdt          j        t          t          fD             }|D ],}|                    |          }t          j        |           -t          g d          }|                    |          }t          g t                    }t          j        ||           d S )Nr   r   r   r   c                 0    g | ]} |j                   S  )r-   ).0klassr'   s     r(   
<listcomp>z>TestDatetimeIndexSetOps.test_intersection2.<locals>.<listcomp>  s%    LLL%v}%%LLLr*   )abcr   )
r   r   r"   r#   r   arrayr	   r>   r   object)	r$   r&   	intersectcasesr/   r0   thirdr.   r'   s	           @r(   test_intersection2z*TestDatetimeIndexSetOps.test_intersection2  s    <444qrr&&v..	
i000 MLLLBHfd3KLLL 	2 	2D''--F!&&1111ooo&&##E**6***
fh/////r*   )Nr   r   r   c                    t          ddddd          }t          ddddd          }t          ddddd          }t          dddd	d          }t          dddd d          }t          d
dddd          }t          g ddd          }	||f||f||	ffD ]A\  }
}|                    |
          }t          j        ||           |j        |j        k    sJ Bt          g d|d                              d          }t          g d|d                              d          }t          ddg|d                              d          }t          g d|d	                              d          }t          ddg|d                               d          }t          d
dd|dd          }t          g |d                              d          }	|	j        J ||f||f||	ffD ]Y\  }
}|                    |
|          }||                                }t          j        ||           |j        |j        k    sJ Zd S )N6/1/2000z	6/30/2000r5   rY   r6   )r7   namer8   z	5/15/2000z	6/20/2000rM   z7/1/2000z	7/31/2000M8[ns])r7   r   r   )z
2011-01-05
2011-01-04
2011-01-02z
2011-01-03)r2   r   )r   r   z
2011-02-02z
2011-02-03r   r   )r7   r2   r8   r   r   )r   r   r   r"   r#   r7   r?   rX   )r$   r2   r   baserD   rF   rH   rJ   rng4	expected4rL   r.   r0   s                r(   test_intersectionz)TestDatetimeIndexSetOps.test_intersection!  s   
 *k%dSSS +{5tTTTz;SuSWXXX	 +{7QUVVVz;StRVWWW	*k%dSSS!"3U(KKK	 999
 	0 	0MC
 &&s++F!&(333;(-///// DDDRW
 
 

'$-- 	 DDDRW
 
 

'$-- 	 "<(Re
 
 

'$-- 	 DDD
 
 
 '$--	 	
 "<(Rd
 
 

'$-- 	
 #"4e
 
 
 ""%888@@FF	~%%% 999
 		0 		0MC
 &&s&66F|#//11!&(333;(-/////		0 		0r*   r7   minBc                    |}t          dd||          }|dd                             |          }t          |          dk    sJ |j        |j        k    sJ |                    |dd                   }t          |          dk    sJ |j        |j        k    sJ |dk    }|d d                             |dd                    }t	          j        ||d d                    |r|j        |j        k    sJ |dd                              |d d                   }t	          j        ||d d                    |r|j        |j        k    sJ d S d S )Nr   z	6/15/2000r7   r2   r   r   r<   )r   r   r   r7   r"   r#   )r$   tz_aware_fixturer7   r2   rL   r0   
check_freqs          r(   test_intersection_emptyz/TestDatetimeIndexSetOps.test_intersection_emptye  s    [tCCCQqS&&s++6{{a{ch&&&&!!#ac(++6{{a{ch&&&& U]
RaR%%c"##h//
fc"1"g... 	+;#(**** RSS&&s2A2w//
fc"1"g... 	+;#(****	+ 	+**r*   c                     ddl m} t          ddd          }| |d          z   }|                    |          }t	          |          dk    sJ d S )	Nr   ro   r]   r^   12hr`   r   hours)rs   rp   r   r   r   )r$   rp   index_1index_2r0   s        r(   test_intersection_bug_1708z2TestDatetimeIndexSetOps.test_intersection_bug_1708  so    %%%%%%Z???JJQ////%%g..6{{ar*   c                 "   g d}t          ||          }t          ddd|          }t          ||          }t          ||          }t          ddd|          }t          |d d         |          }	t          ||          }
t          g |          }t          ||          }|||f|||	f|
||ffD ]V\  }}}|                    ||          }|#t          |          r|                                }t          j        ||           Wd S )	N)z1/2/2000z1/3/2000r4   r:   z1/5/2000r=   r9   r5   r   )r7   r   r2   r:   r<   )r   r   
differencer   rX   r"   r#   )r$   r2   r   	rng_datesr@   rA   rB   rD   rE   rF   rH   rI   rJ   rL   rM   r.   result_diffs                    r(   test_differencez'TestDatetimeIndexSetOps.test_difference  sL   PPP	Y2...JS!CCC!)333	Y2...JS!CCC!)BQB-B777	Y2...rb)))!)333	 69%69%69%%
 		9 		9 C
 ..55K|E

|#//11!+x8888		9 		9r*   c                    t          dddd          }t          dddd          }t          ddgdd 	          }|                    ||          }t          j        ||           t          j        d
||           t          dddd          }|                    ||          }t          ddgdd	          }t          j        ||           t          j        d
||           d S )N2016092020160925r5   r6   )r7   r8   2016092120160924r   r   r7   r7   20160922)r   r   r   r"   r#   assert_attr_equal)r$   r   r   rM   r.   idx_diffs         r(   test_difference_freqz,TestDatetimeIndexSetOps.test_difference_freq  s     :z$GGG:z$GGG *j!9PTUUU##E400
h111
VXx888 :z$GGG##E400 *j!9PSTTT
h111
VXx88888r*   c                     t          dt          ddd          d          }t          dt          ddd          d          }t          |                    ||                    dk    sJ d S )	NzQE-JANi        d   )r7   r   r   b   rz   )r   r   r   r   )r$   r   dti1dti2s       r(   test_datetimeindex_diffz/TestDatetimeIndexSetOps.test_datetimeindex_diff  so    xxb"/E/EsSSSxxb"/E/ErRRR4??4..//1444444r*   )Nr   r   c                 \   t          ddd|          }|d d                             |dd                   }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |d d                             |dd                   }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ |d d                             |dd                   }|j        |j        k    sJ |j        J |j        |j        k    sJ |d d                             |d	d
                   }|j        |j        k    sJ |j        dk    sJ |j        |j        k    sJ t          t          |d	d
                   d          }|d d                             |          }|j        J |j        |j        k    sJ |j        |j        k    sJ |d d                             |          }|j        J |j        |j        k    sJ |j        |j        k    sJ d S )Nr4   z1/1/2002rY   )r   r2   2   r      <      K   r5   rM   r   )	r   r!   r   r7   r2   r   freqstrr   r>   )r$   r2   rL   r0   nofreqs        r(   test_setops_preserve_freqz1TestDatetimeIndexSetOps.test_setops_preserve_freq  s]   ZeCCCSbSBsF,,{ch&&&&{ch&&&&yCF""""SbSBsF,,{ch&&&&{ch&&&&yCF""""SbSBsF,,{ch&&&&{"""yCF""""SbS&&s2b5z22{ch&&&&~$$$$yCF""""tC2J//g>>>SbS''{"""{ch&&&&yCF""""SbS&&v..{"""{ch&&&&yCF""""""r*   c                     t          g dd          }|d d d                             |dd d                   }|d d         }t          j        ||           d S )N)z
2018-12-31z
2019-03-31z
2019-06-30z
2019-09-30z
2019-12-31z
2020-03-31zQE-DECrW   rz   r   r   )r   r   r"   r#   )r$   r{   r0   r.   s       r(   &test_intersection_non_tick_no_fastpathz>TestDatetimeIndexSetOps.test_intersection_non_tick_no_fastpath  sy       

 

 

 SSqS&&s14a4y11rr7
fh/////r*   c                     t          dddd          }|dd         d d d         }|d	d
         d d d         }|j        |j        k    sJ |                    |          }|j        |j        k    sJ d S )Nz1/1/2011r   hutcr   r7   r2   r   Z   r   P   )r   r2   r   )r$   rL   rk   rl   r0   s        r(   test_dti_intersectionz-TestDatetimeIndexSetOps.test_dti_intersection  s    SsuEEE2b5z$$B$BrE
44R4 w#&    ""5))yDG######r*   setop)r!   r   r   c                    t          dddd          }t          dddd          } t          ||          |          }|                    d          }|                    d          } t          ||          |          }t          j        ||           |j        |j        k    sJ t          |          r6|d	         j        t          j        u sJ |d
         j        t          j        u sJ d S d S )Nz2012-11-15 00:00:00   r   z
US/Centralr   z2012-11-15 12:00:00r   r   r   r   )	r   getattr
tz_convertr"   r#   r2   r   r   r   )r$   r   rL   rD   r0   rk   rl   r.   s           r(   test_dti_setop_awarez,TestDatetimeIndexSetOps.test_dti_setop_aware  s     .UUU/VVV$e$$T**~~e$$&&'74''..
fh///yDG####v;; 	1!9<8<////":=HL0000	1 	100r*   c           	      n   t          t          d          t          j        g          }t          ddgd          }|                    |          }t          t          d          t          j        t          dd          t          dd          gt                    }t          j        ||           d S )Nz
2011-01-01z
2012-01-01z
2012-01-02r   r=   r   )	r   r
   pdNaTr!   r   r   r"   r#   )r$   rL   rD   r0   r.   s        r(   test_dti_union_mixedz,TestDatetimeIndexSetOps.test_dti_union_mixed  s    Y|44bf=>>lL9lKKK4,'',<888,<888	 
 
 
 	fh/////r*   N)'__name__
__module____qualname__r2   r)   pytestmarkparametrizer   r   r	   r>   r1   rQ   r[   re   rm   rt   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r*   r(   r   r   !   s       
 
 
B1 1 1 [URXvt$<==	0 	0 >=	0 [T2&&C C '&C<+ + +
+ 
+ 
++ + +.+ + +# # #" " "	- 	- 	-     0 0 00 0 0 0 0 0? ? ?(0 0 0"0 0 0" [GGG =0 =0 =0B [VeS\22+ + 32+6      [T2&&9 9 '&949 9 9$5 5 5
 [T#E#E#EFF #  # GF #D0 0 0"$ $ $ [W&W&W&WXX1 1 YX1$0 0 0 0 0r*   r   c                       e Zd Zd Zd Zd Zd Zd Zd Ze	j
        d             Zej                            dd	d
g          d             Zd
S )TestBusinessDatetimeIndexc                 x   t          t          t                    }|d d         }|dd         }|                    ||          }t	          |t
                    sJ |d d         }|dd          }|                    ||          }t	          |t                    sJ |d d         }|dd         }|                    ||          }t	          |t
                    sJ |+t          j        |                    ||          |           nVt          t          |          t          |          z             }t          j        |                    ||          |           t          t          t          t                                }|                    ||          }t	          |t
                    sJ d S )Nr   r   r   rW   )r   STARTENDr!   
isinstancer   r   r"   r#   r>   r   r   )r$   r   rL   rk   rl   	the_unionr.   s          r(   rQ   z$TestBusinessDatetimeIndex.test_union   s   %%%3B3xAbD	JJu4J00	)]33333 2A2wBCCJJu4J00	)U+++++ 2A2wAbD	JJu4J00	)]33333 <!%++d+">">	JJJJ$T%[[4::%=>>H!%++d+">">III )++666IIcI--	)]3333333r*   c                    t          ddt                                }|dd          }|d d         }|                    ||          }|t          j        ||           nQt          t          |dd                    t          |d d                   z             }t          j        ||           |dd          }|dd         }|                    ||          }|dd          }t          j        ||           d S )	Nr4   r   r`   r   r   r   rq   #   )r   r   r!   r"   r#   r   r>   )r$   r   rL   r@   rD   r  r.   s          r(   test_union_not_cacheablez2TestBusinessDatetimeIndex.test_union_not_cacheableD  s    Rfhh???233x3B3xJJt$J//	<!)S1111$T#bcc(^^d3ss8nn%DEEH!)X666233x2b5zJJt$J//	rss8
i22222r*   c                 2   t          ddt                      d          }|dd          }|d d         }|                    |          }|dd         }t          j        ||           t          |t                    sJ |j        |j        k    sJ |                    |          }t          j        ||           |d d                             |dd                    }t          g                               d          }t          j        ||           d S )Nr4   r   r6   )r   r7   r8   r   r   )	r   r   r   r"   r#   r  r   r7   r?   )r$   rL   r@   rD   the_intr.   s         r(   r   z+TestBusinessDatetimeIndex.test_intersectionU  s   RfhhTJJJ233x3B3x##D))r"u:
gx000'=11111|sx''''##D))
gx000 crc(''BCC11 $$,,T22
gx00000r*   c                     t          dd          }t          dd          }|                    |          }t          j        ||           |j        |j        k    sJ d S )N
11/30/2011
12/31/2011
12/10/2011
12/20/2011r   r   r"   r#   r7   r$   r   r   r0   s       r(   test_intersection_bugz/TestBusinessDatetimeIndex.test_intersection_bugg  s_    l33l33""
fa((({af$$$$$$r*   c                     t          d          t          d          g}t          |d          }|                    |          }t          j        ||           d S )Nr   z
2020-02-01r   r   )r
   r   r   r"   r#   )r$   r-   rY   ress       r(   test_intersection_listz0TestBusinessDatetimeIndex.test_intersection_listo  s\     L))9\+B+BCF---v&&
c3'''''r*   c                    t          j        d          }|                    d          }t          ddd          }t          ddd          }t          ddd          }t          ddd          }t	          |||t                                }t	          |||t                                }	|                    |	|           d S )	Npytzr     r   r<   r   r   endr2   r7   r   )r
  importorskipr   r   r   r   r!   )
r$   r   r%  r2   early_start	early_end
late_startlate_endearly_drlate_drs
             r(   test_month_range_union_tz_pytzz8TestBusinessDatetimeIndex.test_month_range_union_tz_pytzw  s    "6**]]<((tQ**T1a((	dAq))
D!Q''KY2HJJWWW:8TTTwT*****r*   c                 Z   ddl m}  |d          }t          ddd          }t          ddd          }t          ddd          }t          ddd          }t          |||t	                                }t          |||t	                                }	|                    |	|	           d S )
Nr   )dateutil_gettzr   r&  r   r<   r   r'  r   )pandas._libs.tslibs.timezonesr2  r   r   r   r!   )
r$   r   r2  r2   r*  r+  r,  r-  r.  r/  s
             r(   "test_month_range_union_tz_dateutilz<TestBusinessDatetimeIndex.test_month_range_union_tz_dateutil  s    @@@@@@^L))tQ**T1a((	dAq))
D!Q''KY2HJJWWW:8TTTwT*****r*   r   FNc                 &   t          t          d          t          d          t          d          g          }|                    ||          }t          t          d          t          d          g          }t          j        ||           d S )Nz
2019-12-13z
2019-12-12r   )r   r
   r   r"   r#   )r$   r   r   r0   r.   s        r(   test_intersection_duplicatesz6TestBusinessDatetimeIndex.test_intersection_duplicates  s     ,'','',''
 
 ""4d"33)L119\3J3JKLL
fh/////r*   )r  r  r	  rQ   r  r   r   r#  r0  tdskip_if_windowsr4  r
  r  r  r6  r   r*   r(   r  r    s        "4 "4 "4H3 3 3"1 1 1$% % %( ( (+ + + + + +  [VeT]330 0 430 0 0r*   r  c                       e Zd Zd Zd Zej                            dddd e e	d                    g          d	             Z
dS )
TestCustomDatetimeIndexc                    t          t          t          d          }|d d         }|dd         }|                    ||          }t	          |t
                    sJ |d d         }|dd          }|                    ||          }t	          |t                    sJ |d d         }|dd         }|                    ||          }t	          |t
                    sJ |*t          j        |                    ||          |           t          t          t          t                                }|                    ||          }t	          |t
                    sJ d S )NCrW   r   r   r   )r   r  r  r!   r  r   r   r"   r#   r   r   )r$   r   rL   rk   rl   r  s         r(   rQ   z"TestCustomDatetimeIndex.test_union  s\   %3///3B3xAbD	JJu4J00	)]33333 2A2wBCCJJud++	)U+++++ 2A2wAbD	JJu4J00	)]33333 <!%++d+">">	JJJ )++666IIcI--	)]3333333r*   c                     t          ddd          }t          ddd          }|                    |          }t          j        ||           |j        |j        k    sJ d S )Nr  r  r<  rW   r  r  r  r  s       r(   r   z-TestCustomDatetimeIndex.test_intersection_bug  si    l===l===""
fa((({af$$$$$$r*   r2   Nr   zEurope/Berlinr   r   c                    t          ddd|          }t          ddd|          }|                    |          }t          ddd|          }t          j        ||           t          dddd	          }t          d
ddd	          }|                    |          }t          dddd	          }t          j        ||           d S )Nz
2020-03-27r   r5   r   z
2020-03-30rz   z
2021-10-28r<   zEurope/Londonz
2021-10-30r^   r   )r   r   r"   r#   r!   )r$   r2   r   r   r0   r.   index1index2s           r(    test_intersection_dst_transitionz8TestCustomDatetimeIndex.test_intersection_dst_transition  s    
 ,CCC,CCC""4((lACBGGG
fh/// L!#/RRRL!#/RRRf%%lACOTTT
fh/////r*   )r  r  r	  rQ   r   r
  r  r  r   r   rA  r   r*   r(   r:  r:    s        4 4 4B% % % [tUOXXiib6I6I6I-J-JK 0 0 0 0 0r*   r:  c                      t          ddgddd          } t          dgddd          }|                     |          }t          g dddd          }t          j        ||           d S )	N
2024-05-11
2024-05-12zdatetime64[us]Dater5   )r   r   r7   
2024-05-13)rC  rD  rF  )r   r!   r"   r#   l1l2r0   r.   s       r(   test_union_non_nano_rangelikerJ    s    		|$,<6PS
 
 
B 
~-=FQT	U	U	UBXXb\\F222	  H &(+++++r*   c                      t          ddd          } t          ddd          }|                     |          }t          ddgdd	          }t          j        ||           d S )
Nz
2024-01-01z
2024-01-03s)r8   z
2024-01-02z
2024-01-04zdatetime64[s]r5   r   )r   r   r   r"   r#   rG  s       r(   $test_intersection_non_nano_rangelikerM    sx    	L,S	9	9	9B	L,S	9	9	9B__R  F	|$  H
 &(+++++r*   c                      t          dddd          } t          dddd          }|                     |          }t          dddd          }t          j        ||           d S )Nz
2025-10-25z
2025-10-26r5   zEurope/Helsinkir   z
2025-10-28r    )r?  r@  r0   r.   s       r(   test_union_across_dst_boundaryrO     ss     lARSSSFlARSSSF\\&!!F,3CTUUUH&(+++++r*   )"r   r   r   numpyr   r
  pandas.util._test_decoratorsutil_test_decoratorsr7  rs   r  r   r   r   r	   r
   r   r   pandas._testing_testingr"   pandas.tseries.offsetsr   r   r   r  r  r   r  r:  rJ  rM  rO  r   r*   r(   <module>rW     s                  ) ) ) ) ) ) ) ) )                                     XdAq!!88D!Q#7#7
s{0 {0 {0 {0 {0 {0 {0 {0|D0 D0 D0 D0 D0 D0 D0 D0N:0 :0 :0 :0 :0 :0 :0 :0z, , , 
, 
, 
,, , , , ,r*   