
    bMh              	       R   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j        ddg          d             Z G d d          Zd	 Zd
 Zej                            dddgddg edd          gdz  g          d             Z dS )    )permutationsN)
IndexIntervalIntervalIndex	Timedelta	Timestamp
date_rangeinterval_rangeisnanotnatimedelta_rangefoo)paramsc                     | j         S N)param)requests    k/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexes/interval/test_interval.pynamer      s
    =    c                   *
   e Zd Z ej        ddgddg          ZdidZdidZd Ze	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
                            d                     ej        g d          g          d             Zd Zd Zd Zd Ze	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
                            d ed0d12           ed0d1d34           ed5d12          gd6 7          d8             Z e	j
                            d ed9d:2           ed5d:2          g          d;             Z!e	j
                            d<d= e"gd>d?g7          d@             Z#e	j
                            d<ej$        dA dB gg dC7          dD             Z%e	j
                            dE e& ed0d12           ed0d1d34           ed5d12          gd          dF 7          e	j
                            d<ej$        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
                            dSdTd3g          dU             Z/dV Z0dW Z1e	j
                            dXddej2        f ed9           ed*          ej3        f ed5           ed*          ej3        fg          dY             Z4e	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
                            dZ e" e5 e6d           e6dd[                              ej2        gz    e" e5 ed'd2           ed'd2                              ej2        gz    e" e5 ed5d2           ed*d2                              ej2        gz   g          e	j
                            d]d^d_g          d`                         Z8da Z9e	j
                            dbg dc          dd             Z:e	j
                            deg df          dg             Z;dh Z<dTS )jTestIntervalIndexr         rightc                 H    t          j        t          d          |          S )N   closed)r   from_breaksrange)selfr   s     r   create_indexzTestIntervalIndex.create_index    s    (r6BB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#   sm    e}vz)(HT29R=="&11HT29Q++RV44
 
 
 	
r   c                    |                                }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 fd	t          t!          d          t!          dd                    D             }t          j        |t$                    }t	          j        t          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 fdt          ||          D             }t          j        |t$                    }t	          j        t          j        |          |           d S )Nr   r&   )r&   dtyper   r         ?g      %@c                 8    g | ]\  }}t          ||          S  r   .0leftr   r   s      r   
<listcomp>z5TestIntervalIndex.test_properties.<locals>.<listcomp>7   s9     
 
 
e T5&))
 
 
r   r   r                  r%   	   c                 n    g | ]1\  }}t          |          rt          ||          nt          j        2S r3   )r   r   r(   r+   r5   s      r   r8   z5TestIntervalIndex.test_properties.<locals>.<listcomp>M   sK     
 
 
e .34[[DHT5&)))bf
 
 
r   )r#   lensizeshapetmassert_index_equalr7   r   r(   r*   int64r   midfloat64r   zipr!   arrayobjectassert_numpy_array_equalasarrayr-   r+   )r"   r   indexivsexpectedexpected_leftexpected_rightexpected_mids    `      r   test_propertiesz!TestIntervalIndex.test_properties+   s   !!!005zzRzR{e####
ej%	"BH0M0M0M*N*NOOO
ek51b1Q1Q1Q+R+RSSS
eiryd"*/U/U/U)V)VWWW|v%%%%
 
 
 
"599eArll;;
 
 
 8Cv...
#BJu$5$5x@@@ **&*995zzRzR{e####q"&!Q1aAqABB&*$s*
ej-888
ek>:::
ei666|v%%%%
 
 
 
"=.AA
 
 
 8Cv...
#BJu$5$5x@@@@@r   breaks)r   r   r   r;      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                 F   t          j        ||          }|j        }t          d |D                       }t	          j        ||           |                    dt          j                  }|j        }t          d |D                       }t	          j        ||           d S )Nr   c              3   $   K   | ]}|j         V  d S r   )lengthr6   ivs     r   	<genexpr>z0TestIntervalIndex.test_length.<locals>.<genexpr>e   s$      33r333333r   r   c              3   F   K   | ]}t          |          r|j        n|V  d S r   )r   rg   rh   s     r   rj   z0TestIntervalIndex.test_length.<locals>.<genexpr>k   s3      HHBeBii7RHHHHHHr   )	r   r    rg   r   rC   rD   insertr(   r+   )r"   r   rT   rM   resultrO   s         r   test_lengthzTestIntervalIndex.test_lengthT   s     )&@@@33U33333
fh/// Q''HH%HHHHH
fh/////r   c                 &   |                      |          }|j        du sJ |                                }t          j        t          |          t                    }t          j        ||           |	                                }t          j
        t          |          t                    }t          j        ||           |                     |          }|j        du sJ |                                }t          j        ddgdgt          |          dz
  z  z             }t          j        ||           |	                                }t          j        ddgdgt          |          dz
  z  z             }t          j        ||           d S )Nr   Fr/   Tr   )r#   hasnansr   r(   zerosr@   boolrC   rK   r   onesr-   rI   r"   r   rM   rm   rO   s        r   test_with_nansz TestIntervalIndex.test_with_nansn   s`   !!!00}%%%%8CJJd333
