
    .i<              	          d dl mZ d dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
mZmZmZmZmZmZmZ d dlmZ d dlmc mZ  G d d      Zd Zd Zd Zej:                  j=                  d	d
dgddg edd      gdz  g      d        Zy)    )permutationsN)
IndexIntervalIntervalIndex	Timedelta	Timestamp
date_rangeinterval_rangeisnanotnatimedelta_rangec                      e Zd Z ej                  ddgddg      ZdidZdidZd Ze	j                  j                  dg d	ej                   d
dddddddej                  g
 eddd       eddd       ej                   g d      g      d        Zd Zd Zd Zd Ze	j                  j                  d eddd       ed d!d"d#$       e ed%      d&d'       e ed(      d)d      g      d*        Zd+ Zd, Zd- Ze	j                  j                  d ed.d/0       ed.d/d12       ed3d/0      gd4 5      d6        Ze	j                  j                  d ed7d80       ed3d8d9:      g      d;        Ze	j                  j                  d<d= e gd>d?g5      d@        Z!e	j                  j                  d<ejD                  dA dB gg dC5      dD        Z#e	j                  j                  dE e$ ed.d/0       ed.d/d12       ed3d/0      gd      dF 5      e	j                  j                  d<ejD                  dG dH dI e gg dJ5      dK               Z%dL Z&dM Z'dN Z(dO Z)dP Z*dQ Z+dR Z,e	j                  j                  dSdTd1g      dU        Z-dV Z.dW Z/e	j                  j                  dXddej`                  f ed7       ed(      ejb                  f ed3       ed(      ejb                  fg      dY        Z2e	j                  j                  dZ e3 e4d       e4dd[             e3 ed%d0       ed%d0             e3 ed3d0       ed(d0            g      d\        Z5e	j                  j                  dZg  e  e3 e4d       e4dd[                  ej`                  g  e  e3 ed%d0       ed%d0                  ej`                  g  e  e3 ed3d0       ed(d0                  ej`                  g      e	j                  j                  d]d^d_g      d`               Z6da Z7e	j                  j                  dbdTdcg      dd        Z8e	j                  j                  deg df      dg        Z9dh Z:yT)jTestIntervalIndexr         rightc                 B    t        j                  t        d      |      S )N   closed)r   from_breaksrange)selfr   s     i/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/indexes/interval/test_interval.pycreate_indexzTestIntervalIndex.create_index   s    ((r6BB    c           
      "   ddgdgdz  z   }t        j                  t        j                  |t        j                  d      t        j
                        t        j                  |t        j                  dd      t        j
                        |      S )NTF   
   r   r   r   )r   from_arraysnpwherearangenan)r   r   masks      r   create_index_with_nanz'TestIntervalIndex.create_index_with_nan   sg    e}vz)((HHT299R="&&1HHT299Q+RVV4
 	
r   c                 f   | j                  |      }t        |      dk(  sJ |j                  dk(  sJ |j                  dk(  sJ t	        j
                  |j                  t        t        j                  dt        j                                     t	        j
                  |j                  t        t        j                  ddt        j                                     t	        j
                  |j                  t        t        j                  ddt        j                                     |j                  |k(  sJ t        t!        d      t!        dd            D cg c]  \  }}t#        |||       }}}t        j$                  |t&              }t	        j(                  t        j*                  |      |       | j-                  |      }t        |      dk(  sJ |j                  dk(  sJ |j                  dk(  sJ t        d	t        j.                  d
dddddddg
      }|dz   }|dz   }	t	        j
                  |j                  |       t	        j
                  |j                  |       t	        j
                  |j                  |	       |j                  |k(  sJ t        ||      D cg c]-  \  }}t1        |      rt#        |||      nt        j.                  / }}}t        j$                  |t&              }t	        j(                  t        j*                  |      |       y c c}}w c c}}w )Nr   r   )r   dtyper   r         ?g      %@r   r                  r   	   )r   lensizeshapetmassert_index_equalleftr   r!   r#   int64r   midfloat64r   zipr   r   arrayobjectassert_numpy_array_equalasarrayr&   r$   r   )
