
    OwgQ                     X    d dl Zd dlZd dlmZ d dlZd dlmZmZ d dl	m
Z  G d d      Zy)    N)ensure_platform_int)Index
RangeIndexc                      e Zd Zej                  d        Zd Zd Zd Zej                  j                  d ed      dddf edd      dddf edd	
      ddd	f eddd	      ddd	fg      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                  j                  d eddd	       eddd	      f ed       eddd       f edd	d        edd d!      f edd"d#       edd$d#      fg      d%        Zd& Zd' Zd( Z ej                  j                  d)d*d+g      d,        Z!d- Z"d. Z#d/ Z$d0 Z%ej                  j                  d1 edd2d	d34       ed5dd#d64      gd7d8g9      d:        Z&d; Z'd< Z(d= Z)ej                  j                  d> e* e+d?d@            dhz
        dA        Z,ej                  j                  dB eddCd      g eddCd      f edd@d!      g edd@d!      f edd        ed dD      g eddD      f eddd	       edd@      g edd@d	      f edd d	       ed!dDd       g eddDd       f edEd d	       ed!dDd	      g edEdDd	      f edEdF       edFdG      g edd      f edEdF       ed dE      g edd      f edEdF       ed d      g ed d      f edEd#       ed d      g e-g dH      f ed#       ed d      g ed d      f ed	       ed	      g e-g dI      f ed	       ed	d       eddJd!      g edd@      f ed	       ed d       eddJd!      g e-g dK      f ed#d	       ed	d       eddJd!      g ed#d@      f ed        e-g dL      g e-g dM      f ed        e-g dN      g e-g dO      f ed        e-g dP      g e-g dQ      f ed d       e-g dP      g e-g dP      fg      dR        Z.dS Z/dT Z0ej                  j                  dU eddd       eddd       edd d	       eddd#       edVd?d#      g      dW        Z1ej                  j                  dX edd	       e-ddg      g      dY        Z2dZ Z3d[ Z4y\)]TestRangeIndexc                     t        ddd      S )Nr         startstopstep)r   )selfs    ]/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexes/ranges/test_range.pysimple_indexzTestRangeIndex.simple_index   s    33    c                     t        dd      }t        j                  ddgt        j                        }t	        j
                  |j                  |       y )N      r
   dtype)r   nparrayint64tmassert_numpy_array_equal_datar   resultexpecteds      r   test_constructor_unwraps_indexz-TestRangeIndex.test_constructor_unwraps_index   s:    Aq!88QF"((3