#FH55573u::T222
#FH555**&*99}$$$$8UDMUGs5zzA~,FFGG
#FH5558T5MTFc%jj1n,EEFF
#FH55555r   c                    |                      |          }|                                }|                    |          sJ |                    d          }|                    |          sJ |j        |j        usJ d S )Nr   T)deep)r#   copyequalsr7   )r"   r   rO   rm   s       r   	test_copyzTestIntervalIndex.test_copy   s    $$F$33}}X&&&&&D))}}X&&&&&{(-//////r   c                    |                      |          }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           d S )Nr   F)rx   same)
check_samerx   )	r#   r   rC   rK   r7   valuesr   r(   rI   )r"   r   rM   rm   s       r   test_ensure_copied_dataz)TestIntervalIndex.test_ensure_copied_data   s    !!!00u5111
#Jv{1f	
 	
 	
 	
 	#K 3	
 	
 	
 	

 rxU;;;
#Jv{1f	
 	
 	
 	
 	#K 3	
 	
 	
 	
 	
 	
r   c                     t          j        ddt           j                  }t          j        ||          }|                     |                              d          }t          j        ||           d S )Nr   r   r/   r   r   )	r(   r*   rE   r   r    r#   deleterC   rD   )r"   r   rT   rO   rm   s        r   test_deletezTestIntervalIndex.test_delete   sl    1b111 ,VFCCC""&"1188;;
fh/////r   datar&   neither)periodsr   g333333?r%         @both)r   freqr   20170101   r7   z1 dayr<   c                 "   |d         }t          |g          }|                    |          }|                    d|          }t          j        ||           |                    |          }|                    t          |          |          }t          j        ||           |d d                             |                              |dd                    }|                    d|          }t          j        ||           |                    dd          }|                    t                                        dd          }t          j        ||           d}t          j	        t          |          5  |j                            dd           d d d            n# 1 swxY w Y   d}h d|j        hz
  D ]}d	| d
|j         d}t          |j        |j        |          }	|                    d|	          }|                    t                                        d|	          }t          j        ||           t          j	        t           |          5  |j                            d|	           d d d            n# 1 swxY w Y   t          t"          j        g|j                  }
t"          j        d t&          j        fD ]e}|d d                             |
                              |dd                    }|                    d|          }t          j        ||           f|j        j        j        dvr|                    t                                        dt&          j                  }d}t          j	        t          |          5  |j                            dt&          j                   d d d            n# 1 swxY w Y   |                    dt&          j                  }t          j        ||           d S )Nr   r9   r   r   z=can only insert Interval objects and NA into an IntervalArraymatchz+'value.closed' is 'left', expected 'right'.>   r   r7   r   r   z'value.closed' is 'z', expected 'z'.r   )mM)r   appendrl   rC   rD   r@   astyperJ   pytestraises	TypeError_datar   r   r7   r   