r   r   indexr6   r   ivsexpectedexpected_leftexpected_rightexpected_mids
             r   test_propertiesz!TestIntervalIndex.test_properties&   s   !!!05zRzzR{{e###
ejj%		"BHH0M*NO
ekk51b1Q+RS
eiiryyd"**/U)VW||v%%%  #59eArl;
e T5&)
 
 88Cv.
##BJJu$5x@ **&*95zRzzR{{e###q"&&!Q1aAqAB&*$s*
ejj-8
ekk>:
eii6||v%%%  #=.A
e .34[HT5&)bffD
 
 88Cv.
##BJJu$5x@7
,
s   L'-2L-breaks)r   r   r   r-      5      i  i  iz  i iir*         ?gffffff@e      z
2017-01-01z
2017-01-04ns)units)1ns2ms3s4min5h6Dc                 B   t        j                  ||      }|j                  }t        d |D              }t	        j
                  ||       |j                  dt        j                        }|j                  }t        d |D              }t	        j
                  ||       y )Nr   c              3   4   K   | ]  }|j                     y wN)length.0ivs     r   	<genexpr>z0TestIntervalIndex.test_length.<locals>.<genexpr>]   s     3r3s   r   c              3   N   K   | ]  }t        |      r|j                  n|  y wrX   )r   rY   rZ   s     r   r]   z0TestIntervalIndex.test_length.<locals>.<genexpr>c   s     HBeBiR7Hs   #%)	r   r   rY   r   r4   r5   insertr!   r$   )r   r   rF   r?   resultrA   s         r   test_lengthzTestIntervalIndex.test_lengthO   s~     ))&@3U33
fh/ Q'H%HH
fh/r   c                    | j                  |      }|j                  du sJ |j                         }t        j                  t        |      t              }t        j                  ||       |j                         }t        j                  t        |      t              }t        j                  ||       | j                  |      }|j                  du sJ |j                         }t        j                  ddgdgt        |      dz
  z  z         }t        j                  ||       |j                         }t        j                  ddgdgt        |      dz
  z  z         }t        j                  ||       y )Nr   Fr(   Tr   )r   hasnansr   r!   zerosr1   boolr4   r=   r   onesr&   r;   r   r   r?   r`   rA   s        r   test_with_nansz TestIntervalIndex.test_with_nansf   s,   !!!0}}%%%88CJd3
##FH5773u:T2
##FH5**&*9}}$$$88UDMUGs5zA~,FFG
##FH588T5MTFc%j1n,EEF
##FH5r   c                     | j                  |      }|j                         }|j                  |      sJ |j                  d      }|j                  |      sJ |j                  |j                  usJ y )Nr   T)deep)r   copyequalsr6   )r   r   rA   r`   s       r   	test_copyzTestIntervalIndex.test_copy}   sj    $$F$3}}X&&&D)}}X&&&{{(--///r   c                    | j                  |      }t        |d      }t        j                  |j                  j
                  |j                  j
                  d       t        j                  |j                  j
                  |j                  j
                  d       t        t        j                  |      d      }t        j                  |j                  j
                  |j                  j
                  d       t        j                  |j                  j
                  |j                  j
                  d       y )Nr   F)rk   same)
check_samerk   )	r   r   r4   r=   r6   valuesr   r!   r;   )r   r   r?   r`   s       r   test_ensure_copied_dataz)TestIntervalIndex.test_ensure_copied_data   s     !!!0u51
##JJv{{11f	
 	##KK 3 3	

 rxxU;
##JJv{{11f	
 	##KK 3 3	
r   c                     t        j                  ddt         j                        }t        j                  ||      }| j                  |      j                  d      }t        j                  ||       y )Nr   r   r(   r   r   )	r!   r#   r7   r   r   r   deleter4   r5   )r   r   rF   rA   r`   s        r   test_deletezTestIntervalIndex.test_delete   sX    1b1 ,,VFC""&"188;
fh/r   datar   neither)periodsr   g333333?r         @both)rx   freqr   20170101   r6   z1 dayr.   c                    |d   }t        |g      }|j                  |      }|j                  d|      }t        j                  ||       |j                  |      }|j                  t        |      |      }t        j                  ||       |d d j                  |      j                  |dd        }|j                  d|      }t        j                  ||       |j                  dd      }|j                  t              j                  dd      }t        j                  ||       d}t        j                  t        |      5  |j                  j                  dd       d d d        d}h d|j                  hz
  D ]  }d	| d