##FLL(;r   c                 <    |}|d   }|j                  |      du sJ y )Nr   F)$_can_hold_identifiers_and_holds_name)r   r   idxkeys       r   test_can_hold_identifiersz(TestRangeIndex.test_can_hold_identifiers   s)    !f77<EEEr   c                 z    |}t        j                  t        d      5  ddg|_        d d d        y # 1 sw Y   y xY w)Nz^Lengthmatchrogerharold)pytestraises
ValueErrornamesr   r   indexs      r   test_too_many_namesz"TestRangeIndex.test_too_many_names   s6    ]]:Y7 	."H-EK	. 	. 	.s   
1:zindex, start, stop, step   r   r   r
   )r   c                 j    |j                   |k(  sJ |j                  |k(  sJ |j                  |k(  sJ y Nr   )r   r1   r   r   r   s        r   test_start_stop_step_attrsz)TestRangeIndex.test_start_stop_step_attrs"   s:     {{e###zzT!!!zzT!!!r   c                     t        dd      }|j                         }||usJ |j                  |      sJ |j                  t	        ddd      k(  sJ |j
                  dk(  sJ y )Nr3   Foonamer   r   )r   copy	identical_rangeranger:   )r   ii_copys      r   	test_copyzTestRangeIndex.test_copy1   se    qu%Q"""}}aA...{{e###r   c                    t        dd      }t        |      }d}||k(  sJ t        |      }t        j                  ||d       t        ddd      }t        |      }d	}||k(  sJ t        |      }t        j                  ||d       y )
Nr3   r8   r9   z/RangeIndex(start=0, stop=5, step=1, name='Foo')Texactr   z$RangeIndex(start=5, stop=0, step=-1))r   reprevalr   assert_index_equal)r   r?   r   r    s       r   	test_reprzTestRangeIndex.test_repr9   s    qu%aD!!!f
fat4q!R a9!!!f
fat4r   c                 X   t        dd      }|dd }t        j                  |dd |j                  d|d         d       t	        dt
        j                  dd	d
dgt
        j                        }t
        j                  d t        j                  fD ]3  }t        d      j                  d|      }t        j                  ||       5 t        d      j                  dt        j                        }t	        dt        j                  dd	d
dgt              }t        j                  ||       y )Nr3   r8   r9   r      r   equivrC   r
   r   r   )r   r   rH   insertr   r   nanfloat64pdNANaTobject)r   r$   r   r    nas        r   test_insertzTestRangeIndex.test_insertJ   s    'Qq 	c!AhaQ(@P !RVVQ1a0

C664' 	4B]))!R0F!!&(3	4 A%%a0!RVVQ1a0?
fh/r   c                 0   t        t        ddd            }|j                  dd      }t        t        ddd            }t        j                  ||d       |j                  dd      }t        t        dd	d            }t        j                  ||d       y )
NrK   	   r
   r   TrC   r   
      r   r>   rM   r   rH   r   r$   r   r    s       r   &test_insert_edges_preserves_rangeindexz5TestRangeIndex.test_insert_edges_preserves_rangeindex[   s|    E!QN#Aq!q!Q(
fhd;Ar"q"a)
fhd;r   c                    t        t        ddd            }|j                  dd      }t        t        d            }t        j                  ||d       |dz  }|j                  dd      }|dz  }t        j                  ||d       y )Nr   r   r
   r   TrC   rZ   r[   s       r   'test_insert_middle_preserves_rangeindexz6TestRangeIndex.test_insert_middle_preserves_rangeindexf   sw    E!QN#Aq!q?
fhd;AgAq!a<
fhd;r   c                    t        dd      }|dd  }|j                  d      }t        j                  ||d       |j                  |j                  k(  sJ |d d }|j                  d      }t        j                  ||d       |j                  |j                  k(  sJ d	}t        j                  t        t        f|
      5  |j                  t        |            }d d d        y # 1 sw Y   y xY w)Nr3   r8   r9   r   r   TrC   rE   z/index 5 is out of bounds for axis 0 with size 5r(   )
r   deleter   rH   r:   r,   r-   
IndexErrorr.   len)r   r$   r    r   msgs        r   test_deletezTestRangeIndex.test_deleter   s    'qr7A
fhd;{{hmm+++s8B
fhd;{{hmm+++?]]J
33? 	*ZZC)F	* 	* 	*s   C''C0c                    t        t        d      d      }|j                  dg      }t        t        d      d      }t        j                  ||d       |j                  d      }t        j                  ||d       y )Nr
   foor9   r   TrC   r   r>   r`   r   rH   r[   s       r    test_delete_preserves_rangeindexz/TestRangeIndex.test_delete_preserves_rangeindex   sb    E!H5)QCq.
fhd;A
fhd;r   c                     t        t        d      d      }|j                  d      }|d d d   }t        j                  ||d       |j                  d      }t        j                  ||d       y )	Nr   rf   r9   r   r
   TrC   rg   r[   s       r   'test_delete_preserves_rangeindex_middlez6TestRangeIndex.test_delete_preserves_rangeindex_middle   s]    E!H5)Ass8
fhd;B
fhd;r   c                     t        ddd      }g d}|j                  |      }|d d }t        j                  ||d       |j                  |d d d         }t        j                  ||d       y )	Nr      r   )r
   r   rK   r3   r
   TrC   rE   r   r`   r   rH   r   r$   locr   r    s        r   ,test_delete_preserves_rangeindex_list_at_endz;TestRangeIndex.test_delete_preserves_rangeindex_list_at_end   sg    Aq!Cr7
fhd;C"I&
fhd;r   c                     t        ddd      }g d}|j                  |      }t        ddd      }t        j                  ||d       |j                  |d d d         }t        j                  ||d       y )	Nr   rm   r   )r   r
   r   rK   r3   TrC   rE   rn   ro   s        r   ,test_delete_preserves_rangeindex_list_middlez;TestRangeIndex.test_delete_preserves_rangeindex_list_middle   sj    Aq!CaA&
fhd;C"I&
fhd;r   c                     t        ddd      }g d}|j                  |      }|d d }t        j                  ||d       |j                  |d d d         }t        j                  ||d       y )Nr   rm   r   )r   r   r
   r   rK   r3   TrC   rE   rn   ro   s        r   $test_delete_all_preserves_rangeindexz3TestRangeIndex.test_delete_all_preserves_rangeindex   sg    Aq! Cr7
fhd;C"I&
fhd;r   c                     t        ddd      }g d}|j                  |      }t        g d      }t        j                  ||d       |j                  |d d d         }t        j                  ||d       y )	Nr   rm   r   )r   r   r3   )r   r
   rK   TrC   rE   )r   r`   r   r   rH   ro   s        r   %test_delete_not_preserving_rangeindexz4TestRangeIndex.test_delete_not_preserving_rangeindex   sf    Aq!C#
fhd;C"I&
fhd;r   c                 |   t        dd      }|j                         }|j                  dk(  sJ |j                  d      }t        j                  |j
                  |       d}t        j                  t        |      5  |j                  t               }d d d        t        j                  ||       y # 1 sw Y    xY w)Nr   r8   r9   i8/Passing a type in RangeIndex.view is deprecatedr(   )	r   viewr:   r   r   valuesassert_produces_warningFutureWarningrH   )r   r?   i_viewrc   s       r   	test_viewzTestRangeIndex.test_view   s    qu%{{e###
##AHHf5?''SA 	(VVJ'F	(
a(	( 	(s   =B22B;c                 F    |}|j                   t        j                  k(  sJ y r5   )r   r   r   r0   s      r   
test_dtypezTestRangeIndex.test_dtype   s    {{bhh&&&r   c                 z   t        ddd      }|j                  i k(  sJ t        |       |j                  i k(  sJ t        |       |j                  i k(  sJ |j	                  d       |j                  i k(  sJ d|v  |j                  i k(  sJ d|v  |j                  i k(  sJ |j                          |j                  i k(  sJ |j                          |j                  i k(  sJ |D ]  } |j                  i k(  sJ d}t        j                  t        |      5  |j                          d d d        |j                  i k(  sJ t        j                  d	t        d      i|
      }t        |       |j                  i k(  sJ |j                  d    |j                  i k(  sJ t        j                   t"        d      5  |j                  d    d d d        |j                  i k(  sJ |j                  dd  |j                  i k(  sJ |j$                  dd  |j                  i k(  sJ |j'                  g d       d|j                  vsJ |j                  dg    d|j                  vsJ |j$                  g d    d|j                  vsJ |j(                   t+        |j(                  t,        j.                        sJ |j(                  |j(                  u sJ d|j                  v sJ t-        j0                  dddd      }t        j2                  |j                  d   |       y # 1 sw Y   xY w# 1 sw Y   exY w)Nr   d   rX   r	   Z   [   zRangeIndex.format is deprecatedr(   a)r1   2   513   r3   )r   r   r   r   )r3   rm         rW   r   r   )r   _cacherF   strget_locallanyr   r}   r~   formatrP   	DataFramer>   rp   r,   r-   KeyErroriloctaker   
isinstancer   ndarrayaranger   )r   r$   _rc   dfr    s         r   
test_cachezTestRangeIndex.test_cache   s   
 C$zzRS	zzRCzzRBzzR
c	zzR
c	zzR	zzR	zzR 	A	zzR/''SA 	JJL	zzR\\3b	*#6 	BzzR
r
zzR]]840 	FF2J	zzR
r"zzR
"zzR 	cjj(((
tcjj(((
 cjj((( 			#))RZZ000yyCII%%%#**$$$99QRw7
##CJJw$7BO	 		 	s   L#=L0#L-0L:c                    t        ddd      }|j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ t        ddd      }|j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ t        dd      }|j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ t        dd      }|j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ t        dd      }|j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ y )	Nr   r	   r
   TFrK   rE   r   )r   is_monotonic_increasingis_monotonic_decreasing!_is_strictly_monotonic_increasing!_is_strictly_monotonic_decreasingr   r1   s     r   test_is_monotonicz TestRangeIndex.test_is_monotonic  s"   1b!$,,444,,444,,55566$>>>66%???1a$,,55566%???,,44466$>>>1a ,,444,,444,,44466$>>>66$>>>1a ,,444,,444,,44466$>>>66$>>>1a ,,444,,444,,44466$>>>66$>>>r   z
left,rightrW   rX   rE   r   rK   irj   ic                 P    |j                  |      sJ |j                  |      sJ y r5   )equals)r   leftrights      r   test_equals_rangez TestRangeIndex.test_equals_rangeB  s(     {{5!!!||D!!!r   c                     |}|j                         |j                  j                         k(  sJ |j                         |j                  j                         k(  sJ y r5   )r   r|   r   )r   r   r$   s      r   test_logical_compatz"TestRangeIndex.test_logical_compatO  sE    wwyCJJNN,,,,wwyCJJNN,,,,r   c                 b   |}t        |j                               }|j                  |      sJ t        |t              ry t        |t
              }|j                  |      rJ |j                  t
              }|j                  d      }t        |t
              }|j                  |j                  t
                    sJ |j                  |      rJ t        |dt
              j                  |      sJ |j                  t
              j                  |j                  d            rJ y )Nr   rf   )r:   r   r   )r   r;   r<   r   r   rS   rename)r   r   r1   r?   same_values_different_typesame_valuess         r   test_identicalzTestRangeIndex.test_identicalT  s    %**,{{5!!! eZ(%*1F%;";;9:::JJVJ$HHUOAV,$$UZZfZ%=>>>;;u%%%[uF;EEaHHH::F:+55ejjwj6OPPPPr   c                     t        dd      }|j                  t        |j                        j                  dz  k  sJ t        dd      }|j                  |j                  k(  sJ y )Nr   i  rX   )r   nbytesr   _values)r   r$   i2s      r   test_nbyteszTestRangeIndex.test_nbytesj  sX    D!zzE#++.55:::: 2zzRYY&&&r   zstart,stop,step)rf   barbaz)012c                     dt        |       d| }t        j                  t        |      5  t	        |||       d d d        y # 1 sw Y   y xY w)NzWrong type z for value r(   )typer,   r-   	TypeErrorr   )r   r   r   r   rc   s        r   test_cant_or_shouldnt_castz)TestRangeIndex.test_cant_or_shouldnt_casts  sI     DK=E7;]]9C0 	*udD)	* 	* 	*s   AAc                     |}d}t        j                  t        |      5  |j                  t               d d d        y # 1 sw Y   y xY w)Nrz   r(   )r   r}   r~   r{   r   )r   r   r1   rc   s       r   test_view_indexzTestRangeIndex.test_view_index  s=    ?''SA 	JJu	 	 	s	   ?Ac                 h    |}|j                  d      }|j                  t        j                  k(  sJ y )NO)astyper   r   object_r   r   r1   r   s       r   test_prevent_castingz#TestRangeIndex.test_prevent_casting  s+    c"||rzz)))r   c                 X    |}t        j                  t        t        |            |       y r5   )r   rH   rG   rF   r0   s      r   test_repr_roundtripz"TestRangeIndex.test_repr_roundtrip  s     
d4;/7r   c                 \    t        ddd      }|j                  |dd  j                  k(  sJ y )Nr   r
   asdfr9   )r   r:   r   r$   s     r   test_slice_keep_namez#TestRangeIndex.test_slice_keep_name  s,    AF+xx3qr7<<'''r   r1   r	   rf   )r   r   r   r:      r   	index_inc	index_dec)idsc                 <    |j                   sJ |j                  rJ y r5   )	is_uniquehas_duplicatesr   s     r   test_has_duplicatesz"TestRangeIndex.test_has_duplicates  s"     '''''r   c                     |}|j                  dd      }|d   |d   dz  |d   dz  z   k(  sJ d|d   k(  sJ |j                  dd      }d|d   dz  |d   dz  z   k(  sJ d|d   k(  sJ y )Nrm   rX   r   r   r
   )_extended_gcdr   s       r   test_extended_gcdz TestRangeIndex.test_extended_gcd  s    $$Q+ayF1IMF1IN::::F1I~~$$R+F1INVAY]2222F1I~~r   c                 j   t        ddd      j                  d      }d|k(  sJ t        dd      j                  d      }d|k(  sJ t        ddd      j                  d      }d|k(  sJ t        ddd	      j                  d      }d|k(  sJ d
}t        d|dz  d      j                  |      }||k(  sJ y )Nr   r	   r
   r   rm   r   rj   r3   rE   l      !;o )r   _min_fitting_element)r   r   big_nums      r   test_min_fitting_elementz'TestRangeIndex.test_min_fitting_element  s    Ar1%::1=F{{Aq!66q9F{{BB'<<Q?F{{Aq"%::1=F{{*Aw{A.CCGL&   r   c                    |}d|_         |d   }d}||k(  sJ |d   }d}||k(  sJ |d d  }|}t        j                  ||       |ddd   }t        ddgd	      }t        j                  ||d
       |ddd   }t        ddgd	      }t        j                  ||d
       |ddd   }t        ddgd	      }t        j                  ||d
       |d d d   }t        |j                  d d d   d	      }t        j                  ||d
       |dd d   }t        g dd	      }t        j                  ||d
       |dd d   }t        t        j                  g t
        j                        d	      }t        j                  ||d
       |dd d   }t        |j                  dd d   d	      }t        j                  ||d
       |dd d   }t        |j                  d d d   d	      }t        j                  ||d
       y )Nrf   r   r
   rE   r   r   rX      r9   rL   rC   rj   r   rK      )rK   r
   r   ir   (   )r:   r   rH   r   r|   r   r   r   )r   r   r1   resr    index_slices         r   test_slice_specialisedz%TestRangeIndex.test_slice_specialised  s   
 AhhBih Ah
k84 AbFm"b.
k87C Br"Ho"b.
k87C Ac!Gn!Ru-
k87C DbDkdd+%8
k87CBFFm/
k87CCGGn"BHH5EB
k87CBFFmbf"f-E:
k87CBFFmdd+%8
k87Cr   r   r   rm   c                     |dkD  rdnd\  }}t        j                  |||      }t        |||      }t        |      t        |      k(  sJ t        |||      }t        |      dk(  sJ y )Nr   )r   r3   )r3   r   )r   r   r   rb   )r   r   r   r   arrr1   s         r   test_len_specialisedz#TestRangeIndex.test_len_specialised  si     !%qfftiitT*5$-5zSX%%%4-5zQr   zindices, expectedr   r   r   i)r   r   rK   )r   r   r   r   r   )r   r   r   rK   r3   )rE   r      )r   r   r
   rE   r   r   )rE   @      .@)r   r   r
   rE   r   r   )r   Nr   )r   r   r
   r   Nr   c                     |d   j                  |dd        }t        j                  ||d       t        |      dk(  r0|d   j                  |d         }t        j                  ||d       y y )Nr   r   TrC   r
   )appendr   rH   rb   )r   indicesr    r   result2s        r   test_appendzTestRangeIndex.test_append  sl    @ ""712;/
fhd;w<1aj''
3G!!'84@ r   c           	         t        ddd      }|j                  d      dk(  sJ t        j                  |j	                  ddg      t        t        j                  ddg                   t        j                  t        d	      5  |j                  d       d d d        d
|j                  vsJ t        j                  t        d	      5  |j                  d       d d d        d
|j                  vsJ y # 1 sw Y   _xY w# 1 sw Y   &xY w)Nr
   rX   r   r3   r   r   r   3r(   _enginez'a'r   )r   r   r   r   get_indexerr   r   r   r,   r-   r   r   r   s     r   test_engineless_lookupz%TestRangeIndex.test_engineless_lookup'  s     B"{{1~"""
