
    A>iG                        S r SSKJrJr  SSKrSSKrSSKrSSKJr  SSK	J
r
  SSKJrJr  SSKrSSKJrJrJrJr  SSKJr   " S S	5      r\R0                  R3                  S
5      \R0                  R5                  SSS/5      S 5       5       r\R0                  R3                  S
5      \R0                  R5                  SSS/5      S 5       5       rS rS rS rS r S r!S r"g)z
Collection of tests asserting things that should be true for
any index subclass except for MultiIndex. Makes use of the `index_flat`
fixture defined in pandas/conftest.py.
    )copydeepcopyN)IS64)Pandas4Warning)is_integer_dtypeis_numeric_dtype)CategoricalIndex
MultiIndexPeriodIndex
RangeIndexc                   h   \ rS rSr\R
                  R                  SSS/5      S 5       rS rS r	S r
S	 rS
 r\R
                  R                  S 5       rS rS rS rS rS r\R
                  R)                  S5      \R
                  R)                  S5      S 5       5       r\R
                  R)                  S5      S 5       r\R
                  R)                  S5      S 5       rS r\R
                  R)                  S5      S 5       r\R
                  R                  S/ SQ5      S 5       rS rSrg)
TestCommon"   nameNnew_namec                 (   UnU(       a  UnOUR                   =(       d    SnUR                  US9nUR                  UL d   e[        UR                  5      S:X  d   eUR                  S   U:X  d   eUR                  SUS9nUR                  ULd   eg )Nr   r      F)indexr   )r   to_framer   lencolumns)selfr   
index_flatidxidx_namedfs         _/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/indexes/test_common.pytest_to_frameTestCommon.test_to_frame#   s     Hxx}1H\\x\(xx32::!###zz!}(((\\H\5xxs"""    c                 $   UnUR                  / 5      R                  U5      (       d   eUR                  UR                  /4 Hg  n[        UR                  [        5      (       a  X2R                  L a  M2  Sn[
        R                  " [        US9   UR                  U5        S S S 5        Mi     SS/4 H6  n[
        R                  " [        SS9   UR                  U5        S S S 5        M8     g ! , (       d  f       M  = f! , (       d  f       M\  = f)NzTCannot remove 1 levels from an index with 1 levels: at least one level must be left.matchwrongz>'Requested level \(wrong\) does not match index name \(None\)')		droplevelequalsr   