|j                   d}t        |j                  |j                  |      }	|j                  d|	      }|j                  t              j                  d|	      }t        j                  ||       t        j                  t         |      5  |j                  j                  d|	       d d d         t        t"        j$                  g|j                        }
t"        j$                  d t&        j(                  fD ]P  }|d d j                  |
      j                  |dd        }|j                  d|      }t        j                  ||       R |j                  j*                  j,                  dvr|j                  t              j                  dt&        j.                        }d}t        j                  t        |      5  |j                  j                  dt&        j.                         d d d        |j                  dt&        j.                        }t        j                  ||       y # 1 sw Y   [xY w# 1 sw Y   TxY w# 1 sw Y   ZxY w)Nr   r+   r   fooz=can only insert Interval objects and NA into an IntervalArraymatchz+'value.closed' is 'left', expected 'right'.>   rz   r6   r   rw   z'value.closed' is 'z', expected 'z'.r   )mM)r   appendr_   r4   r5   r1   astyper<   pytestraises	TypeError_datar   r   r6   r   
ValueErrorr!   r$   pdNAr)   kindNaT)r   rv   itemidx_itemrA   r`   resmsgr   bad_itemna_idxnas               r   test_insertzTestIntervalIndex.test_insert   s    Aw $( ??4(Q%
fh/ ;;x(SY-
fh/ 8??8,33DH=Q%
fh/ kk!U#;;v&--a7
c8,M]]9C0 	(JJa'	( <:dkk]J 	/F'x}T[[MLC		4::fEH++a*C{{6*11!X>H!!#x0z5 /

!!!X./ /	/ x<664' 	4BBQxv.55d12h?H[[B'F!!&(3	4
 99??z1{{6*11!RVV<HQCy4 -

!!!RVV,- Q'
fh/=	( 	(/ /- -s$   N;O+O;OO	Oc                 P   t        j                  ddg|      }|j                  du sJ t        j                  g d|      }|j                  du sJ t        j                  ddg|      }|j                  du sJ t        j                  t        j                  t        j                  fg|      }|j                  du sJ t        j                  t        j                  t        j                  ft        j                  t        j                  fg|      }|j                  du sJ y	)
zW
        Interval specific tests for is_unique in addition to base class tests
        r   r   )r*   rJ   r   Tr   r   r   r+   r   r+   )r   )r   FN)r   from_tuples	is_uniquer!   r$   r   r   idxs      r   test_is_unique_intervalz)TestIntervalIndex.test_is_unique_interval   s    
 ''(<VL}}$$$ ''(@P}}$$$ '''(:6J}}$$$ ''"&&"&&)9(:6J}}$$$ ''ffbff/0
 }}%%%r   c                    t        j                  g d|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        j                  g d|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        j                  g d|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        j                  g d|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        j                  g d|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        j                  g d	|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        j                  g d
|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        j                  g d|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        j                  ddg|      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ t        g |      }|j                  du sJ |j                  du sJ |j                  du sJ |j
                  du sJ y )N)r   r   r,   r-   r   TF)r   r   r   )r   r   r   )r   r   r*   ry   r   )r   r   r   )r   r   r   r   )r   r   r   r   )r   r   is_monotonic_increasing!_is_strictly_monotonic_increasingis_monotonic_decreasing!_is_strictly_monotonic_decreasingr   s      r   test_monotonicz TestIntervalIndex.test_monotonic   s   ''(@P**d22244<<<**e33344=== ''(@P**e33344===**d22244<<< ''(@P**e33344===**e33344=== ''(DVT**d22244<<<**e33344=== ''(DVT**e33344===**d22244<<< ''(DVT**e33344===**e33344=== ''(@P**d22244<<<**e33344=== ''(@P**e33344===**d22244<<< ''(8H**d22244===**d22244=== Bv.**d22244<<<**d22244<<<r   c                     t        t        j                  t        j                  g      }|j                  rJ |j                  rJ |j                  rJ |j
                  rJ |j                  rJ y rX   )r   r!   r$   r   r   r   r   )r   r?   s     r   test_is_monotonic_with_nansz-TestIntervalIndex.test_is_monotonic_with_nansF  sg    rvvrvv./0000::::0000::::00000r   20180101r,   )rx   z
US/Eastern)rx   tzz0 daysc                 ,    t        | j                        S rX   strr)   xs    r   <lambda>zTestIntervalIndex.<lambda>W      c!''l r   )idsc                    t        j                  |      }|j                  |      }t        j                  |j                        }t	        j
                  ||       t        |d   |d         }|j                  |      }t        |d   j                  |d   j                        }||k(  sJ |j                  |      }t        |j                        }t	        j
                  ||       |j                  |d         }|d   j                  }||k(  sJ |j                  t        |            }t        |j                        }t	        j
                  ||       y Nr   r   )
r   r   _maybe_convert_i8asi8r4   r5   r   _valuer   list)r   rF   r?   r`   rA   intervals         r   test_maybe_convert_i8z'TestIntervalIndex.test_maybe_convert_i8P  s5    ))&1 ((/ ,,V[[9
fh/ F1Ivay1((2F1I,,fQi.>.>?!!! ((0%
fh/ ((3!9##!!! ((f6%
fh/r   z
2018-01-01r-   us)rx   rN   c                    t        j                  |      }|j                  t        j                  gdz        j                  d      }t        t        j                  gdz  t        j                        }|j                  |      }t        j                  ||       |j                  d|d         }|j                  dt        |d   j                              }|j                  |      }t        j                  ||       y )Nr+   r   r(   r   )r   r   _constructorr   r   as_unitr   r!   r$   r9   r   r4   r5   r_   floatr   )r   rF   r?   
to_convertrA   r`   s         r   test_maybe_convert_i8_natz+TestIntervalIndex.test_maybe_convert_i8_natw  s     ))&1(("&&A6>>tD
"&&ARZZ8((4
fh/&&q&)4
??1eF1I,<,<&=>((4
fh/r   make_keyc                     | S rX    rF   s    r   r   zTestIntervalIndex.<lambda>  s     r   lambdar   c                 f   t        j                  d|      }t        j                  |      } ||      }|j	                  |      }|j
                  j                  }t         j                  t         j                  t         j                  d|   }t        ||      }	t        j                  ||	       y )Nr-   r(   )iuf)r!   r#   r   r   r   r)   r   r7   uint64r9   r   r4   r5   )
r   r   any_real_numpy_dtyperF   r?   keyr`   r   expected_dtyperA   s
             r   test_maybe_convert_i8_numericz/TestIntervalIndex.test_maybe_convert_i8_numeric  s     1$89))&1v((-||  !xxbiibjjI$ON3
fh/r   c                 &    t        | d   | d         S r   r   r   s    r   r   zTestIntervalIndex.<lambda>      8F1Ivay9 r   c                     | d   S Nr   r   r   s    r   r   zTestIntervalIndex.<lambda>  
    6!9 r   )r   r   scalarc                     t        j                  d|      }t        j                  |      } ||      }|j	                  |      }||u sJ y )Nr-   r(   )r!   r#   r   r   r   )r   r   r   rF   r?   r   r`   s          r   'test_maybe_convert_i8_numeric_identicalz9TestIntervalIndex.test_maybe_convert_i8_numeric_identical  sM     1$89))&1v ((-}}r   zbreaks1, breaks2c                 ,    t        | j                        S rX   r   r   s    r   r   zTestIntervalIndex.<lambda>  r   r   c                 &    t        | d   | d         S r   r   r   s    r   r   zTestIntervalIndex.<lambda>  r   r   c                     | S rX   r   r   s    r   r   zTestIntervalIndex.<lambda>  s    6 r   c                     | d   S r   r   r   s    r   r   zTestIntervalIndex.<lambda>  r   r   )r   r   r   r   r   c                 "   t        j                  |      } ||      }d|j                   d|j                   }t        j                  |      }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nz)Cannot index an IntervalIndex of subtype z with values of dtype r   )	r   r   r)   reescaper   r   r   r   )r   breaks1breaks2r   r?   r   r   s          r   test_maybe_convert_i8_errorsz.TestIntervalIndex.test_maybe_convert_i8_errors  s    2 ))'2w 8 G&}}o/ 	 iin]]:S1 	)##C(	) 	) 	)s   *BBc                 j   t        j                  ddgddg      }t        j                  ddgd      }|j	                  d      }t        j                  ||       |j	                  d      }t        j                  ||       t        j                  ddgd      }|j	                  d	      }t        j                  ||       |j	                  d      }t        j                  ||       t        j                  t        d
      5  |j	                  t        dd             d d d        y # 1 sw Y   y xY w)Nr   r   r   Fre   r(   r+   Tr*   z contains not implemented for twor   )r   r    r!   r;   containsr4   r=   r   r   NotImplementedErrorr   )r   r   rA   actuals       r   test_contains_methodz&TestIntervalIndex.test_contains_method  s    %%q!fq!f588UEN&9A
