
    Owg              	       >   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  ej2                  ddg      d        Z G d 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_rangefoo)paramsc                     | j                   S N)param)requests    b/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexes/interval/test_interval.pynamer      s    ==    c                   P	   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       e	j                   eddd      e	j                  j!                  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d0d12       ed0d1d34       ed5d12      gd6 7      d8        Z e	j                  j                  d ed9d:2       ed5d:2      g      d;        Z!e	j                  j                  d<d= e"gd>d?g7      d@        Z#e	j                  j                  d<ejH                  dA dB gg dC7      dD        Z%e	j                  j                  dE e& ed0d12       ed0d1d34       ed5d12      gd      dF 7      e	j                  j                  d<ejH                  dG dH dI e"gg dJ7      dK               Z'dL Z(dM Z)dN Z*dO Z+dP Z,dQ Z-dR Z.e	j                  j                  dSdTd3g      dU        Z/dV Z0dW Z1e	j                  j                  dXddejd                  f ed9       ed*      ejf                  f ed5       ed*      ejf                  fg      dY        Z4e	j                  j                  dZ e" e5 e6d       e6dd[                   e" e5 ed'd2       ed'd2                   e" e5 ed5d2       ed*d2                  g      d\        Z7e	j                  j                  dZ e" e5 e6d       e6dd[                  ejd                  gz    e" e5 ed'd2       ed'd2                  ejd                  gz    e" e5 ed5d2       ed*d2                  ejd                  gz   g      e	j                  j                  d]d^d_g      d`               Z8da Z9e	j                  j                  dbg dc      dd        Z:e	j                  j                  deg df      dg        Z;dh Z<yT)jTestIntervalIndexr         rightc                 B    t        j                  t        d      |      S )N   closed)r   from_breaksrange)selfr   s     r   create_indexzTestIntervalIndex.create_index    s    ((r6BBr   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   indexr=   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   r4      5      i  i  iz  i iir1         ?gffffff@e      z