isinstancetuplepytestraises
ValueErrorKeyError)r   r   r   levelmsgs        r   test_droplevelTestCommon.test_droplevel6   s     r"))%0000jj5::,/E%**e,,**1D&  z5& 65 0 wi'EW &	  ( 65 s   C.D .
C=	 
D	c                    UnSnS//n[         R                  " [        US9   UR                  US9  S S S 5        [         R                  " [        US9   UR	                  US9  S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)Nz"Index.name must be a hashable type1r#   r   )names)r*   r+   	TypeErrorrename	set_names)r   r   r   messagerenameds        r   "test_constructor_non_hashable_name-TestCommon.test_constructor_non_hashable_nameO   sp    65' ]]9G4LLgL& 5 ]]9G4OO'O* 54	 54 54s   A,A=,
A:=
Bc                     Un[        U5      " X"R                  S9n[        R                  " UR                  UR                  5        g )Ndtype)typer>   tmassert_equal_data)r   r   abs       r   test_constructor_unwraps_index)TestCommon.test_constructor_unwraps_index^   s1     GAWW%
)r!   c                 T    UnUR                  5       n[        R                  " X25        g N)to_flat_indexr@   assert_index_equal)r   r   r   results       r   test_to_flat_indexTestCommon.test_to_flat_indexe   s#    $$&
f,r!   c                    UnSnUR                   nUR                  U/5      nUR                   U:X  d   eUR                   U:X  d   eUR                  USS9nUb   eUR                   U:X  d   eUR                  U/:X  d   e[        R
                  " [        SS9   UR                  SSS9  S S S 5        S	nUR                  USS9  UR                   U:X  d   eUR                  U/:X  d   eg ! , (       d  f       NF= f)
Nz#This is the new name for this indexTinplacezLevel must be Noner#   rC   r   r.   )AB)r   r7   r6   r4   r*   r+   r,   )r   r   r   r   original_namenew_indresr   s           r   test_set_name_methods TestCommon.test_set_name_methodsl   s    8

//8*-||x'''zz]***ll8Tl2 {{zzX%%%{{xj(((]]:-ABOOCqO) C T4(zzT!!!{{tf$$$ CBs   C++
C9c                     [         R                  " [        SS9   UR                  S5        S S S 5        g ! , (       d  f       g = f)Nz	list-liker#   rC   )r*   r+   r5   r7   )r   r   s     r   $test_set_names_single_label_no_level/TestCommon.test_set_names_single_label_no_level   s*    ]]9K8  % 988s	   5
Ac                     Un[         [        4 H)  nU" U5      nXBLd   eUR                  U5      (       a  M)   e   UR                  SSS9nUR                  S:X  d   eg )NTbanana)deepr   )r   r   r'   r   )r   r   r   funcidx_copynew_copys         r   test_copy_and_deepcopy!TestCommon.test_copy_and_deepcopy   sf    8$DE{H(((??5)))) %
 ::4h:7}}(((r!   c                    Un[        U5      " USSS9n[        U5      " USS9nX4Ld   e[        R                  " X45        UR                  U5      (       d   eUR                  S:X  d   eUR                  S:X  d   e[
        R                  " SUS9n[
        R                  " SUS S	 S9nXV-  nUR                  R                  S:X  d   eg )
NTmario)r   r   F)r      )r      )r?   r@   rJ   r'   r   pdSeriesr   )r   r   r   firstseconds1s2s3s           r   test_copy_nameTestCommon.test_copy_name   s     UE7;eU/ """
e, ||E""""zzW$$${{g%%% YYq&YYqs,Wxx}}'''r!   c                    UnUR                  SS9R                  S:X  d   e[        R                  " [        SS9   UR                  SS/S9  S S S 5        [        U5      R                   S3n[        R                  " [        US9   UR                  S//S9  S S S 5        g ! , (       d  f       NZ= f! , (       d  f       g = f)Nre   r   z$Length of new names must be 1, got 2r#   luigiz.name must be a hashable type)r   r   r*   r+   r,   r?   __name__r5   )r   r   r   r/   s       r   test_copy_name2TestCommon.test_copy_name2   s    zzwz',,777]]:-STJJWg.J/ U e%%&&CD]]9C0JJgYKJ( 10	 UT 10s   B!B2!
B/2
C c                    UnUR                  5       nSUR                  S 4 H(  nUR                  US9n[        R                  " XS5        M*     Sn[
        R                  " [        US9   UR                  SS9  S S S 5        S[        R                  " UR                  R                  5       5       S3n[
        R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       Nr= f! , (       d  f       g = f)	Nr   rQ   z.Too many levels: Index has only 1 level, not 4r#   rg   z6Requested level \(wrong\) does not match index name \(z\)r%   )drop_duplicatesr   uniquer@   rJ   r*   r+   
IndexErrorreescape__repr__r-   )r   r   r   expectedr.   rK   r/   s          r   test_unique_levelTestCommon.test_unique_level   s     ((*T*E\\\.F!!&3 + ?]]:S1LLqL! 2))EJJ//12327 	 ]]83/LLwL' 0/ 21 0/s   )C%C6%
C36
Dc                 \   Un[        U5      (       d  [        R                  " S5        US/S-     nUS/   nUR                  SL d   e UR                  SL d   e UR                  5       n[        R                  " XT[        U[        5      (       + S9  UR                  (       d  [        R                  " S5        UR                  R                  5       S/S-     n[        R                  US'   US S nUR!                  U5      nUR!                  U5      n	U	R                  SL d   eUR"                  UR"                  :X  d   eU	R"                  UR"                  :X  d   eU	n
[%        X/5       H+  u  pUR                  5       n[        R                  " XZ5        M-     g ! [
         a     GNNf = f)	Nz)Skip check for empty Index and MultiIndexr      TFexactz%Skip na-check if index cannot hold narf   )r   r*   skip	is_uniquehasnansNotImplementedErrorry   r@   rJ   r(   r   _can_hold_na_valuesr   npnan_shallow_copyr>   	enumerate)r   r   r   r   
idx_uniquerK   valsvals_uniqueidx_nanidx_unique_nanr~   posis                r   test_uniqueTestCommon.test_unique   s   5zzKKCDQC!GnA3Z
 ##t+++	%%... 
*UJ*G&G	

 !!KK?@}}!!#QC!G,&&Q2Ah%%d+,,[9''4///}}+++##u{{222! 9:FCXXZF!!&3 ;1 # 		s   
F 
F+*F+z*ignore:Period with BDay freq:FutureWarning3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                    Un[        U[        R                  5      (       a3  [        R                  R                  S[        S9nUR                  U5        UR                  (       a  [        R                  " S5        US   nSX5:H  R                  5       pvUS:X  a  [        U5      nUR                  (       d  UR                  (       a]  UR                  USS9nXh:X  d   eUR                  USS9n	Xy:X  d   eUR                  USS9n
Xj:X  d   eUR                  USS9nX{:X  d   eg Sn[        R                   " ["        US	9   UR                  USS9  S S S 5        g ! , (       d  f       g = f)
Nz8IntervalIndex.searchsorted does not support Interval arg)reasonr+   zSkip check for empty Indexr   left)siderightz0index must be monotonic increasing or decreasingr#   )r(   ri   IntervalIndexr*   markxfailr   applymarkeremptyr   argminr   is_monotonic_increasingis_monotonic_decreasing_searchsorted_monotonicsearchsortedr+   r,   )r   r   requestr   r   valueexpected_leftexpected_rightssm_left	ssm_rightss_leftss_rightr/   s                r   test_searchsorted_monotonic&TestCommon.test_searchsorted_monotonic   s[     eR--..;;$$Q* % D % ;;KK45a )*EN+B+B+D~Q ZN((E,I,I44U4HH ,,,55e'5JI!...((V(<G +++))%g)>H!--- ECz5--e&-A 655s   ?E
E'c                     Un[        U[        5      (       a  [        R                  " S5        [	        U5      S:X  a  [        R                  " S5        [        U5      n[        [        U5      5      n[        U5      (       a  UR                  OS nU" XVS9n[	        U5      n[        R                  R                  S5      R                  U[        US-  5      5      n	U" UR                  U	   5      n
[         R"                  " U	5      R%                  US9R                  n[&        R(                  " U
R%                  US9U5        U" [         R"                  " U
5      R+                  US95      n[&        R,                  " U
R+                  US9U5        g )NzWRangeIndex is tested in test_drop_duplicates_no_duplicates as it cannot hold duplicatesr   zXempty index is tested in test_drop_duplicates_no_duplicates as it cannot hold duplicatesr=   rf   g      ?)keep)r(   r   r*   r   r   r?   listsetr   r>   r   randomdefault_rngchoiceintvaluesri   rj   
duplicatedr@   assert_numpy_array_equalrx   rJ   )r   r   r   r   holderunique_valuesr>   
unique_idxnduplicated_selectionr   expected_duplicatedexpected_droppeds                r   test_drop_duplicatesTestCommon.test_drop_duplicates%  sP    eZ((KK/ u:?KK/ eSZ(/66DM7
 
O!yy44Q7>>q#a#g,OZ&&';<= II*+66D6AHH 	 	##CNNN$=?RS ""))C."@"@d"@"KL
c11t1<>NOr!   c                    Un[        U[        5      (       a  UnOC[        U5      n[        [	        U5      5      n[        U5      (       a  UR                  OS nU" XVS9n[        R                  " S/[        U5      -  SS9n[        R                  " UR                  5       U5        UR                  5       n[        R                  " X5        XLd   eg )Nr=   Fbool)r(   r   r?   r   r   r   r>   r   arrayr   r@   r   r   rx   rJ   )	r   r   r   r   r   r   r>   r   result_droppeds	            r   "test_drop_duplicates_no_duplicates-TestCommon.test_drop_duplicates_no_duplicatesI  s      eZ((J%[F U,M#3E#:#:EKKE;J !hhwZ'@O
##J$9$9$;=PQ#335
n9///r!   c                     Sn[         R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nz6drop_duplicates\(\) got an unexpected keyword argumentr#   TrO   )r*   r+   r5   rx   )r   r   r/   s      r   test_drop_duplicates_inplace'TestCommon.test_drop_duplicates_inplace`  s2    G]]9C0!!$!/ 100s	   5
Ac                     Un[        U5      n[        U5      (       a  [        U[        5      (       a  [        R
                  " S5        U" US   /S-  5      nUR                  SL d   eUR                  SL d   eg )Nz6Skip check for empty Index, MultiIndex, and RangeIndexr   r   FT)r?   r   r(   r   r*   r   r   has_duplicates)r   r   r   r   r   s        r   test_has_duplicatesTestCommon.test_has_duplicatese  sp     e5zzZz:: KKPQeAhZ!^$}}%%%!!T)))r!   r>   )int64uint64float64categoryzdatetime64[ns]ztimedelta64[ns]c                    [        U[        5      (       a8  [        UR                  5       Vs/ s H  nS[	        U5      -   PM     snUl        OSUl        UR                  R                  S:X  a   US;   a  [        R                  R                  OS n[	        UR                  5      S:H  =(       a    US:H  n [        R                  " UUSS9   UR                  U5      nS S S 5        [        U[        5      (       a  WR
                  UR
                  :X  d   eg WR                  UR                  :X  d   eg s  snf ! , (       d  f       Nb= f! [        [         ["        [$        4 a     g f = f)Nr   c)r   r   r   zstring[pyarrow]r   F)raise_on_extra_warningscheck_stacklevel)r(   r
   rangenlevelsstrr4   r   r>   kindr   
exceptionsComplexWarningr@   assert_produces_warningastyper,   r5   r   SystemError)r   r   r>   r   warnis_pyarrow_strrK   s          r   test_astype_preserves_name%TestCommon.test_astype_preserves_nameu  s.    eZ((383GH3Ga53q6>3GHEKEJ {{3&54R+R MM(( 	 U[[)->>V5JCV		++(6!&
 e, eZ((<<5;;...;;%**,,,3 I  I':KH 		s5   D56E D:E :
EE E E('E(c                    UnUR                  SS9n[        R                  " S/[        U5      -  [        S9n[
        R                  " UR                  U5        UR                  SL d   eUR                  SS9nUR                  n[        U5      S:X  a  g [        UR                  5      (       a  g UR                  [        :X  a  g [        R                  US'   [        U5      " U5      n[        R                  " S/[        U5      -  [        S9nSUS'   [
        R                  " UR                  U5        UR                  SL d   eg )NT)r^   Fr=   r   r   )r   r   r   r   r   r@   r   _isnanr   r   r   r>   r   r?   )r   r   r   r   r~   r   s         r   test_hasnans_isnansTestCommon.test_hasnans_isnans  s    jjdj#88UGc#h.d;
##CJJ9{{e###jjdj#u:?ekk**[[D FFq	5k&!88UGc#h.d;
##CJJ9{{d"""r!    )rt   
__module____qualname____firstlineno__r*   r   parametrizer   r0   r:   rE   rL   rW   r   rZ   rb   rp   ru   r   r   filterwarningsr   r   r   r   r   r   r   __static_attributes__r   r!   r   r   r   "   sa   [[VdJ%78# 9#$'2+*-%0 [[& &
	)(2)(*(4T [[ LM[[ VW'B X N'BR [[ VW!P X!PF [[ VW0 X0,0
 [[ VW* X* [[W-	-<#r!   r   r   na_positionmiddlec                     [         R                  " [        SU 3S9   U R                  US9  S S S 5        g ! , (       d  f       g = f)Nzinvalid na_position: r#   r   )r*   r+   r,   sort_values)index_with_missingr   s     r   $test_sort_values_invalid_na_positionr     s8     
z+@)N	O&&;&? 
P	O	Os	   6
Ark   lastc                 .   [        U [        5      (       a-  UR                  [        R                  R                  SSS95        [        R                  " U R                  5       5      nX R                  5          R                  n[        R                  " U5      nUS:X  a  [        R                  " S /U-  U/5      nO[        R                  " US /U-  /5      n[        U 5      " XPR                  S9nU R                  US9n[         R"                  " Xv5        g )Nz,missing value sorting order not well-definedF)r   strictrk   r=   r   )r(   r	   r   r*   r   r   r   sumisnanotnar   sortconcatenater?   r>   r   r@   rJ   )r   r   r   missing_countnot_na_valssorted_valuesr~   rK   s           r   test_sort_values_with_missingr    s     $&677KKEe  	
 FF-2245M$%=%=%?@GGKGGK(Mg(>'NOv7M'NO &'=U=UVH+++DF&+r!   c                     ^ S m[         R                  " / SQ5      n [         R                  " / SQ5      nU R                  U4S jS9n[        R                  " X!5        g )Nc                 D    [        S U R                  S5       5       5      $ )Nc              3   8   #    U  H  n[        U5      v   M     g 7frH   )r   ).0xs     r   	<genexpr>Ftest_sort_values_natsort_key.<locals>.split_convert.<locals>.<genexpr>  s     2\SVV\s   .)r)   split)ss    r   split_convert3test_sort_values_natsort_key.<locals>.split_convert  s    2QWWS\222r!   )1.92.01.111.10)r  r  r  r  c                 .   > [        [        TU 5      5      $ rH   )r)   map)r
  r  s    r   <lambda>.test_sort_values_natsort_key.<locals>.<lambda>  s    5]A1F+Gr!   )key)ri   Indexr   r@   rJ   )r   r~   rK   r  s      @r   test_sort_values_natsort_keyr    sG    3 ((1
2Cxx67H__!G_HF&+r!   c                 v   [        U [        5      (       a!  [        (       d  [        R                  " S5        U nUR
                  R                  U5      (       d   eUR                  5       R                  U5      (       d   eUR                  nUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   e[        U [        [        45      (       d  UR                  UR                  :X  d   eUR                    UR                  R                    g )NOverflow)r(   r   r   r*   r   Tr'   	transposer   shapendimsizer   r
   nbytes)r   r   r   s      r   test_ndarray_compat_propertiesr%    s    %%%ddJ
C55<<==?!!#&&&&ZZF99$$$88v{{"""88v{{"""ej*566zzV]]*** JJJJr!   c                      [         R                  " / [        S9n SU R                  l        [
        R                  " U 5      nUS:  nUR                  [        :X  d   eg )Nr=   FE   )	r   r   objectflags	writeableri   r  r>   r   )arrr   rK   s      r   test_compare_read_only_arrayr,    sF    
((2V
$CCII
((3-C2XF<<4r!   c                      [         R                  " S/5      n U R                  5       R                  n[	        S5      n[
        R                  " XSS9  g )Nr   Tr   )ri   r  r   r   r   r@   rJ   r   rK   r~   s      r   test_to_frame_column_rangeindexr/    s;    
((A3-C\\^##F!}H&$7r!   c                      [         R                  " S/5      n U R                  SS9n[         R                  " S/[        R
                  " S/S//5      U S9n[        R                  " X5        g )Nr   )r   rf   r   rf   )r   r   )ri   r  r   	DataFramer
   from_arraysr@   assert_frame_equalr.  s      r   #test_to_frame_name_tuple_multiindexr4  
  sW    
((A3-C\\v\&F||QC)?)?!qc
)KSVWH&+r!   c                      [         R                  " SS/5      n [         R                  " / SQ5      n[        R                  " [
        SS9   U R                  U5        S S S 5        g ! , (       d  f       g = f)Nr   rf   )r   rf   rf   zPassing .* to .* is deprecatedr#   )ri   r  rj   r@   r   r   join)r   sers     r   test_join_series_deprecatedr8    sS    
((Aq6
C
))I
C		#	#>
 	
 
 
s   
A%%
A3)#__doc__r   r   r{   numpyr   r*   pandas.compatr   pandas.errorsr   pandas.core.dtypes.commonr   r   pandasri   r	   r
   r   r   pandas._testing_testingr@   r   r   r   r   r   r  r  r%  r,  r/  r4  r8  r   r!   r   <module>rA     s    
    (
   Q# Q#h RSx(89@ : T@
 RS&(9:, ; T,4,, 8,r!   