##OOQF#%81a&9I%J	
 ]]83/ 	KKN	 

*** ]]851 	KK	 

***	 		 	s   C4	D 4C= D	c                 <   t        d      }d}t        j                  t        |      5  |j	                         g k(  sJ 	 d d d        t        j                  t        |      5  |j	                  d      dgk(  sJ 	 d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)Nr   z RangeIndex\.format is deprecatedr(   Tr9    )r   r   r}   r~   r   )r   	empty_idxrc   s      r   test_format_emptyz TestRangeIndex.test_format_empty=  s    qM	1''SA 	,##%+++	,''SA 	7###.2$666	7 	7	, 	,	7 	7s   B#BBBrir   c                 V    |j                  g       }t        j                  ||d       y )NTrC   )r   r   rH   )r   r   r   s      r   test_append_len_onez"TestRangeIndex.test_append_len_oneF  s#     2
fb5r   basec                     t        dd      }|j                  |      }t        j                  ddg      }t	        j
                  ||       y )Nr   r   TF)r   isinr   r   r   r   )r   r   r|   r   r    s        r   test_isin_rangezTestRangeIndex.test_isin_rangeU  s@     Aq!6"88T5M*
##FH5r   c                 >   ddddddt        ddd      }|j                  fd      }t        g d	d
      }t        j                  ||d       |j                         }|j                  fd      }t        j                  ||j                         d       y )Nr
   r   r   rX   r   )r   rm   rK   r
   r   c                 &    | j                        S r5   mapx