2017-01-01z
2017-01-04s)unitzmismatched result unit)reason)marks)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r   )length.0ivs     r   	<genexpr>z0TestIntervalIndex.test_length.<locals>.<genexpr>e   s     3r3s   r   c              3   N   K   | ]  }t        |      r|j                  n|  y wr   )r   r`   ra   s     r   rd   z0TestIntervalIndex.test_length.<locals>.<genexpr>k   s     HBeBiR7Hs   #%)	r   r    r`   r   r;   r<   insertr(   r+   )r"   r   rM   rF   resultrH   s         r   test_lengthzTestIntervalIndex.test_lengthT   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(   zerosr8   boolr;   rD   r   onesr-   rB   r"   r   rF   rg   rH   s        r   test_with_nansz TestIntervalIndex.test_with_nansn   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equalsr=   )r"   r   rH   rg   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)rr   same)
check_samerr   )	r#   r   r;   rD   r=   valuesr   r(   rB   )r"   r   rF   rg   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*   r>   r   r    r#   deleter;   r<   )r"   r   rM   rH   rg   s        r   test_deletezTestIntervalIndex.test_delete   sX    1b1 ,,VFC""&"188;
fh/r   datar&   neither)periodsr   g333333?r%         @both)r   freqr   20170101   r=   z1 dayr5   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   r2   r   r   z=can only insert Interval objects and NA into an IntervalArraymatchz+'value.closed' is 'left', expected 'right'.>   r   r=   r   r~   z'value.closed' is 'z', expected 'z'.r   )mM)r   appendrf   r;   r<   r8   astyperC   pytestraises	TypeError_datar   r   r=   r   
ValueErrorr(   r+   pdNAr0   kindNaT)r"   r}   itemidx_itemrH   rg   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   )r1   rQ   r   Tr   r   r   r2   r   r2   )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   r3   r4   r   TF)r   r   r   )r   r   r   )r   r   r1   r   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 r   )r   r(   r+   r   r   r   r   )r"   rF   s     r   test_is_monotonic_with_nansz-TestIntervalIndex.test_is_monotonic_with_nansN  sg    rvvrvv./0000::::0000::::00000r   20180101r3   )r   z
US/Eastern)r   tzz0 daysc                 ,    t        | j                        S r   strr0   xs    r   <lambda>zTestIntervalIndex.<lambda>_      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asi8r;   r<   r   _valuer   list)r"   rM   rF   rg   rH   intervals         r   test_maybe_convert_i8z'TestIntervalIndex.test_maybe_convert_i8X  s5    ))&1 ((/ ,,V[[9
fh/ F1Ivay1((2F1I,,fQi.>.>?!!! ((0%
fh/ ((3!9##!!! ((f6%
fh/r   z
2018-01-01r4   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 )Nr2   nsr/   r   )r   r    _constructorr   r   as_unitr   r(   r+   r@   r   r;   r<   rf   floatr   )r"   rM   rF   
to_convertrH   rg   s         r   test_maybe_convert_i8_natz+TestIntervalIndex.test_maybe_convert_i8_nat  s     ))&1(("&&A6>>tD
"&&ARZZ8((4
fh/&&q&)4
??1eF1I,<,<&=>((4
fh/r   make_keyc                     | S r    rM   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 )Nr4   r/   )iuf)r(   r*   r   r    r   r0   r   r>   uint64r@   r   r;   r<   )
r"   r   any_real_numpy_dtyperM   rF   keyrg   r   expected_dtyperH   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 )Nr4   r/   )r(   r*   r   r    r   )r"   r   r   rM   rF   r   rg   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 r   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 r   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    r0   reescaper   r   r   r   )r"   breaks1breaks2r   rF   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   Frl   r/   r2   Tr1   z contains not implemented for twor   )r   r'   r(   rB   containsr;   rD   r   r   NotImplementedErrorr   )r"   r   rH   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+   dropnar;   r<   r'   )r"   r   rH   iirg   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   )r1   rQ   r   )r   r   r   intpr/   rQ   )r   r   get_indexerr(   rB   r;   rD   )r"   r   rF   targetr   rH   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   r=   r   r~   )r#   r(   rB   r8   isinr;   rD   r   r    r*   tolistrepeat)r"   r   rF   rH   rg   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   FTr1   rQ   r   r   r   r=   |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 comparer2   )r   rF   r(   rB   r;   rD   r   r    rx   r=   joinr   r   r   r*   r   )r"   r   rH   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'   rs   r   r   r   rB   r;   rD   r   )r"   r   r   idx2r   s        r   test_missing_valuesz%TestIntervalIndex.test_missing_values_  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_valuesr;   r<   r   r   r(   r+   rn   s        r   test_sort_valuesz"TestIntervalIndex.test_sort_valuesq  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&   )startr   z2000-01-01T12:00r7   z2000-01-01T12z
2000-01-02z
2000-01-03z
1999-12-31z1999-12-31T12:00r6   12h)r  r   r   )r   r   r   r   r   r   r   r   r/   z2000-01-08T18:006h)r6   r6   r%   r%   r%   r%   r   )r   r	   r   r    r;   r<   r?   r   r   anyr   r(   rB   rD   )
r"   r   r  datesrF   rH   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   r2   )r   r   r   r   )r   r   r   r2   )r   r   r   r   r   r   )r   r   r   r   r   r2   >   r   r=   r   r~   )r   r'   r   r;   r<   r   rC   )r"   r   index1index2rg   rH   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   r5   r6   r   Tr   )r   r   r   r#  F)r   r   r#  r   r   r3   )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|z   ||fgz   }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|z   ||fgz   }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|z   ||fgz   }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   r3   r   r   Fr2   r   Tr   )r&   rN            #   (   -   r-  2   7   <   A   F   K   P   U   )rN   r(  r)  r*  r+  r,  r-  r-  r.  r/  r0  r1  r2  r3  r4  r5  Z   r   )r   r   is_overlappingr!   r'   )r"   r  shiftna_valuer   ntuplesrF   rg   rH   abs               r   test_is_overlappingz%TestIntervalIndex.test_is_overlapping  sF    IRR151u9$eq1uo&=>RR))&@##u,,, X&'&0Xx4H3II))&@##u,,, INaQ151u9$eq1uo&=>QQ))&@##t+++ X&'&0Xx4H3II))&@##t+++ INaQ151u9$eq1uo&=>QQ))&@%%V#!!! X&'&0Xx4H3II))&@%%!!! QP))!Qw?%%K S R Rs   G
GGr;  r   c                     t        j                  |      }|j                         }t        t	        j
                  |            }t        j                  ||       y r   )r   r   	to_tuplesr   comasarray_tuplesafer;   r<   )r"   r;  r   rg   rH   s        r   test_to_tuplesz TestIntervalIndex.test_to_tuples  sD    ( ''/..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)rD  r   r   c              3   2   K   | ]  }t        |        y wr   )r   )rb   r   s     r   rd   z6TestIntervalIndex.test_to_tuples_na.<locals>.<genexpr>W  s     21tAw2s   )r   r   r@  r   rA  rB  r;   r<   