##FH5A
##FH588T5M8C
##FH5A
##FH5 ]]'I
 	' JJx1~&	' 	' 	's   D))D2c                    t        j                  ddg|      }t        j                  ddt        j                  g|      }|j	                         }t        j                  ||       t        j                  ddt        j                  gddt        j                  g|      }|j	                         }t        j                  ||       y )	N)g              ?)r   g       @r   r   r   r   r   r   )r   r   r!   r$   dropnar4   r5   r    )r   r   rA   iir`   s        r   test_dropnazTestIntervalIndex.test_dropna  s     ,,j*-EfU&&'?O
fh/&&1bff~1bff~fU
fh/r   c                     t        j                  ddg|      }g d}|j                  |      }t        j                  g dd      }t        j                  ||       d|vsJ y )	Nr   r   r   )r*   rJ   ry   )r   r   r   intpr(   rJ   )r   r   get_indexerr!   r;   r4   r=   )r   r   r?   targetr   rA   s         r   test_non_contiguousz%TestIntervalIndex.test_non_contiguous  s\    ))66*:6J ""6*88Jf5
##FH5%r   c                    | j                  |      }t        j                  dgdgt        |      dz
  z  z         }|j	                  |d d       }t        j                  ||       |j	                  |d   g      }t        j                  ||       t        j                  t        j                  dd      |      }t        j                  dgt        |      dz
  z  dgz         }|j	                  |      }t        j                  ||       |j	                  |j                               }t        j                  ||       dD ]  }| j                  |      }t        j                  ||k(  t        |            }|j	                  |      }t        j                  ||       |j	                  |j                               }t        j                  ||        y )	Nr   TFr   r   r   r   )r   r6   rz   rw   )r   r!   r;   r1   isinr4   r=   r   r   r#   tolistrepeat)r   r   r?   rA   r`   otherother_closeds          r   	test_isinzTestIntervalIndex.test_isin  s   !!!088TFeWE