sort_orders    r   <lambda>z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>a  s    !%%
2C r   )r%   )rm   r   rK   r
   r   r   r   T)check_exactc                 &    | j                        S r5   r  r  s    r   r  z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>g  s    j0A r   )r   sort_valuesr   r   rH   	to_seriesassert_series_equal)r   r|   r   r    serr   r  s         @r   test_sort_values_keyz#TestRangeIndex.test_sort_values_key]  s    qQ2"5
Ar1%##(C#D8
fhDA  //&A/B
w(:(:(<$Or   c                 j    dt        ddd      z
  }t        ddd      }t        j                  ||       y )Nr   r   rK   r   rE   )r   r   rH   r   s      r   test_range_index_rsub_by_constz-TestRangeIndex.test_range_index_rsub_by_constj  s3    Z1a((aR(
fh/r   N)5__name__
__module____qualname__r,   fixturer   r!   r&   r2   markparametrizer   r6   rA   rI   rU   r\   r^   rd   rh   rk   rq   rs   ru   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   setr>   r   r   r   r   r   r   r   r  r   r   r   r   r      s   ^^4 4<
F
.
 [["]Aq!$1q!Q'"Aq!,1a !Q*		
""$5"0"	<
<*"<<	<	<	<	<)'JCX!?F [[1a *QA"67]Jq"a011a *Q1"562r"Jq#r$:;		
""-
Q,' [[ "		
**
*
8( [[QRae<Rbr>	
 +&  ((!$5Dn [[VSr1%6!%<=	 >	 [[B"#Z2q%9:Aq!"Jq!Q$78A
1a 01:a3CDAq!:a#34jAq6IJAq!:aA#67Aq!9LMQ"Jq!Q$78*RA:NOR *R"56
1a8HIR *Q"34jA6FGR *Q"23Z15EFR *Q"23U>5JKnjA./Aq1ABmZ]+U<-@AmZ1-z!Q/BCZPQSTEUVA
1a 0*Q12EFo&
 B"Jq!$4jAq6IJ2q! mU;/0%8L2MNmU?34e<T6UVmU?34e<T6UVAo 679OP3	
<A=<A+,7 [[q"b!q!Qq!Qq"b!r2r"	
	6	6
 [[VjA&6q!f%FG6 H6P0r   r   )numpyr   r,   pandas.core.dtypes.commonr   pandasrP   r   r   pandas._testing_testingr   r   r  r   r   <module>r     s'      9  `	0 `	0r   