ValueErrorr(   r+   pdNAr0   kindNaT)r"   r   itemidx_itemrO   rm   resmsgr   bad_itemna_idxnas               r   test_insertzTestIntervalIndex.test_insert   sV    Aw $(( ??4((Q%%
fh/// ;;x((SYY--
fh/// 8??8,,33DH==Q%%
fh/// kk!U##;;v&&--a77
c8,,,M]9C000 	( 	(Ja'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( <:::dk]J 	/ 	/FLLLT[LLLC	4:fEEEH++a**C{{6**11!X>>H!#x000z555 / /
!!!X.../ / / / / / / / / / / / / / / x<<<64' 	4 	4BBQBxv..55d122h??H[[B''F!&(33339?z11{{6**11!RV<<HQCy444 - -
!!!RV,,,- - - - - - - - - - - - - - - Q''
fh/////s6   ?F''F+.F+!J		J	J	&OOOc                    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 d	S )
zW
        Interval specific tests for is_unique in addition to base class tests
        r   r   )r1   rX   r   Tr   r   r   r9   r   r9   )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LL}$$$$ '(@(@(@PPP}$$$$ ''(:6JJJ}$$$$ '"&"&)9(:6JJJ}$$$$ 'fbf/0
 
 
 }%%%%%%r   c                 H   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 d S )N)r   r   r:   r;   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  sF   '(@(@(@PPP*d22224<<<<*e33334==== '(@(@(@PPP*e33334====*d22224<<<< '(@(@(@PPP*e33334====*e33334==== '(D(D(DVTTT*d22224<<<<*e33334==== '(D(D(DVTTT*e33334====*d22224<<<< '(D(D(DVTTT*e33334====*e33334==== '(@(@(@PPP*d22224<<<<*e33334==== '(@(@(@PPP*e33334====*d22224<<<< '(8HHH*d22224====*d22224==== Bv...*d22224<<<<*d22224<<<<<<r   c                     t          t          j        t          j        g          }|j        rJ |j        rJ |j        rJ |j        rJ |j        rJ d S r   )r   r(   r+   r   r   r   r   )r"   rM   s     r   test_is_monotonic_with_nansz-TestIntervalIndex.test_is_monotonic_with_nansN  si    rvrv.//0000::::0000::::000000r   20180101r:   )r   z
US/Eastern)r   tzz0 daysc                 *    t          | j                  S r   strr0   xs    r   <lambda>zTestIntervalIndex.<lambda>_      c!'ll r   )idsc                    t          j        |          }|                    |          }t          j        |j                  }t	          j        ||           t          |d         |d                   }|                    |          }t          |d         j        |d         j                  }||k    sJ |                    |          }t          |j                  }t	          j        ||           |                    |d                   }|d         j        }||k    sJ |                    t          |                    }t          |j                  }t	          j        ||           d S Nr   r   )
r   r    _maybe_convert_i8asi8rC   rD   r   _valuer   list)r"   rT   rM   rm   rO   intervals         r   test_maybe_convert_i8z'TestIntervalIndex.test_maybe_convert_i8X  sX    )&11 ((// ,V[99
fh/// F1Ivay11((22F1I,fQi.>??!!!! ((00%%
fh/// ((33!9#!!!! ((f66%%
fh/////r   z
2018-01-01r;   c                 (   t          j        |          }|                    t          j        gdz                                d          }t          t          j        gdz  t          j	                  }|
                    |          }t          j        ||           |                    d|d                   }|                    dt          |d         j                            }|
                    |          }t          j        ||           d S )Nr9   nsr/   r   )r   r    _constructorr   r   as_unitr   r(   r+   rG   r   rC   rD   rl   floatr   )r"   rT   rM   
to_convertrO   rm   s         r   test_maybe_convert_i8_natz+TestIntervalIndex.test_maybe_convert_i8_nat  s     )&11(("&A66>>tDD
"&ARZ888((44
fh///&&q&)44
??1eF1I,<&=&=>>((44
fh/////r   make_keyc                     | S r   r3   rT   s    r   r   zTestIntervalIndex.<lambda>  s     r   lambdar   c                 R   t          j        d|          }t          j        |          } ||          }|                    |          }|j        j        }t           j        t           j        t           j	        d|         }t          ||          }	t          j        ||	           d S )Nr;   r/   )iuf)r(   r*   r   r    r   r0   r   rE   uint64rG   r   rC   rD   )
r"   r   any_real_numpy_dtyperT   rM   keyrm   r   expected_dtyperO   s
             r   test_maybe_convert_i8_numericz/TestIntervalIndex.test_maybe_convert_i8_numeric  s     1$8999)&11hv((--| !xbibjII$ON333
fh/////r   c                 :    t          | d         | d                   S r   r4   r   s    r   r   zTestIntervalIndex.<lambda>      8F1Ivay99 r   c                     | d         S Nr   r3   r   s    r   r   zTestIntervalIndex.<lambda>  
    6!9 r   )r   r   scalarc                     t          j        d|          }t          j        |          } ||          }|                    |          }||u sJ d S )Nr;   r/   )r(   r*   r   r    r   )r"   r   r   rT   rM   r   rm   s          r   'test_maybe_convert_i8_numeric_identicalz9TestIntervalIndex.test_maybe_convert_i8_numeric_identical  s^     1$8999)&11hv ((--}}}}}}r   zbreaks1, breaks2c                 *    t          | j                  S r   r   r   s    r   r   zTestIntervalIndex.<lambda>  r   r   c                 :    t          | d         | d                   S r   r4   r   s    r   r   zTestIntervalIndex.<lambda>  r   r   c                     | S r   r3   r   s    r   r   zTestIntervalIndex.<lambda>  s    6 r   c                     | d         S r   r3   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  |                    |           d d d            d S # 1 swxY w Y   d S )Nz)Cannot index an IntervalIndex of subtype z with values of dtype r   )	r   r    r0   reescaper   r   r   r   )r"   breaks1breaks2r   rM   r   r   s          r   test_maybe_convert_i8_errorsz.TestIntervalIndex.test_maybe_convert_i8_errors  s    2 )'22hw/ / /&}/ / 	 inn]:S111 	) 	)##C(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   !BBBc                    t          j        ddgddg          }t          j        ddgd          }|                    d          }t          j        ||           |                    d          }t          j        ||           t          j        ddgd          }|                    d	          }t          j        ||           |                    d          }t          j        ||           t          j        t          d
          5  |                    t          dd                     d d d            d S # 1 swxY w Y   d S )Nr   r   r   Frr   r/   r9   Tr1   z contains not implemented for twor   )r   r'   r(   rI   containsrC   rK   r   r   NotImplementedErrorr   )r"   r   rO   actuals       r   test_contains_methodz&TestIntervalIndex.test_contains_method  ss   %q!fq!f558UEN&999A