Q%??@E"1I&
##FH5U1XJ'
##FH5))"))B*;FK88TFc%j1n5?@E"
##FH5ELLN+
##FH5@ 	:L%%\%:Eyy<!7UDHZZ&F''9ZZ/F''9	:r   c                 H   t        dd      | j                  k  }t        j                  ddg      }t	        j
                  ||       t        dd      | j                  k  }t        j                  ddg      }t	        j
                  ||       | j                  t        dd      kD  }t	        j
                  ||       | j                  | j                  k(  }t        j                  ddg      }t	        j
                  ||       | j                  | j                  k  }t	        j
                  ||       | j                  | j                  k\  }t	        j
                  ||       | j                  | j                  k  }t        j                  ddg      }t	        j
                  ||       | j                  | j                  kD  }t	        j
                  ||       | j                  t        j                  g dd      k(  }t	        j
                  ||       | j                  | j                  j                  k(  }t	        j
                  |t        j                  ddg             | j                  j                  | j                  k(  }t	        j
                  |t        j                  ddg             | j                  | j                  j                  k  }t	        j
                  |t        j                  ddg             | j                  | j                  j                  k7  }t	        j
                  |t        j                  ddg             | j                  | j                  j                  kD  }t	        j
                  |t        j                  ddg             | j                  j                  | j                  kD  }t	        j
                  |t        j                  ddg             | j                  dk(  }t	        j
                  |t        j                  ddg             | j                  | j                  j                  k(  }t	        j
                  |t        j                  ddg             d	j                  d
