
    A>im9                         S r SSKJrJrJr  SSKJr  SSKrSSKrSSK	J
r
  SSKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SSKJr   " S S5      r " S	 S
5      r  " S S5      r! " S S5      r"g)z7
Tests for the Index constructor conducting inference.
    )datetime	timedeltatimezone)DecimalN)maybe_get_tz)NACategoricalCategoricalIndexDatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodIndexSeriesTimedeltaIndex	Timestamparray
date_rangeperiod_rangetimedelta_rangec            
       `   \ rS rSrS rS r\R                  R                  S\	S\
R                  \" S5      /5      S 5       r\R                  R                  SS\
R                  /5      \R                  R                  S	\\\/5      S
 5       5       rS r\R                  R                  SSS/5      \R                  R                  S/ SQ\
R&                  " / SQ\S9/5      S 5       5       rS rS rS r\R                  R                  SSS/5      \R                  R                  S\S\
R4                  " S5      4\S\
R8                  " S5      4/5      S 5       5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      S  5       rS! r S"r!g)#TestIndexConstructorInference&   c                     [         R                  " SS/[        S9n[        U5      nUR                  [        :X  d   e[        U5      R                  [        :X  d   eg )NTFdtype)npr   objectr   r   r   selfarrress      b/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/indexes/test_index_new.pytest_object_all_bools3TestIndexConstructorInference.test_object_all_bools'   sK    hhe}F3CjyyF""" c{  F***    c                     [         R                  " [        S5      [        S5      /[        S9n[	        U5      nUR
                  [        :X  d   e[        U5      R
                  [        :X  d   eg )N      r   )r   r   complexr   r   r   r   r    s      r$   test_object_all_complex5TestIndexConstructorInference.test_object_all_complex0   sT    hh
GAJ/v>CjyyF""" c{  F***r'   valNnanc                    [         U/n[        U5      nUR                  S:X  a#  UR                  5       R	                  5       (       d   e[        US S S2   5      nUR                  S:X  a#  UR                  5       R	                  5       (       d   e[        [
        R                  " U[        S95      nUR                  S:X  a#  UR                  5       R	                  5       (       d   e[        [
        R                  " U[        S9S S S2   5      nUR                  S:X  a#  UR                  5       R	                  5       (       d   eg )Nzdatetime64[s]r   )r   r   r   isnaallr   r   r   )r!   r.   valuesidxs       r$   test_infer_nat,TestIndexConstructorInference.test_infer_nat9   s     sFmyyO+
0@0@@@F4R4L!yyO+
0@0@@@BHHV623yyO+
0@0@@@BHHV624R489yyO+
0@0@@@0@r'   na_valuevtypec                     SSU4/n[        U" U5      5      n[        R                  " U5      n[        R                  " XE5        g )N)r)   two      @)r   r   from_tuplestmassert_index_equal)r!   r8   r9   r4   resultexpecteds         r$   !test_construction_list_tuples_nan?TestIndexConstructorInference.test_construction_list_tuples_nanK   s>     sHo.uV}%))&1
f/r'   c                 `    [        / SQUS9n[        / SQUS9n[        R                  " X25        g )N)r   r)   r*      r   )g              ?       @r<   r   r>   r?   )r!   any_int_numpy_dtyperA   r@   s       r$    test_constructor_int_dtype_float>TestIndexConstructorInference.test_constructor_int_dtype_floatT   s+    -@A+3FG
f/r'   
cast_indexTFvals)TFTr   c                     U(       a  [        U[        S9nO[        U5      n[        U5      [         L d   eUR                  [        :X  d   eg Nr   )r   booltyper   r!   rL   rM   indexs       r$   !test_constructor_dtypes_to_object?TestIndexConstructorInference.test_constructor_dtypes_to_objectZ   s@    
 $d+E$KEE{e###{{d"""r'   c                 v    [        [        S5      5      n[        U[        S9n[	        U[         5      (       a   eg N   r   )r
   ranger   r   
isinstance)r!   cir@   s      r$   &test_constructor_categorical_to_objectDTestIndexConstructorInference.test_constructor_categorical_to_objectg   s3    eAh'r(f&677777r'   c                     [        SSSS9n[        U5      n[        R                  " X!5        [	        U[
        5      (       d   eg )Nz2012-1-1MrE   )freqperiods)r   r   r>   r?   rZ   r   )r!   xprss      r$   "test_constructor_infer_periodindex@TestIndexConstructorInference.test_constructor_infer_periodindexm   s:    *3:2Y
b%"k****r'   c                 t    [        SSSS9n[        U5      n[        U5      n[        U[        5      (       d   eg )N1/1/2000   Dra   r`   )r   listr   rZ   r   )r!   rngra   r@   s       r$   test_from_list_of_periods7TestIndexConstructorInference.test_from_list_of_periodss   s5    :r<s)w&+....r'   posr   r)   zklass,dtype,ctordatetime64[ns]natztimedelta64[ns]c                    [        U[        5      (       a-  [        R                  " S[	        U5      R
                   S35        U" [        [        /5      nUS   S:X  a  UR                  S5      nUS   S:X  a  UR                  S5      nUR                  U:X  d   eU/nUR                  X5        U[        L aC  [        [        [        /5      n[        R                  R                  SS	9n	UR                  U	5        [        U5      n
[        R                   " X5        [        ["        R$                  " U[&        S
95      n
[        R                   " X5        g )NzWe don't cast z to datetime64/timedelta64r   dzM8[ns]tzm8[ns]z%Broken with np.NaT ctor; see GH 31884)reasonr   )rZ   r   pytestskiprQ   __name__r   astyper   insertr   r   markxfailapplymarkerr>   r?   r   r   r   )r!   ro   klassr   ctornulls_fixturerequestrA   datar{   r@   s              r$   "test_constructor_infer_nat_dt_like@TestIndexConstructorInference.test_constructor_infer_nat_dt_likez   s    mW--KK m!4!=!= > ?) )
 #s$8s?x0H8s?x0H~~&&&vC'Bb#Y'H;;$$,S$TD%t
f/rxxF34
f/r'   	swap_objsc           	      D   [         R                  " S5      [         R                  " S5      /nU(       a  US S S2   n[        U[        S9n[
        R                  " [        U5      U5        [
        R                  " [        [         R                  " U[        S95      U5        g )Nrq   r1   r   )r   
datetime64timedelta64r   r   r>   r?   r   r!   r   r   rA   s       r$   -test_constructor_mixed_nat_objs_infers_objectKTestIndexConstructorInference.test_constructor_mixed_nat_objs_infers_object   sp     e$bnnU&;<":DV,
eDk84
eBHHT$@A8Lr'   c           	      0   [        SSSSS5      [        R                  " S5      /nU(       a  US S S2   n[        U5      n[        R
                  " [        U5      U5        [        R
                  " [        [        R                  " U[        S95      U5        g )	Ni        	   *   nowr1   r   )	r   r   r   r   r>   r?   r   r   r   r   s       r$   (test_constructor_datetime_and_datetime64FTestIndexConstructorInference.test_constructor_datetime_and_datetime64   sp    $1a,bmmE.BC":D &
eDk84
eBHHT$@A8Lr'   c                     [        S5      n[        SSSUS9n[        SSS[        R                  S9n[	        X#/5      n[	        X#/[
        S9n[        R                  " XE5        g )Nz
US/Centrali  r)   )tzinfor   )r   r   r   utcr   r   r>   r?   )r!   tzdt1dt2r@   rA   s         r$   $test_constructor_datetimes_mixed_tzsBTestIndexConstructorInference.test_constructor_datetimes_mixed_tzs   sX    ,'tQ"-tQ(,,7z"#62
f/r'    )"rx   
__module____qualname____firstlineno__r%   r,   rv   r{   parametrizer   r   r/   floatr6   rk   tupleiterrB   rJ   r   rP   rT   r\   rd   rm   r   r   r   r   r   r   r   r   __static_attributes__r   r'   r$   r   r   &   s   ++ [[US$e$EFA GA" [[Z$8[[WtUD&9:0 ; 900 [[\D%=9[[$bhh/B$&OP# :#8+/ [[UQF+[[,bmmE.BC.u0EF	
 0 , 0D [[[4-8M 9M [[[4-8M 9M0r'   r   c                   ~   \ rS rSrS r\R                  R                  S\SSS/5      S 5       r	\R                  R                  S\SSS/5      S 5       r
S	 rS
 rS rS rS rS r\R                  R                  SSS/5      S 5       r\R                  R                  S/ SQ\R&                  " / SQ5      \R&                  " / SQ\S9/ SQ\R&                  " / SQ\S9/5      S 5       r\R                  R                  S/ SQ/ SQ\R&                  " / SQ5      \R&                  " / SQ\S9\R&                  " / SQ\S9/5      S 5       r\R                  R                  S/ SQ\R&                  " / SQ\S9\R&                  " SS/SS9\" SSS5      \" SSS5      //5      S 5       r\R                  R                  SSS /5      \R                  R                  S\R&                  " \R4                  " S5      \R4                  " S5      /5      \" SSS5      \" SSS5      //5      S! 5       5       r\R                  R                  SSS /5      \R                  R                  S\R&                  " \R8                  " SS"5      \R8                  " SS"5      /5      \" S5      \" S5      //5      S# 5       5       rS$ rS% r S&r!g')(TestDtypeEnforced   c                 b    [        S/US9n[        U[        S9nUR                  [        :X  d   eg )Nr   r   )r   r   r   r   )r!   any_numeric_ea_dtyper"   r5   s       r$   *test_constructor_object_dtype_with_ea_data<TestDtypeEnforced.test_constructor_object_dtype_with_ea_data   s/    QC34Cv&yyF"""r'   r   float64uint64categoryc                     [        [        S5      5      n[        X!S9nUR                  U:X  d   e[        [        S5      US9nUR                  U:X  d   eg rW   )r   rY   r   )r!   r   rl   r@   s       r$   .test_constructor_range_values_mismatched_dtype@TestDtypeEnforced.test_constructor_range_values_mismatched_dtype   sM    E!Hos(||u$$$uQxu-||u$$$r'   c                 T    [        / SQ5      n[        X!S9nUR                  U:X  d   eg )Nr)   r*   rE   r   )r	   r   r   )r!   r   catr@   s       r$   ;test_constructor_categorical_values_mismatched_non_ea_dtypeMTestDtypeEnforced.test_constructor_categorical_values_mismatched_non_ea_dtype   s(    )$s(||u$$$r'   c                    [        SSS9n[        U5      n[        X!R                  5      n[        R
                  " X15        UR                  S5      n[        U5      n[        XTR                  5      n[        R
                  " X45        [        R                  " [        S5      5      n[        U5      n[        XvR                  S9n[        R
                  " X65        g )N
2016-01-01rE   ra   z
Asia/TokyorX   r   )
r   r	   r   r   r>   r?   tz_localizer   from_breaksrY   )r!   dtir   r@   dti2cat2iicat3s           r$   4test_constructor_categorical_values_mismatched_dtypeFTestDtypeEnforced.test_constructor_categorical_values_mismatched_dtype   s    q1#sII&
f*|,4 tZZ(
f+&&uQx02t88,
f)r'   c                     [        SSS9n[        USS9n[        U5      n[        R                  " X#5        [        SSSS9n[        USS9n[        U5      n[        R                  " X#5        g )Nr   rE   r   r   r   z
US/Pacific)ra   r   )r   r   r
   r>   r?   )r!   r   r@   rA   r   s        r$   7test_constructor_ea_values_mismatched_categorical_dtypeITestDtypeEnforced.test_constructor_ea_values_mismatched_categorical_dtype   sd    q1s*-#C(
f/,lCt:.#D)
f/r'   c                 p    [        SSSS9n[        USS9n[        U5      n[        R                  " X#5        g )Nr   rE   ri   rj   r   r   )r   r   r
   r>   r?   )r!   pir@   rA   s       r$   /test_constructor_period_values_mismatched_dtypeATestDtypeEnforced.test_constructor_period_values_mismatched_dtype   s4    ,<r,#B'
f/r'   c                 n    [        SSS9n[        USS9n[        U5      n[        R                  " X#5        g )Nz4 DaysrX   r   r   r   )r   r   r
   r>   r?   )r!   tdir@   rA   s       r$   4test_constructor_timedelta64_values_mismatched_dtypeFTestDtypeEnforced.test_constructor_timedelta64_values_mismatched_dtype   s2    h2s*-#C(
f/r'   c                     [        SSS9n[        R                  " U5      n[        USS9n[	        U5      n[
        R                  " X45        g )Nr   rE   r   r   r   )r   r   r   r   r
   r>   r?   )r!   r   r   r@   rA   s        r$   1test_constructor_interval_values_mismatched_dtypeCTestDtypeEnforced.test_constructor_interval_values_mismatched_dtype  sB    q1&&s+r,#B'
f/r'   c                 z    [        SSS9n[        USS9nUR                  S5      n[        R                  " X#5        g )Nr   rE   r   z	Period[D]r   ri   )r   r   	to_periodr>   r?   )r!   r   r@   rA   s       r$   :test_constructor_datetime64_values_mismatched_period_dtypeLTestDtypeEnforced.test_constructor_datetime64_values_mismatched_period_dtype  s6    q1s+.==%
f/r'   int64c                     [         R                  /nSn[        R                  " [        US9   [        X!S9  S S S 5        g ! , (       d  f       g = f)Nzcannot convertmatchr   )r   r/   rv   raises
ValueErrorr   )r!   r   r   msgs       r$   %test_constructor_int_dtype_nan_raises7TestDtypeEnforced.test_constructor_int_dtype_nan_raises  s6     x]]:S1$$ 211s   
A  
ArM   r   r   )rF   rG   r<   c                 >    Un[        XS9nUR                  U:X  d   eg rO   r   r   )r!   rM   rI   r   rS   s        r$   test_constructor_dtypes_to_int0TestDtypeEnforced.test_constructor_dtypes_to_int  s%     $d({{e###r'   c                 >    Un[        XS9nUR                  U:X  d   eg rO   r   )r!   rM   float_numpy_dtyper   rS   s        r$    test_constructor_dtypes_to_float2TestDtypeEnforced.test_constructor_dtypes_to_float+  s%     "d({{e###r'   z
2011-01-01z
2011-01-02rp   i  r)   r*   c                 F    [        USS9n[        U[        5      (       d   eg )Nr   r   )r   rZ   r
   )r!   rM   rS   s      r$   &test_constructor_dtypes_to_categorical8TestDtypeEnforced.test_constructor_dtypes_to_categorical:  s$     d*-%!12222r'   rL   TFc                     [        U5      nU(       a<  [        U[        S9n[        U[         5      (       d   eUR                  [        :X  d   eg [        U5      n[        U[        5      (       d   eg rO   )r   r   rZ   r   r   rR   s       r$   #test_constructor_dtypes_to_datetime5TestDtypeEnforced.test_constructor_dtypes_to_datetimeG  s]     T{$f-EeU++++;;&((($KEe]3333r'   ri   c                     U(       a<  [        U[        S9n[        U[         5      (       d   eUR                  [        :X  d   eg [        U5      n[        U[        5      (       d   eg rO   )r   r   rZ   r   r   rR   s       r$   $test_constructor_dtypes_to_timedelta6TestDtypeEnforced.test_constructor_dtypes_to_timedeltaY  sT     $f-EeU++++;;&((($KEe^4444r'   c                     [        SS5      n[        U[        S9n[        UR                  5       [        S9n[        R
                  " UR                  UR                  5        g )Nz1 daysz10 daysr   )r   r   r   to_pytimedeltar>   assert_numpy_array_equalr4   r!   rl   r5   rA   s       r$   !test_pass_timedeltaindex_to_index3TestDtypeEnforced.test_pass_timedeltaindex_to_indexj  sG    h	2Cv&++-V<
##CJJ@r'   c                     [        SS5      n[        U[        S9n[        UR                  5       [        S9n[        R
                  " UR                  UR                  5        g )Nrg   z3/1/2000r   )r   r   r   to_pydatetimer>   r   r4   r   s       r$    test_pass_datetimeindex_to_index2TestDtypeEnforced.test_pass_datetimeindex_to_indexr  sG    Z0Cv&**,F;
##CJJ@r'   r   N)"rx   r   r   r   r   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   intr   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   r$   r   r      s   # [[Wvy(J&OP% Q% [[Wvy(J&OP% Q%* 	00000 [[Ww&9:% ;% [[HHYHHYc*HH_E2	

$
$
 [[HH_%HHYc*HH_E2	
	$	$
 [[HHYc*HHlL19IJdAq!8D!Q#78		
33 [[\D%=9[[HHbmmL12==3NOPdAq!8D!Q#78	
4 :4 [[\D%=9[[HHbnnQ,bnnQ.DEFq\9Q<(	
5 :5AAr'   r   c            
          \ rS rSr\R
                  R                  S\\/5      S 5       r	S r
\R
                  R                  S\R                  " S5      \R                  " / SQ5      \" SS	S
9R                  /5      S 5       rSrg)TestIndexConstructorUnwrappingi|  r~   c                     [        S5      [        S5      [        S5      /n[        U5      n[        U5      nU" U5      n[        R                  " XS5        g )N201101012012010120130101)r   r   r   r>   r?   )r!   r~   stampsrA   serr@   s         r$   !test_constructor_from_series_dt64@TestIndexConstructorUnwrapping.test_constructor_from_series_dt64  sG    J':)>	*@UV (Vns
f/r'   c                     [        / SQ5      n[        UR                  5      n[        / SQ5      n[        R                  " X#5        g )Nr   )r   r   r   r>   r?   )r!   r  r@   rA   s       r$    test_constructor_no_pandas_array?TestIndexConstructorUnwrapping.test_constructor_no_pandas_array  s2    Ysyy!#
f/r'   r   rX   )abcz
2000-01-01rE   r   c                 |     " S S5      n[        U5      n[        U" U5      5      n[        R                  " XC5        g )Nc                   D    \ rS rSrSS jrSS\R                  4S jjrSrg)	OTestIndexConstructorUnwrapping.test_constructor_ndarray_like.<locals>.ArrayLikei  returnNc                     Xl         g Nr   )r!   r   s     r$   __init__XTestIndexConstructorUnwrapping.test_constructor_ndarray_like.<locals>.ArrayLike.__init__  s    "
r'   c                     U R                   $ r  r  )r!   r   copys      r$   	__array__YTestIndexConstructorUnwrapping.test_constructor_ndarray_like.<locals>.ArrayLike.__array__  s    zz!r'   r  )r  N)NN)	rx   r   r   r   r  r   ndarrayr  r   r   r'   r$   	ArrayLiker    s    #""** " "r'   r  rH   )r!   r   r  rA   r@   s        r$   test_constructor_ndarray_like<TestIndexConstructorUnwrapping.test_constructor_ndarray_like  s4    	" 	" <y'(
f/r'   r   N)rx   r   r   r   rv   r{   r   r   r   r  r  r   aranger   r   r4   r  r   r   r'   r$   r   r   |  s     [[Wum&<=0 >00 [[IIaLHH_%|Q/66	
00r'   r   c                       \ rS rSrS rSrg)TestIndexConstructionErrorsi  c                     Sn[         R                  " [        US9   [        [        R
                  " [        R                  5      R                  S-
  /SS9  S S S 5        g ! , (       d  f       g = f)NzIThe elements provided in the data cannot all be casted to the dtype int64r   r)   r   r   )rv   r   OverflowErrorr   r   iinfor   max)r!   r   s     r$   test_constructor_overflow_int64;TestIndexConstructionErrors.test_constructor_overflow_int64  sN     X 	 ]]=4288BII&**Q./w? 544s   ;A  
A.r   N)rx   r   r   r   r"  r   r   r'   r$   r  r    s    @r'   r  )#__doc__r   r   r   decimalr   numpyr   rv   pandas._libs.tslibs.timezonesr   pandasr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr>   r   r   r   r  r   r'   r$   <module>r+     ss    
    6    $ Z0 Z0zvA vAr&0 &0R@ @r'   