#FH555A
#FH5558T5M888C
#FH555A
#FH555 ]'I
 
 
 	' 	' JJx1~~&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   $D>>EEc                    t          j        ddg|          }t          j        ddt          j        g|          }|                                }t          j        ||           t          j        ddt          j        gddt          j        g|          }|                                }t          j        ||           d S )	N)g              ?)r   g       @r   r   r   r   r   r   )r   r   r(   r+   dropnarC   rD   r'   )r"   r   rO   iirm   s        r   test_dropnazTestIntervalIndex.test_dropna  s     ,j*-EfUUU&'?OOO
fh///&1bf~1bf~fUUU
fh/////r   c                     t          j        ddg|          }g d}|                    |          }t          j        g dd          }t          j        ||           d|vsJ d S )	Nr   r   r   )r1   rX   r   )r   r   r   intpr/   rX   )r   r   get_indexerr(   rI   rC   rK   )r"   r   rM   targetr   rO   s         r   test_non_contiguousz%TestIntervalIndex.test_non_contiguous  sz    )66*:6JJJ ""6**8JJJf555
#FH555%r   c                    |                      |          }t          j        dgdgt          |          dz
  z  z             }|                    |d d                   }t          j        ||           |                    |d         g          }t          j        ||           t          j        t          j	        dd          |          }t          j        dgt          |          dz
  z  dgz             }|                    |          }t          j        ||           |                    |
                                          }t          j        ||           dD ]}|                      |          }t          j        ||k    t          |                    }|                    |          }t          j        ||           |                    |
                                          }t          j        ||           d S )	Nr   TFr   r   r   r&   )r   r7   r   r   )r#   r(   rI   r@   isinrC   rK   r   r    r*   tolistrepeat)r"   r   rM   rO   rm   otherother_closeds          r   	test_isinzTestIntervalIndex.test_isin  s   !!!008TFeWE

Q%??@@E"1"I&&
#FH555U1XJ''
#FH555)")B*;*;FKKK8TFc%jj1n5?@@E""
#FH555ELLNN++
#FH555@ 	: 	:L%%\%::Ey<!7UDDHZZ&&F'999ZZ//F'9999	: 	:r   c                 	   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          k    }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        k    }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        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        dk    }t	          j        |t          j        ddg                     | j        | j        j	        k    }t	          j        |t          j        ddg                     d	
                    d