isinstancetupler8   allr   )r"   r;  rD  r   rg   expected_notnaresult_notna	result_nas           r   test_to_tuples_naz#TestIntervalIndex.test_to_tuples_na3  s    . ''/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   r3   i8r/   r   r4   @   )r(   r*   r   r'   nbytes)r"   r=   r   rg   rH   s        r   test_nbyteszTestIntervalIndex.test_nbytes[  sQ    yyAT*		!Qd+**47>>!!!r   
new_closed)r=   r   r   r~   c                     t        dd||      }|j                  |      }t        dd||      }t        j                  ||       y )Nr   r4   )r   r   )r
   
set_closedr;   r<   )r"   r   r   rS  rF   rg   rH   s          r   test_set_closedz!TestIntervalIndex.test_set_closedd  sD     q!F>!!*-!!QzE
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   r4   zinvalid option for 'closed': r   )r
   r   r   r   rU  )r"   rW  rF   r   s       r   test_set_closed_errorsz(TestIntervalIndex.test_set_closed_errorsl  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_datest  s=    +,i8M.N
	 (4"00000r   )r   )=__name__
__module____qualname__r   r'   rF   r#   r-   rL   r   markparametrizer(   infr	   r   xfailr   to_timedeltarh   ro   rt   ry   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+   r   r>  rA   r!   rC  rM  rR  rV  rZ  r_  r   r   r   r   r      s   %M%%q!fq!f5EC
'AR [[@ffWdCac3RVVD|\2FLL<C@kk''/G'H 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< [[	L!	,ohPQ.RS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 [[U2Ya-.z26z26 #Hb9#GR8	
$0%$0 [[U2Ya-."&&9z26z26 vvh #Hb9#GR8 vvh	
( [[Z$7# 8)*#&" [[\+OP0 Q0 [[\+KL) M)1r   r   c                  Z    t        j                  ddgddg      } t        |       }d|vsJ y )Nr   r   r   r   )r   r'   dir)rF   rg   s     r   test_dirrj  }  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(   rB   r0   r;   rD   r   )listlike_boxrx   rg   rH   s       r   ,test_searchsorted_different_argument_classesrn    s    HQNHQN;<F  f!56FxxAfll3H1\\&&|F';<F1r   argr   r   r<  r=  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   rl  )ro  rx   r   s      r   "test_searchsorted_invalid_argumentrq    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_testingr;   pandas.core.commoncorecommonrA  fixturer   r   rj  rn  rc  rd  rq  r   r   r   <module>r{     s    " 	           e}% &]1 ]1@2 	QFS#J<O!L MPQ QR!!r   