
    g                     |    d dl Zd dlZd dlmZ d dlmZ d dlZ	d dlm
Z
mZmZ d dlmZ  G d d      Z G d d      Zy)	    Nindex)IS64)	DataFrameIntervalIndexSeriesc                       e Zd Zej                  d        Zd Zej                  j                  dddg      d        Z	d Z
d Zd	 Zd
 Zd Zy)TestIntervalIndexc                     t        t        j                  d      t        j                  t        j                  d                  S )N      )r   nparanger   from_breaks)selfs    i/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/pandas/tests/indexing/interval/test_interval.pyseries_with_interval_indexz,TestIntervalIndex.series_with_interval_index   s*    biilM$=$=biil$KLL    c                    |j                         }|j                  d d }t        j                  | ||      d d        t        j                  | ||      d d        t        j                  | ||      dd        |t        j                  u r#t        j                  ||j                  dd        |j                  dd }t        j                  | ||      g d          t        j                  | ||      g d          t        j                  | ||      g d	          |j                  d
d }t        j                  | ||      |d
k\            y )N         @g?      )      ?r   g      @)   r   r   )r   r   r   r   r   )copyiloctmassert_series_equalloc)r   r   
indexer_slserexpecteds        r   test_getitem_with_scalarz*TestIntervalIndex.test_getitem_with_scalar   s   (--/88BQ<
xC!)<=
xC#)>?
xCS)AB""8SWWR];88Aa=
xC)IJ
xC)CD
xC)EF88Aa=
xC)BCr   	direction
increasing
decreasingc                    g d}|dk(  r|d d d   }t        j                  ||      }t        t        d      |      }t	        |j
                  |      D ]Z  \  }}|j                  r ||      |   |k(  r!J t        j                  t        t        |            5   ||      |    d d d        \ t	        |j                  |      D ]Z  \  }}|j                  r ||      |   |k(  r!J t        j                  t        t        |            5   ||      |    d d d        \ t	        |j                  |      D ]  \  }} ||      |   |k(  rJ  y # 1 sw Y   	xY w# 1 sw Y   xY w)N))r   r   )r   r   )r   r   r(   r   )closedabcmatch)r   from_tuplesr   listzipleftclosed_leftpytestraisesKeyErrorstrrightclosed_rightmid)	r   r&   r*   r"   tplsidxr#   keyr$   s	            r   %test_getitem_nonoverlapping_monotonicz7TestIntervalIndex.test_getitem_nonoverlapping_monotonic'   sa   '$":D''V<T%[#& 3/ 	)MC!#s+x777]]83s8< )sOC() )		) !C0 	)MC!#s+x777]]83s8< )sOC() )		) !#. 	4MCc?3'8333	4) )) )s   EE E	 E)	c                    |j                         }t        j                  t        d      5   ||      g d    d d d        t        j                  t        d      5   ||      ddg    d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nz\[-1\] not in indexr,   )r   r   r   r   r   r   )r   r3   r4   r5   )r   r   r"   r#   s       r   test_getitem_non_matchingz+TestIntervalIndex.test_getitem_non_matchingA   s}    (--/ ]]8+AB 	+sOM*	+ ]]8+AB 	%sORG$	% 	%	+ 	+	% 	%s   A4B 4A= B	c           
         d}|j                         5  |j                  t        d|       t        t	        j
                  |      t        j                  t	        j
                  |dz                     }|j                  d d }|j                  dd }|j                  ddd   }d d d        t        j                         t        j                  |       y # 1 sw Y   6xY w)N   _SIZE_CUTOFFr   r      r   )contextsetattrlibindexr   r   r   r   r   r!   r   r    )r   monkeypatchsize_cutoffr#   result1result2result3s          r   test_loc_getitem_large_seriesz/TestIntervalIndex.test_loc_getitem_large_seriesL   s      " 		%.+F		+&#//		+/0JKC
 ggbqkGggalGgga!enG		% 	w0
w0		% 		%s   BCC"c                 f   t        dt        d      i      }t        j                  |j                  d      }||d<   |j                  d      }|j                  d   }|j                  dd }t        j                  ||       t        j                  t        d      5  |j                  d    d d d        |j                  dg   }|j                  dd }t        j                  ||       |j                  ddg   }|j                  g d	      }t        j                  ||       d
}t        j                  t        |      5  |j                  dg    d d d        t        j                  t        d      5  |j                  ddg    d d d        y # 1 sw Y   xY w# 1 sw Y   KxY w# 1 sw Y   y xY w)NA
   r   Br   r   10r,   )r   r   r   r   zJNone of \[Index\(\[10\], dtype='object', name='B'\)\] are in the \[index\]z\[10\] not in index)r   rangepdcutrN   	set_indexr!   r   r   assert_frame_equalr3   r4   r5   take)r   dfr#   resultr$   msgs         r   test_loc_getitem_framez(TestIntervalIndex.test_loc_getitem_frame[   sp   U2Y'(ffRTT1o3\\#771Q<