dg          }t          j        t          |          5  | j        dk     d d d            n# 1 swxY w Y   t          j        t          |          5  | j        dk     d d d            n# 1 swxY w Y   t          j        t          |          5  | j        t          j        d          k     d d d            n# 1 swxY w Y   d}t          j        t          |          5  | j        t          j        d          k     d d d            d S # 1 swxY w Y   d S )Nr   r   FTr1   rX   r   r   r   r7   |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 comparer9   )r   rM   r(   rI   rC   rK   r   r    r~   r7   joinr   r   r   r*   r   )r"   r   rO   r   s       r   test_comparisonz!TestIntervalIndex.test_comparison  sE   !Q$*,8UDM**
#FH555#s##dj08UDM**
#FH555hsC000
#FH555tz)8T4L))
#FH555tz)
#FH555tz)
#FH555dj(8UEN++
#FH555dj(
#FH555}8FKKK
#FH555tz00
#FBHdD\,B,BCCC"dj0
#FBHdD\,B,BCCCtz00
#FBHdD\,B,BCCCtz00
#FBHeU^,D,DEEEdj//
#FBHeU^,D,DEEE"TZ/
#FBHeU^,D,DEEE q
#FBHeU^,D,DEEEtz.
#FBHeU^,D,DEEEhhLQ
 
 ]9C000 	 	JNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	J!OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	& 	&J1%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& .]:S111 	& 	&J1%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&sH   )PPP'P??QQ%RRR7S""S&)S&c           	      T   t          t          j        t          dd|          t          dd|          g          }t	          j        t          j        ddgt          j        ddg|          }|                    |          sJ d}t          j        t          |          5  t	          j        t          j        ddgt          j
        g d          |           d d d            n# 1 swxY w Y   t          j        t          |          t          j
        g d                     d S )	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'   ry   r   r   r   rI   rC   rK   r   )r"   r   r   idx2r   s        r   test_missing_valuesz%TestIntervalIndex.test_missing_values_  s\   VXa6222HQ&4Q4Q4QR
 
 ("&!Q"&!QPVWWWzz$ 	 ]:S111 	 	%A 3 3F   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	#DIIrx8L8L8L/M/MNNNNNs   "9C''C+.C+c                    |                      |          }|                                }t          j        ||           |                    d          }t          j        ||d d d                    t	          t          dd          t          j        t          dd          g          }|                                }t	          t          dd          t          dd          t          j        g          }t          j        ||           |                    dd	          }t	          t          j        t          dd          t          dd          g          }t          j        ||           d S )
Nr   F)	ascendingr   r   r   r   first)r  na_position)r#   sort_valuesrC   rD   r   r   r(   r+   rt   s        r   test_sort_valuesz"TestIntervalIndex.test_sort_valuesq  s8   !!!00""$$
fe,,,""U"33
feDDbDk222 x1~~rvx1~~FGG""$$ (1a..(1a.."&!IJJ
fh///""U"HH "&(1a..(1a..!IJJ
fh/////r   r   Nc                    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 |                    t          d|                    	                                rJ |                    t          d|                    	                                sJ |                    t          d|                    	                                sJ t          d|          }t          |dd          }|
                    |          }	t          j        g dd          }t	          j        |	|           t          d|          }t          |dd          }|
                    |          }	t          j        g dd          }t	          j        |	|           d S )Nz
2000-01-01r   r&   )startr   z2000-01-01T12:00r>   z2000-01-01T12z
2000-01-02z
2000-01-03z
1999-12-31z1999-12-31T12:00r=   12h)r  r   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    rC   rD   rF   r   r   anyr   r(   rI   rK   )
r"   r   r  datesrM   rO   iv_trueiv_falser   r   s
             r   test_datetimezTestIntervalIndex.test_datetime  s   ,2...333)%00 ,444E1555
ei222 "---U::::R000===="---U::::lr***Ilr,J,J,J
 
 lr***Ilr,J,J,J
 
 %u$$$$ >>)LR"@"@"@AAEEGGGGG~~iB???@@DDFFFFF~~i<<<==AACCCCC ,444%???""6**83336BBB
#FH555,444%>>>""6**8222&AAA
#FH55555r   c                    t          j        ddgddg|          }t          j        ddgddg|          }|                    |          }t          j        g dg d|          }t          j        ||           |                    ||g          }t          j        g dg d	|          }t          j        ||           h d
|hz
  D ]}t          j        ddgddg|          }|                    |          }|                    t                                        |                    t                              }t          j        ||           d S )Nr   r   r   r   r9   )r   r   r   r   )r   r   r   r9   )r   r   r   r   r   r   )r   r   r   r   r   r9   >   r   r7   r   r   )r   r'   r   rC   rD   r   rJ   )r"   r   index1index2rm   rO   r  index_other_closeds           r   test_appendzTestIntervalIndex.test_append  s   *Aq6Aq6&III*Aq6Aq6&IIIv&& ,\\\<<<PVWWW