dg      }t        j                  t        |      5  | j                  dkD   d d d        t        j                  t        |      5  | j                  dk   d d d        t        j                  t        |      5  | j                  t        j                  d      kD   d d d        d}t        j                  t        |      5  | j                  t        j                  d      kD   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   y xY w)Nr   r   FTr*   rJ   r   r   r   r6   |z:not supported between instances of 'int' and '.*.Interval'z>Invalid comparison between dtype=interval\[int64, right\] and r   r   zLengths must match to comparer+   )r   r?   r!   r;   r4   r=   r   r   rq   r6   joinr   r   r   r#   r   )r   r   rA   r   s       r   test_comparisonz!TestIntervalIndex.test_comparison  s   !Q$**,88UDM*
##FH5#s#djj088UDM*
##FH5hsC00
##FH5tzz)88T4L)
##FH5tzz)
##FH5tzz)
##FH5djj(88UEN+
##FH5djj(
##FH5}88FKK
##FH5tzz000
##FBHHdD\,BC""djj0
##FBHHdD\,BCtzz000
##FBHHdD\,BCtzz000
##FBHHeU^,DEdjj///
##FBHHeU^,DE""TZZ/
##FBHHeU^,DE q
##FBHHeU^,DEtzz.
##FBHHeU^,DEhhLQ
 ]]9C0 	JJN	]]9C0 	JJ!O	]]9C0 	&JJ1%	& .]]:S1 	&JJ1%	& 	&	 		 		& 	&	& 	&s0   U4V  #V#V4U= V	VV!c           	      N   t        t        j                  t        dd|      t        dd|      g      }t	        j
                  t        j                  ddgt        j                  ddg|      }|j                  |      sJ d}t        j                  t        |      5  t	        j
                  t        j                  ddgt        j                  g d      |       d d d        t        j                  t        |      t        j                  g d             y # 1 sw Y   >xY w)	Nr   r   r   r   zMmissing values must be missing in the same location both left and right sidesr   r   )TFF)r   r!   r$   r   r   r    rl   r   r   r   r;   r4   r=   r   )r   r   r   idx2r   s        r   test_missing_valuesz%TestIntervalIndex.test_missing_valuesZ  s    VVXa62HQ&4QR
 (("&&!Q"&&!QPVWzz$ 	 ]]:S1 	%%A 3F	
 	##DIrxx8L/MN	 	s   ?DD$c                    | j                  |      }|j                         }t        j                  ||       |j                  d      }t        j                  ||d d d          t	        t        dd      t        j                  t        dd      g      }|j                         }t	        t        dd      t        dd      t        j                  g      }t        j                  ||       |j                  dd	      }t	        t        j                  t        dd      t        dd      g      }t        j                  ||       y )
Nr   F)	ascendingr   r   r   r   first)r  na_position)r   sort_valuesr4   r5   r   r   r!   r$   rg   s        r   test_sort_valuesz"TestIntervalIndex.test_sort_valuesl  s   !!!0""$
fe,""U"3
feDbDk2 x1~rvvx1~FG""$ (1a.(1a."&&!IJ
fh/""U"H "&&(1a.(1a.!IJ
fh/r   r   Nc                 P   t        d|      }t        |d      }t        j                  |      }t        d|      }t        |d      }t	        j
                  |j                  |       t        d|      |vsJ t        d|      |vsJ t        d|      |vsJ t        t        d|      t        d	|            }t        t        d
|      t        d|            }||v sJ ||vsJ |j                  t        d|            j                         rJ |j                  t        d|            j                         sJ |j                  t        d|            j                         sJ t        d|      }t        |dd      }|j                  |      }	t        j                  g dd      }t	        j                  |	|       t        d|      }t        |dd      }|j                  |      }	t        j                  g dd      }t	        j                  |	|       y )Nz
2000-01-01r   r   )startrx   z2000-01-01T12:00r0   z2000-01-01T12z
2000-01-02z
2000-01-03z
1999-12-31z1999-12-31T12:00r/   12h)r  rx   r{   )r   r   r   r   r   r   r   r   r(   z2000-01-08T18:006h)r/   r/   r   r   r   r   r   )r   r	   r   r   r4   r5   r8   r   r   anyr   r!   r;   r=   )
r   r   r  datesr?   rA   iv_trueiv_falser   r   s
             r   test_datetimezTestIntervalIndex.test_datetime  s   ,2.3))%0 ,4E15
eii2 "-U:::R0==="-U:::lr*Ilr,J
 lr*Ilr,J
 %u$$$ >>)LR"@AEEGGG~~iB?@DDFFF~~i<=AACCC ,4%?""6*8836B
