
    MhK:                         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\R                  R                  S\SSSSSSSS/	5      S 5       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#\
R6                  " S$5      4\S%\
R:                  " 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      U/var/www/html/env/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_complex/   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 )Ndatetime64[ns]r   )r   r   r   isnaallr   r   r   )r!   r.   valuesidxs       r$   test_infer_nat,TestIndexConstructorInference.test_infer_nat8   s     sFmyy,,1A1AAAF4R4L!yy,,1A1AAABHHV623yy,,1A1AAABHHV624R489yy,,1A1AAA1Ar'   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!   r9   r:   r5   resultexpecteds         r$   !test_construction_list_tuples_nan?TestIndexConstructorInference.test_construction_list_tuples_nanJ   s>     sHo.uV}%))&1
f/r'   r   int64int32int16int8uint64uint32uint16uint8c                 `    [        / 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!   r   rB   rA   s       r$    test_constructor_int_dtype_float>TestIndexConstructorInference.test_constructor_int_dtype_floatS   s+     U3+59
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!   rT   rU   indexs       r$   !test_constructor_dtypes_to_object?TestIndexConstructorInference.test_constructor_dtypes_to_object]   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!   cirA   s      r$   &test_constructor_categorical_to_objectDTestIndexConstructorInference.test_constructor_categorical_to_objectj   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MrN   )freqperiods)r   r   r?   r@   rb   r   )r!   xprss      r$   "test_constructor_infer_periodindex@TestIndexConstructorInference.test_constructor_infer_periodindexp   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ri   rh   )r   listr   rb   r   )r!   rngri   rA   s       r$   test_from_list_of_periods7TestIndexConstructorInference.test_from_list_of_periodsv   s5    :r<s)w&+....r'   posr   r)   zklass,dtype,ctorr1   natztimedelta64[ns]c                    [        U[        5      (       a-  [        R                  " S[	        U5      R
                   S35        U" [        [        /5      nUR                  U:X  d   eU/nUR                  X5        S n	U[        L aI  [        [        [        /5      n[        R                  R                  SS9n
UR                  U
5        [        n	[        U5      n[        R                   " U	5         [        R"                  " X5        S S S 5        [        [$        R&                  " U[(        S95      n[        R                   " U	5         [        R"                  " X5        S S S 5        g ! , (       d  f       Nf= f! , (       d  f       g = f)NzWe don't cast z to datetime64/timedelta64z%Broken with np.NaT ctor; see GH 31884)reasonr   )rb   r   pytestskiprY   __name__r   r   insertr   r   markxfailapplymarkerDeprecationWarningr?   assert_produces_warningr@   r   r   r   )r!   rw   klassr   ctornulls_fixturerequestrB   datawarnr   rA   s               r$   "test_constructor_infer_nat_dt_like@TestIndexConstructorInference.test_constructor_infer_nat_dt_like}   s.    mW--KK m!4!=!= > ?) )
 #s$~~&&&vC'Bb#Y'H;;$$,S$TD% &Dt''-!!&3 . rxxF34''-!!&3 .- .-
 .-s   0E'E8'
E58
F	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 )Nrx   r2   r   )r   
datetime64timedelta64r   r   r?   r@   r   r!   r   r   rB   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        	   *   nowr2   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dt2rA   rB   s         r$   $test_constructor_datetimes_mixed_tzsBTestIndexConstructorInference.test_constructor_datetimes_mixed_tzs   sX    ,'tQ"-tQ(,,7z"#62
f/r'    )#r}   
__module____qualname____firstlineno__r%   r,   r{   r   parametrizer   r   r/   floatr7   rs   tupleiterrC   intrR   r   rX   r\   rd   rl   ru   r   r   r   r   r   r   r   r   __static_attributes__r   r'   r$   r   r   %   s    ++ [[US$e$EFB GB" [[Z$8[[WtUD&9:0 ; 90 [[	gw8XwW0	0 [[\D%=9[[$bhh/B$&OP# :#8+/ [[UQF+[[,bmmE.BC.u0EF	
!4 ,!4F [[[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&                  " \R6                  " S5      \R6                  " S5      /5      5      \" \" SSS5      \" SSS5      /5      /5      S! 5       5       r\R                  R                  SSS /5      \R                  R                  S\R&                  " \R:                  " SS"5      \R:                  " 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"   r6   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   float64rI   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 r_   )r   ra   r   )r!   r   rt   rA   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*   rN   r   )r	   r   r   )r!   r   catrA   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-01rN   ri   z
Asia/Tokyor`   r   )
r   r	   r   r   r?   r@   tz_localizer   from_breaksra   )r!   dtir   rA   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   rN   r   r   r   z
US/Pacific)ri   r   )r   r   r
   r?   r@   )r!   r   rA   rB   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   rN   rq   rr   r   r   )r   r   r
   r?   r@   )r!   pirA   rB   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 Daysr`   r   r   r   )r   r   r
   r?   r@   )r!   tdirA   rB   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   rN   r   r   r   )r   r   r   r   r
   r?   r@   )r!   r   r   rA   rB   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   rN   r   z	Period[D]r   rq   )r   r   	to_periodr?   r@   )r!   r   rA   rB   s       r$   :test_constructor_datetime64_values_mismatched_period_dtypeLTestDtypeEnforced.test_constructor_datetime64_values_mismatched_period_dtype  s6    q1s+.==%