fh////00 , 2 2 26
 
 
 	fh///@@@F8K 	4 	4L!.!:AA|" " " ]]#566F}}V,,334F4M4Mf4U4UVVH!&(3333	4 	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    r0t          j        t	          d	          |          }|j        du sJ d S t          j        t	          d	          |          }|j        du sJ d S )
N)r   r   r   r<   r=   r   Tr   )r   r   r   r'  F)r   r   r'  r   r   r:   )r   r   is_non_overlapping_monotonicr    r!   )r"   r   tplsr   s       r   !test_is_non_overlapping_monotonicz3TestIntervalIndex.test_is_non_overlapping_monotonic  s   ///'V<<</47777'TTrT
6BBB/47777 0//'V<<</58888'TTrT
6BBB/58888 0//'V<<</58888'TTrT
6BBB/58888 V+E!HHVDDDC3u<<<<<<+E!HHVDDDC3t;;;;;;r   zstart, shift, na_valuec                    fddD             }t          j        ||          }|j        du sJ ||fg|z   ||fgz   }t          j        ||          }|j        du sJ fdt          d          D             }t          j        ||          }|j        du sJ ||fg|z   ||fgz   }t          j        ||          }|j        du sJ fdt          d          D             }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 d S )Nc                 6    g | ]}|z  z   |d z   z  z   fS r   r3   r6   nshiftr  s     r   r8   z9TestIntervalIndex.test_is_overlapping.<locals>.<listcomp>  s4    RRR151u9$eq1uo&=>RRRr   )r   r   r:   r   Fc                 6    g | ]}|z  z   |d z   z  z   fS )r   r3   r.  s     r   r8   z9TestIntervalIndex.test_is_overlapping.<locals>.<listcomp>  4    QQQ151u9$eq1uo&=>QQQr   r9   Tc                 6    g | ]}|z  z   |d z   z  z   fS r-  r3   r.  s     r   r8   z9TestIntervalIndex.test_is_overlapping.<locals>.<listcomp>  r2  r   r   )r&   rU            #   (   -   r9  2   7   <   A   F   K   P   U   )rU   r4  r5  r6  r7  r8  r9  r9  r:  r;  r<  r=  r>  r?  r@  rA  Z   r   )r   r   is_overlappingr!   r'   )r"   r  r0  na_valuer   tuplesrM   rm   rO   abs    ``        r   test_is_overlappingz%TestIntervalIndex.test_is_overlapping  s#    SRRRR	RRR)&@@@#u,,,, X&'&0Xx4H3II)&@@@#u,,,, RQQQQaQQQ)&@@@#t++++ X&'&0Xx4H3II)&@@@#t++++ RQQQQaQQQ)&@@@%V#!!!! X&'&0Xx4H3II)&@@@%!!!! QPPPPP)!Qw???%r   rE  r   c                     t          j        |          }|                                }t          t	          j        |                    }t          j        ||           d S r   )r   r   	to_tuplesr   comasarray_tuplesaferC   rD   )r"   rE  r   rm   rO   s        r   test_to_tuplesz TestIntervalIndex.test_to_tuples  sR    ( '//.v6677
fh/////r   na_tupleTFc                    t          j        |          }|                    |          }t          t	          j        |d d                             }|d d         }t          j        ||           |d         }|rIt          |t                    sJ t          |          dk    sJ t          d |D                       sJ d S t          |          sJ d S )N)rN  r   r   c              3   4   K   | ]}t          |          V  d S r   )r   )r6   r   s     r   rj   z6TestIntervalIndex.test_to_tuples_na.<locals>.<genexpr>W  s(      221tAww222222r   )r   r   rJ  r   rK  rL  rC   rD   
isinstancetupler@   allr   )r"   rE  rN  r   rm   expected_notnaresult_notna	result_nas           r   test_to_tuples_naz#TestIntervalIndex.test_to_tuples_na3  s    . '//11 s4VCRC[AABBcrc{
lN;;; 2J	 	#i/////y>>Q&&&&22	2222222222	??"""""r   c                     t          j        ddd          }t          j        ddd          }t          j        ||          j        }d}||k    sJ d S )Nr   r:   i8r/   r   r;   @   )r(   r*   r   r'   nbytes)r"   r7   r   rm   rO   s        r   test_nbyteszTestIntervalIndex.test_nbytes[  s_    yAT***	!Qd+++*477>!!!!!!r   
new_closed)r7   r   r   r   c                     t          dd||          }|                    |          }t          dd||          }t          j        ||           d S )Nr   r;   )r   r   )r
   