##FH5,4%>""6*882&A
##FH5r   c                    t        j                  ddgddg|      }t        j                  ddgddg|      }|j                  |      }t        j                  g dg d|      }t        j                  ||       |j                  ||g      }t        j                  g dg d	|      }t        j                  ||       h d
|hz
  D ]|  }t        j                  ddgddg|      }|j                  |      }|j                  t              j                  |j                  t                    }t        j                  ||       ~ y )Nr   r   r   r   r+   )r   r   r   r   )r   r   r   r+   )r   r   r   r   r   r   )r   r   r   r   r   r+   >   rz   r6   r   rw   )r   r    r   r4   r5   r   r<   )r   r   index1index2r`   rA   r   index_other_closeds           r   test_appendzTestIntervalIndex.test_append  s&   **Aq6Aq6&I**Aq6Aq6&Iv& ,,\<PVW
fh//0 ,, 26
 	fh/@F8K 	4L!.!:!:AA|" ]]#56F}}V,334F4M4Mf4UVH!!&(3	4r   c                    g d}t        j                  ||      }|j                  du sJ t        j                  |d d d   |      }|j                  du sJ g d}t        j                  ||      }|j                  du sJ t        j                  |d d d   |      }|j                  du sJ g d}t        j                  ||      }|j                  du sJ t        j                  |d d d   |      }|j                  du sJ |dk(  r1t        j                  t	        d	      |      }|j                  du sJ y t        j                  t	        d	      |      }|j                  du sJ y )
N)r   r   r   r.   r/   r   Tr   )r   r   r   r  F)r   r   r  r   rz   r,   )r   r   is_non_overlapping_monotonicr   r   )r   r   tplsr   s       r   !test_is_non_overlapping_monotonicz3TestIntervalIndex.test_is_non_overlapping_monotonic  so   /''V<//4777''TrT
6B//4777 0''V<//5888''TrT
6B//5888 0''V<//5888''TrT
6B//5888 V++E!HVDC33u<<<++E!HVDC33t;;;r   zstart, shift, na_valuec                    dD cg c]  }|||z  z   ||dz   |z  z   f }}t        j                  ||      }|j                  du sJ ||fg|||f}t        j                  ||      }|j                  du sJ t        d      D cg c]  }|||z  z   ||dz   |z  z   f }}t        j                  ||      }|j                  du sJ ||fg|||f}t        j                  ||      }|j                  du sJ t        d      D cg c]  }|||z  z   ||dz   |z  z   f }}t        j                  ||      }|j                  }|dk(  }	||	u sJ ||fg|||f}t        j                  ||      }|j                  }||	u sJ g d	}
g d
}t        j                  |
|d      }|j                  }|du sJ y c c}w c c}w c c}w )N)r   r   r,   r   r   Fr+   r   Trz   )r   rG            #   (   -   r'  2   7   <   A   F   K   P   U   )rG   r"  r#  r$  r%  r&  r'  r'  r(  r)  r*  r+  r,  r-  r.  r/  Z   r   )r   r   is_overlappingr   r    )r   r  shiftna_valuer   ntuplesr?   r`   rA   abs               r   test_is_overlappingz%TestIntervalIndex.test_is_overlapping  s=    IRR151u9$eq1uo&=>RR))&@##u,,, X&FF(H1EF))&@##u,,, INaQ151u9$eq1uo&=>QQ))&@##t+++ X&FF(H1EF))&@##t+++ INaQ151u9$eq1uo&=>QQ))&@%%V#!!! X&FF(H1EF))&@%%!!! QP))!Qw?%%K S R Rs   F:F?	Gr5  r   c                     t        |      }t        j                  |      }|j                         }t	        t        j                  |            }t        j                  ||       y rX   )	r   r   r   	to_tuplesr   comasarray_tuplesafer4   r5   )r   r5  r   r`   rA   s        r   test_to_tuplesz TestIntervalIndex.test_to_tuples  sM      f''/..v67
fh/r   na_tupleTFc                 `   t        j                  |      }|j                  |      }t        t	        j
                  |d d             }|d d }t        j                  ||       |d   }|r7t        |t              sJ t        |      dk(  sJ t        d |D              sJ y t        |      sJ y )N)r>  r   r   c              3   2   K   | ]  }t        |        y wrX   )r   )r[   r   s     r   r]   z6TestIntervalIndex.test_to_tuples_na.<locals>.<genexpr>S  s     21tAw2s   )r   r   r:  r   r;  r<  r4   r5   
isinstancetupler1   allr   )r   r5  r>  r   r`   expected_notnaresult_notna	result_nas           r   test_to_tuples_naz#TestIntervalIndex.test_to_tuples_na+  s    6 ''/1 s44VCR[ABcr{
lN; 2J	i///y>Q&&&2	2222	?"?r   c                     t        j                  ddd      }t        j                  ddd      }t        j                  ||      j                  }d}||k(  sJ y )Nr   r,   i8r(   r   r-   @   )r!   r#   r   r    nbytes)r   r6   r   r`   rA   s        r   test_nbyteszTestIntervalIndex.test_nbytesW  sQ    yyAT*		!Qd+**47>>!!!r   namer   c                     t        dd||      }|j                  |      }t        dd||      }t        j                  ||       y )Nr   r-   )r   rM  )r
   