f/r'   rE   c                     [         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/   r{   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rU   r   r   )rO   rP   r=   c                 >    Un[        XS9nUR                  U:X  d   eg rW   r   r   )r!   rU   any_int_numpy_dtyper   r[   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 rW   r   )r!   rU   float_numpy_dtyper   r[   s        r$    test_constructor_dtypes_to_float2TestDtypeEnforced.test_constructor_dtypes_to_float/  s%     "d({{e###r'   z
2011-01-01z
2011-01-02r1   i  r)   r*   c                 F    [        USS9n[        U[        5      (       d   eg )Nr   r   )r   rb   r
   )r!   rU   r[   s      r$   &test_constructor_dtypes_to_categorical8TestDtypeEnforced.test_constructor_dtypes_to_categorical>  s$     d*-%!12222r'   rT   TFc                     U(       a<  [        U[        S9n[        U[         5      (       d   eUR                  [        :X  d   eg [        U5      n[        U[        5      (       d   eg rW   )r   r   rb   r   r   rZ   s       r$   #test_constructor_dtypes_to_datetime5TestDtypeEnforced.test_constructor_dtypes_to_datetimeK  sT     $f-EeU++++;;&((($KEe]3333r'   rq   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 rW   )r   r   rb   r   r   rZ   s       r$   $test_constructor_dtypes_to_timedelta6TestDtypeEnforced.test_constructor_dtypes_to_timedelta\  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_equalr5   r!   rt   r6   rB   s       r$   !test_pass_timedeltaindex_to_index3TestDtypeEnforced.test_pass_timedeltaindex_to_indexm  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 )Nro   z3/1/2000r   )r   r   r   to_pydatetimer?   r   r5   r   s       r$    test_pass_datetimeindex_to_index2TestDtypeEnforced.test_pass_datetimeindex_to_indexu  sG    Z0Cv&**,F;
##CJJ@r'   r   N)#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   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[["((BMM,7|9TUVW8D!Q'$1)=>?	
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   stampsrB   serrA   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  rA   rB   s       r$    test_constructor_no_pandas_array?TestIndexConstructorUnwrapping.test_constructor_no_pandas_array  s2    Ysyy!#
f/r'   r   r`   )abcz
2000-01-01rN   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)	r}   r   r   r   r  r   ndarrayr  r   r   r'   r$   	ArrayLiker    s    #""** " "r'   r  rQ   )r!   r   r  rB   rA   s        r$   test_constructor_ndarray_like<TestIndexConstructorUnwrapping.test_constructor_ndarray_like  s4    	" 	" <y'(
f/r'   r   N)r}   r   r   r   r{   r   r   r   r   r  r  r   aranger   r   r5   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)   rE   r   )r{   r   OverflowErrorr   r   iinforI   max)r!   r   s     r$   test_constructor_overflow_int64;TestIndexConstructionErrors.test_constructor_overflow_int64  sM    / 	 ]]=4288BII&**Q./w? 544s   ;A  
A.r   N)r}   r   r   r   r(  r   r   r'   r$   r#  r#    s    @r'   r#  )#__doc__r   r   r   decimalr   numpyr   r{   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>r1     ss    
    6    $ _0 _0DuA uAp&0 &0R@ @r'   