set_closedrC   rD   )r"   r   r   r]  rM   rm   rO   s          r   test_set_closedz!TestIntervalIndex.test_set_closedd  s\     q!F>>>!!*--!!QzEEE
fh/////r   
bad_closed)r   r&   LEFTTFc                     t          dd          }d| }t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr   r;   zinvalid option for 'closed': r   )r
   r   r   r   r_  )r"   ra  rM   r   s       r   test_set_closed_errorsz(TestIntervalIndex.test_set_closed_errorsl  s     q!$$:j::]:S111 	) 	)Z(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   AAAc                     t          t          d          t          d                    }t          |g          }|j        rJ d S )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  sN    +,,i8M.N.N
 
	 (44"000000r   )r   )=__name__
__module____qualname__r   r'   rM   r#   r-   rS   r   markparametrizer(   infr	   r   xfailr   to_timedeltarn   ru   rz   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   rH  rH   r!   rM  rW  r\  r`  rd  ri  r3   r   r   r   r      s       %M%q!fq!f55EC C C C
 
 
 
'A 'A 'AR [@@@fWdCac3RVDJ|\22FL
<C@@@k''/G'HH   BODDDEE		
 0 0 06 6 6.0 0 0
 
 
,0 0 0 [N1b;;;N3FCCCN99Z00"VLLLN99W--qIII		
 70 70 70r& & &4E= E= E=N1 1 1 [Jz1---Jz1>>>OHa000	

 #"   0 0 0< [	L!	,	,	,oohPQ.R.R.RS 0 0	 0 [		%v   

0 
0 

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

 433      [
:q111
:q\BBB!444
 	
 	
 #"    [%99!!$$	
 EDD  
 
) )
 
 .)' ' '.	0 	0 	0     : : :6>& >& >&@O O O$0 0 0( [TD,#788'6 '6 98'6R4 4 4,< < <B [ 26NY|$$ii&8&8"&AYx  ))G"4"4bf=	
 * * *X [DUU2YYa--..DJz2666Jz2666   D#OHb999#OGR888  	
 $0 0% $0 [DUU2YYa--.."&9DJz2666Jz2666   vh D#OHb999#OGR888   vh	
 ( [Z$77# # 87) *#&" " " [\+O+O+OPP0 0 QP0 [\+K+K+KLL) ) ML)1 1 1 1 1r   r   c                  b    t          j        ddgddg          } t          |           }d|vsJ d S )Nr   r   r   r   )r   r'   dir)rM   rm   s     r   test_dirrt  }  s>    %q!fq!f55EZZFr   c                 p   t          t          dd          t          dd          g          }|                     | |                    }t          j        ddg|j                  }t          j        ||           |j                             | |                    }t          j        ||           d S )Nr   r   r   r/   )	r   r   searchsortedr(   rI   r0   rC   rK   r   )listlike_boxr~   rm   rO   s       r   ,test_searchsorted_different_argument_classesrx    s    HQNNHQNN;<<F  f!5!566FxAfl333H111\&&||F';';<<F11111r   argr   r   rF  rG  z
2020-01-01zEurope/Londonr  c                     t          t          dd          t          dd          g          }d}t          j        t          |          5  |                    |            d d d            d S # 1 swxY w Y   d S )Nr   r   r   zL'<' not supported between instances of 'pandas._libs.interval.Interval' and r   )r   r   r   r   r   rv  )ry  r~   r   s      r   "test_searchsorted_invalid_argumentr{    s     HQNNHQNN;<<F
XC	y	,	,	, ! !C   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   A..A25A2)!	itertoolsr   r   numpyr(   r   pandasr   r   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingrC   pandas.core.commoncorecommonrK  fixturer   r   rt  rx  rm  rn  r{  r3   r   r   <module>r     s   " " " " " " 				                                                         e}%%%  &%]1 ]1 ]1 ]1 ]1 ]1 ]1 ]1@  2 2 2 	QFS#J<O!L!L!L MPQ QR ! ! ! ! !r   