set_closedr4   r5   )r   rM  r   r   r?   r`   rA   s          r   test_set_closedz!TestIntervalIndex.test_set_closed`  sD     q!F>!!,/!!Q|$G
fh/r   
bad_closed)r   r   LEFTTFc                     t        dd      }d| }t        j                  t        |      5  |j	                  |       d d d        y # 1 sw Y   y xY w)Nr   r-   zinvalid option for 'closed': r   )r
   r   r   r   rO  )r   rQ  r?   r   s       r   test_set_closed_errorsz(TestIntervalIndex.test_set_closed_errorsh  sM     q!$-j\:]]:S1 	)Z(	) 	) 	)s   AAc                 t    t        t        d      t        d            }t        |g      }|j                  rJ y )Nz2017-01-01 00:00:00z2018-01-01 00:00:00)r   r   r   _is_all_dates)r   	year_2017year_2017_indexs      r   test_is_all_datesz#TestIntervalIndex.test_is_all_datesp  s=    +,i8M.N
	 (4"00000r   )r   );__name__
__module____qualname__r   r    r?   r   r&   rE   r   markparametrizer!   infr	   r   to_timedeltara   rh   rm   rr   ru   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  r   r$   r   r8  r:   r   r=  rG  rL  rP  rT  rY  r   r   r   r   r      sl   %M%%q!fq!f5EC
'AR [[@ffWdCac3RVVD|\=|\<BOODE	
	0	06.0
,0 [[1b;3FC9Z0"VL9W-qI		
7070r&4E=N1 [[z1-z1>Ha0	

 #  00< [[|Q/Had;	
00 [[	%v  

0

0 [[%%9$	

 4   [[:q1:q\B!4
 	
 #   [[%%9!$	
 E  
)
.)'.	0 :6>&@O$0( [[TD,#78'6 9'6R4,<B [[ 266N|$i&8"&&Ax )G"4bff=	
**X [[b	5B<(:r2:r2 "54
	
00 [[9d3uRy%2,/09"&&9":r:":r: '"='< 	
0 [[Z$7# 812#&" [[VdE]30 40 [[\+KL) M)1r   r   c                      t        j                  g dd      } t        j                  g dd      }t        j                  t        d      5  t        j                  | |       d d d        y # 1 sw Y   y xY w)Nr   r7   r(   )r   r   r+   r   zmatching signednessr   )r!   r;   r   r   r   r   r    )r6   r   s     r   -test_from_arrays_mismatched_signedness_raisesrb  y  sV    88IW-DHHYh/E	y(=	> /!!$./ / /s   A..A7c                  Z    t        j                  ddgddg      } t        |       }d|vsJ y )Nr   r   r   r   )r   r    dir)r?   r`   s     r   test_dirre    s3    %%q!fq!f5EZFr   c                 T   t        t        dd      t        dd      g      }|j                   | |            }t        j                  ddg|j
                        }t        j                  ||       |j                  j                   | |            }t        j                  ||       y )Nr   r   r   r(   )	r   r   searchsortedr!   r;   r)   r4   r=   r   )listlike_boxrq   r`   rA   s       r   ,test_searchsorted_different_argument_classesri    s    HQNHQN;<F  f!56FxxAfll3H1\\&&|F';<F1r   argr   r   r6  r7  z
2020-01-01zEurope/Londonr  c                     t        t        dd      t        dd      g      }d}t        j                  t        |      5  |j                  |        d d d        y # 1 sw Y   y xY w)Nr   r   r   zL'<' not supported between instances of 'pandas._libs.interval.Interval' and r   )r   r   r   r   r   rg  )rj  rq   r   s      r   "test_searchsorted_invalid_argumentrl    sU     HQNHQN;<F
XC	y	, !C ! ! !s   AA#) 	itertoolsr   r   numpyr!   r   pandasr   r   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr4   pandas.core.commoncorecommonr;  r   rb  re  ri  r]  r^  rl  r   r   r   <module>ru     s    " 	          ^1 ^1B/2 	QFS#J<O!L MPQ QR!!r   