fh/]]840 	FF2J	 771Q<
fh/ A77<(
fh/$ 	 ]]83/ 	FFB4L	 ]]8+AB 	FFB7O	 	+	 	"	 		 	s$   F F4F'FF$'F0c                    t        t        j                  t        j                  g      }|d d } |t        d      |      }|t        u r|t
        j                  u r|j                  } ||      |   }|}t        j                  ||       y )Nr   r   r   )	r   r   nanrR   r   r   setitemTassert_equal)r   frame_or_seriesr"   r   r<   objrY   r$   s           r   test_getitem_interval_with_nansz1TestIntervalIndex.test_getitem_interval_with_nans~   ss     rvvrvv./CRjeAhe4i'J"**,D%%CC%
)r   c                 h   t        j                  t        dd            }t        t        d      |      }|j	                         }d|j
                  dd t        j                  ||       d|j
                  d	d
 d|j                  dd t        j                  ||       t        t        d      |d d d         }|j	                         }d|j
                  d	d
 d|j                  d<   t        j                  ||       d|j
                  dd d|j                  d d t        j                  ||       y )Nr      rO   r   rA   r   r      r   rC   r   r            )	r   r   rR   r   r   r!   r   r    r   )r   iir#   origser2orig2s         r    test_setitem_interval_with_slicez2TestIntervalIndex.test_setitem_interval_with_slice   s   &&uQ|4U2Yb)xxz !
sD)!		!A
sD)eAhb1g.		 1

1
tU+1

2A
tU+r   N)__name__
__module____qualname__r3   fixturer   r%   markparametrizer=   r?   rL   r[   rc   rn    r   r   r
   r
      se    ^^M MD$ [[[<*FG4 H42	%1!F*,r   r
   c                       e Zd Zd Zej
                  j                  e d      ej
                  j                  dddg      d               Z	y)	!TestIntervalIndexInsideMultiIndexc                 "   t        j                  g dg dd      }t        j                  j                  t        j                  g d      t        j                  g d      |g      }g d|_        t        dg d	i      }||_        t        g d
g dg dd      }|j                         }t        j                  j                  |j                  |j                  |j                  g      }||_        |j                  j                  |j                     }|j                  g d      }t        j                  j                  |j                  d      |j                  d      |g      }t!        g d|d      }t#        j$                  ||       y )N)r   r   rO      r   r   rO   ry   )r   r   ry      r   r   ry   rz   MP)name)FCr}   r}   r}   OWNERr~   r~   r~   )RID1r   RID2r   r   r   r   r   )ItemRIDr{   value)r   r   r   r   r   r   ri   rC   )r}   r~   r}   r~   r~   )r   r   r   r   r   )g?r   g?g333333&@g%@)r   r   r   r   r   r   r   )r   r   r   rC   ri   )r   r|   )r   from_arraysrS   
MultiIndexIndexnamesr   r   
sort_indexr   r   r{   r   r!   rW   get_level_valuesr   r   r    )	r   rj   r;   rX   query_dfrY   sliced_levelexpected_indexr$   s	            r   )test_mi_intervalindex_slicing_with_scalarzKTestIntervalIndexInsideMultiIndex.test_mi_intervalindex_slicing_with_scalar   sF   &&(*FT
 mm''UVT 
 *	!9:;??1
 &&(mm''hkk(RShnn-
 ww/22!!!$c&:&:1&=|L
 /gN
vx0r   zGH 23440)reasonbasee   i  c                 X   t        t        |      t        j                  t        |      t        d|dz                     }t        t        j
                  dgt        j
                  dgt              }|j                  t        j
                  dg      }t        j                  ||       y )Nr   r   r   g      ?)r   dtype)
r   rR   r   r   r   r]   floatreindexr   r    )r   r   r#   expected_resultrY   s        r   )test_reindex_behavior_with_interval_indexzKTestIntervalIndexInsideMultiIndex.test_reindex_behavior_with_interval_index   s|     $K++E$Kq$(9KL
 !"&&!RVVSMOBFFC=1
v7r   N)
ro   rp   rq   r   r3   rs   xfailr   rt   r   ru   r   r   rw   rw      sS    )1V [[4x
3[[	d	8	 4
	8r   rw   )numpyr   r3   pandas._libsr   rF   pandas.compatr   pandasrS   r   r   r   pandas._testing_testingr   r
   rw   ru   r   r   <module>r      s:      *   
 V, V,r:8 :8r   