
    d5                         d Z ddlmZmZ ddlmZ ddlZddlZddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ  G d d          Z G d d	          Z G d
 d          Z G d d          ZdS )z7
Tests for the Index constructor conducting inference.
    )datetime	timedelta)DecimalN)NACategoricalCategoricalIndexDatetimeIndexIndexIntervalIndex
MultiIndexNaTPeriodIndexSeriesTimedeltaIndex	Timestamparray
date_rangeperiod_rangetimedelta_rangec                      e Zd Zd Zd Zej                            dede	j
         ed          g          d             Zej                            dde	j
        g          ej                            deeeg          d	                         Zej                            d
eddddddddg	          d             Zej                            dddg          ej                            dg d e	j        g de          g          d                         Zd Zd Zd Zej                            ddd g          ej                            d!ed" e	j        d#          fed$ e	j        d#          fg          d%                         Zej                            d&ddg          d'             Zej                            d&ddg          d(             ZdS ))TestIndexConstructorInferencec                     t          j        ddgt                    }t          |          }|j        t          k    sJ t          |          j        t          k    sJ d S )NTFdtype)npr   objectr
   r   r   selfarrress      _/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/indexes/test_index_new.pytest_object_all_boolsz3TestIndexConstructorInference.test_object_all_bools#   sZ    he}F333CjjyF"""" c{{ F******    c                     t          j        t          d          t          d          gt                    }t	          |          }|j        t          k    sJ t          |          j        t          k    sJ d S )N      r   )r   r   complexr   r
   r   r   r   s      r!   test_object_all_complexz5TestIndexConstructorInference.test_object_all_complex,   sg    h

GAJJ/v>>>CjjyF"""" c{{ F******r#   valNnanc                    t           |g}t          |          }|j        dk    r&|                                                                sJ t          |d d d                   }|j        dk    r&|                                                                sJ t          t          j        |t                              }|j        dk    r&|                                                                sJ t          t          j        |t                    d d d                   }|j        dk    r&|                                                                sJ d S )Ndatetime64[ns]r   )r   r
   r   isnaallr   r   r   )r   r)   valuesidxs       r!   test_infer_natz,TestIndexConstructorInference.test_infer_nat5   s$    sFmmy,,,1A1A,,,F44R4L!!y,,,1A1A,,,BHV622233y,,,1A1A,,,BHV622244R4899y,,,1A1A,,,,,r#   na_valuevtypec                     dd|fg}t           ||                    }t          j        |          }t          j        ||           d S )N)r%   two      @)r
   r   from_tuplestmassert_index_equal)r   r3   r4   r0   resultexpecteds         r!   !test_construction_list_tuples_nanz?TestIndexConstructorInference.test_construction_list_tuples_nanG   sP     sHo.uuV}}%%)&11
fh/////r#   r   int64int32int16int8uint64uint32uint16uint8c                 |    t          g d|          }t          g d|          }t          j        ||           d S )N)r   r%   r&      r   )g              ?       @r7   r
   r9   r:   )r   r   r<   r;   s       r!    test_constructor_int_dtype_floatz>TestIndexConstructorInference.test_constructor_int_dtype_floatP   sL     U333+++5999
fh/////r#   
cast_indexTFvals)TFTr   c                     |rt          |t                    }nt          |          }t          |          t           u sJ |j        t          k    sJ d S Nr   )r
   booltyper   r   rL   rM   indexs       r!   !test_constructor_dtypes_to_objectz?TestIndexConstructorInference.test_constructor_dtypes_to_objectZ   s[    
  	 $d+++EE$KKEE{{e####{d""""""r#   c                     t          t          d                    }t          |t                    }t	          |t                     rJ d S N   r   )r   ranger
   r   
isinstance)r   cir;   s      r!   &test_constructor_categorical_to_objectzDTestIndexConstructorInference.test_constructor_categorical_to_objectg   sD    eAhh''r(((f&67777777r#   c                     t          ddd          }t          |          }t          j        ||           t	          |t
                    sJ d S )Nz2012-1-1MrG   )freqperiods)r   r
   r9   r:   rY   r   )r   xprss      r!   "test_constructor_infer_periodindexz@TestIndexConstructorInference.test_constructor_infer_periodindexm   sP    *3:::2YY
b"%%%"k*******r#   c                     t          ddd          }t          |          }t          |          }t          |t                    sJ d S )Nz1/1/2000   Dr_   r^   )r   listr
   rY   r   )r   rngr_   r;   s       r!   test_from_list_of_periodsz7TestIndexConstructorInference.test_from_list_of_periodss   sH    :r<<<s))w&+.......r#   posr   r%   zklass,dtype,ctorr,   natztimedelta64[ns]c                    t          |t                    rd S  |t          t          g          }|j        |k    sJ |g}|                    ||           d }	|t
          u r\t          t
          t          g          }t          j        	                    d          }
|j
                            |
           t          }	t          |          }t          j        |	          5  t          j        ||           d d d            n# 1 swxY w Y   t          t!          j        |t$                              }t          j        |	          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nz%Broken with np.NaT ctor; see GH 31884)reasonr   )rY   r   r   r   insertr   r
   pytestmarkxfailnode
add_markerDeprecationWarningr9   assert_produces_warningr:   r   r   r   )r   rj   klassr   ctornulls_fixturerequestr<   datawarnrp   r;   s               r!   "test_constructor_infer_nat_dt_likez@TestIndexConstructorInference.test_constructor_infer_nat_dt_likez   s    mW-- 	F5#s$$~&&&&vC'''Bb#Y''H;$$,S$TTDL##D))) &Dt'-- 	4 	4!&(333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 rxF33344'-- 	4 	4!&(333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s$   DDDE++E/2E/	swap_objsc                 V   t          j        d          t          j        d          g}|r|d d d         }t          |t                    }t          j        t          |          |           t          j        t          t          j        |t                              |           d S )Nrk   r-   r   )r   
datetime64timedelta64r
   r   r9   r:   r   r   r}   rz   r<   s       r!   -test_constructor_mixed_nat_objs_infers_objectzKTestIndexConstructorInference.test_constructor_mixed_nat_objs_infers_object   s     e$$bnU&;&;< 	":DV,,,
eDkk8444
eBHT$@$@$@AA8LLLLLr#   c                 F   t          ddddd          t          j        d          g}|r|d d d         }t          |          }t	          j        t          |          |           t	          j        t          t          j        |t                              |           d S )	Ni        	   *   nowr-   r   )	r   r   r   r	   r9   r:   r
   r   r   r   s       r!   (test_constructor_datetime_and_datetime64zFTestIndexConstructorInference.test_constructor_datetime_and_datetime64   s    $1a,,bmE.B.BC 	":D &&
eDkk8444
eBHT$@$@$@AA8LLLLLr#   ) __name__
__module____qualname__r"   r(   ro   rp   parametrizer   r   r*   floatr2   rg   tupleiterr=   intrK   r   rP   rT   r[   rb   ri   r	   r   r   r   r|   r   r    r#   r!   r   r   "   s       + + ++ + + [US$e$EFFB B GFB" [Z$88[WtUD&9::0 0 ;: 980 [	gw8XwW 0 0	 0 [\D%=99[$$$hbh/B/B/B$&O&O&OP # #  :9#8 8 8+ + +/ / / [UQF++[,mbmE.B.BC.u0E0EF	
 4 4  ,+4@ [[4-88M M 98M [[4-88M M 98M M Mr#   r   c                      e Zd Zd Zej                            dedddg          d             Zej                            dedddg          d             Z	d Z
d	 Zd
 Zd Zd Zd Zej                            dddg          d             Zej                            dg d ej        g d           ej        g de          g d ej        g de          g          d             Zej                            dg dg d ej        g d           ej        g de           ej        g de          g          d             Zej                            dg d ej        g de           ej        ddgd           eddd           eddd          gg          d             Zej                            dddg          ej                            d e ej         ej        d           ej        d          g                     e eddd           eddd          g          g          d                          Zej                            dddg          ej                            d ej         ej        dd!           ej        dd!          g           ed           ed          gg          d"                         Zd#S )$TestDtypeEnforcedc                 z    t          dg|          }t          |t                    }|j        t          k    sJ d S )Nr   r   )r   r
   r   r   )r   any_numeric_ea_dtyper   r1   s       r!   *test_constructor_object_dtype_with_ea_dataz<TestDtypeEnforced.test_constructor_object_dtype_with_ea_data   sB    QC3444Cv&&&yF""""""r#   r   float64rB   categoryc                     t          t          d                    }t          ||          }|j        |k    sJ t          t          d          |          }|j        |k    sJ d S rV   )r
   rX   r   )r   r   rh   r;   s       r!   .test_constructor_range_values_mismatched_dtypez@TestDtypeEnforced.test_constructor_range_values_mismatched_dtype   si    E!HHoos%(((|u$$$$uQxxu---|u$$$$$$r#   c                 d    t          g d          }t          ||          }|j        |k    sJ d S )Nr%   r&   rG   r   )r   r
   r   )r   r   catr;   s       r!   ;test_constructor_categorical_values_mismatched_non_ea_dtypezMTestDtypeEnforced.test_constructor_categorical_values_mismatched_non_ea_dtype   s>    )))$$s%(((|u$$$$$$r#   c                    t          dd          }t          |          }t          ||j                  }t	          j        ||           |                    d          }t          |          }t          ||j                  }t	          j        ||           t          j        t          d                    }t          |          }t          ||j                  }t	          j        ||           d S )N
2016-01-01rG   r_   z
Asia/TokyorW   r   )
r   r   r
   r   r9   r:   tz_localizer   from_breaksrX   )r   dtir   r;   dti2cat2iicat3s           r!   4test_constructor_categorical_values_mismatched_dtypezFTestDtypeEnforced.test_constructor_categorical_values_mismatched_dtype   s    q111#sCI&&
fc***|,,4  tTZ((
fd+++&uQxx002t28,,,
fb)))))r#   c                     t          dd          }t          |d          }t          |          }t          j        ||           t          ddd          }t          |d          }t          |          }t          j        ||           d S )Nr   rG   r   r   r   z
US/Pacific)r_   tz)r   r
   r   r9   r:   )r   r   r;   r<   r   s        r!   7test_constructor_ea_values_mismatched_categorical_dtypezITestDtypeEnforced.test_constructor_ea_values_mismatched_categorical_dtype   s    q111s*---#C((
fh///,lCCCt:...#D))
fh/////r#   c                     t          ddd          }t          |d          }t          |          }t          j        ||           d S )Nr   rG   re   rf   r   r   )r   r
   r   r9   r:   )r   pir;   r<   s       r!   /test_constructor_period_values_mismatched_dtypezATestDtypeEnforced.test_constructor_period_values_mismatched_dtype   sN    ,<<<r,,,#B''
fh/////r#   c                     t          dd          }t          |d          }t          |          }t          j        ||           d S )Nz4 DaysrW   r   r   r   )r   r
   r   r9   r:   )r   tdir;   r<   s       r!   4test_constructor_timedelta64_values_mismatched_dtypezFTestDtypeEnforced.test_constructor_timedelta64_values_mismatched_dtype   sL    h222s*---#C((
fh/////r#   c                     t          dd          }t          j        |          }t          |d          }t	          |          }t          j        ||           d S )Nr   rG   r   r   r   )r   r   r   r
   r   r9   r:   )r   r   r   r;   r<   s        r!   1test_constructor_interval_values_mismatched_dtypezCTestDtypeEnforced.test_constructor_interval_values_mismatched_dtype   s\    q111&s++r,,,#B''
fh/////r#   c                     t          dd          }t          |d          }|                    d          }t          j        ||           d S )Nr   rG   r   z	Period[D]r   re   )r   r
   	to_periodr9   r:   )r   r   r;   r<   s       r!   :test_constructor_datetime64_values_mismatched_period_dtypezLTestDtypeEnforced.test_constructor_datetime64_values_mismatched_period_dtype  sP    q111s+...==%%
fh/////r#   r>   c                     t           j        g}d}t          j        t          |          5  t          ||           d d d            d S # 1 swxY w Y   d S )Nzcannot convertmatchr   )r   r*   ro   raises
ValueErrorr
   )r   r   rz   msgs       r!   %test_constructor_int_dtype_nan_raisesz7TestDtypeEnforced.test_constructor_int_dtype_nan_raises  s     x]:S111 	% 	%$e$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   A

AArM   r   r   )rH   rI   r7   c                 F    |}t          ||          }|j        |k    sJ d S rO   r
   r   )r   rM   any_int_numpy_dtyper   rS   s        r!   test_constructor_dtypes_to_intz0TestDtypeEnforced.test_constructor_dtypes_to_int  s4     $d%((({e######r#   c                 F    |}t          ||          }|j        |k    sJ d S rO   r   )r   rM   float_numpy_dtyper   rS   s        r!    test_constructor_dtypes_to_floatz2TestDtypeEnforced.test_constructor_dtypes_to_float   s4     "d%((({e######r#   z
2011-01-01z
2011-01-02r,   i  r%   r&   c                 V    t          |d          }t          |t                    sJ d S )Nr   r   )r
   rY   r   )r   rM   rS   s      r!   &test_constructor_dtypes_to_categoricalz8TestDtypeEnforced.test_constructor_dtypes_to_categorical/  s3     d*---%!12222222r#   rL   TFc                     |rAt          |t                    }t          |t                     sJ |j        t          k    sJ d S t          |          }t          |t                    sJ d S rO   )r
   r   rY   r   r	   rR   s       r!   #test_constructor_dtypes_to_datetimez5TestDtypeEnforced.test_constructor_dtypes_to_datetime<  st      	4$f---EeU+++++;&(((((($KKEe]3333333r#   re   c                     |rAt          |t                    }t          |t                     sJ |j        t          k    sJ d S t          |          }t          |t                    sJ d S rO   )r
   r   rY   r   r   rR   s       r!   $test_constructor_dtypes_to_timedeltaz6TestDtypeEnforced.test_constructor_dtypes_to_timedeltaM  st      	5$f---EeU+++++;&(((((($KKEe^4444444r#   N)r   r   r   r   ro   rp   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P% % QP% [Wvy(J&OPP% % QP%* * * 	0 	0 	00 0 00 0 00 0 00 0 0 [Ww&9::% % ;:% [IIBHYYYBHYYYc***OOBH___E222	

 
$ $
 
$
 [IIOOBH___%%BHYYYc***BH___E222	
	 	$ $	 	$
 [IIBHYYYc***BHlL19IJJJXdAq!!88D!Q#7#78		
 3 3 3 [\D%=99[E("(MBM,77|9T9TUVVWWE88D!Q''$1)=)=>??	
 4 4  :94 [\D%=99[BHnbnQ,,nbnQ.D.DEFFYq\\99Q<<(	
 5 5  :95 5 5r#   r   c            	       
   e Zd Zej                            deeg          d             Zd Z	ej                            d e
j        d           e
j        g d           edd	          j        g          d
             ZdS )TestIndexConstructorUnwrappingrv   c                     t          d          t          d          t          d          g}t          |          }t          |          } ||          }t          j        ||           d S )N201101012012010120130101)r   r	   r   r9   r:   )r   rv   stampsr<   serr;   s         r!   !test_constructor_from_series_dt64z@TestIndexConstructorUnwrapping.test_constructor_from_series_dt64b  sd    J'':)>)>	*@U@UV ((Vnns
fh/////r#   c                     t          g d          }t          |j                  }t          g d          }t          j        ||           d S )Nr   )r   r
   r   r9   r:   )r   r   r;   r<   s       r!    test_constructor_no_pandas_arrayz?TestIndexConstructorUnwrapping.test_constructor_no_pandas_arrayj  sL    YYYsy!!##
fh/////r#   r   rW   )abcz
2000-01-01rG   r   c                      G d d          }t          |          }t           ||                    }t          j        ||           d S )Nc                   .    e Zd ZddZddej        fdZdS )OTestIndexConstructorUnwrapping.test_constructor_ndarray_like.<locals>.ArrayLikereturnNc                     || _         d S Nr   )r   r   s     r!   __init__zXTestIndexConstructorUnwrapping.test_constructor_ndarray_like.<locals>.ArrayLike.__init__}  s    "


r#   c                     | j         S r   r   )r   r   s     r!   	__array__zYTestIndexConstructorUnwrapping.test_constructor_ndarray_like.<locals>.ArrayLike.__array__  s
    z!r#   )r   Nr   )r   r   r   r   r   ndarrayr   r   r#   r!   	ArrayLiker   |  sJ        # # # #" "rz " " " " " "r#   r   rJ   )r   r   r   r<   r;   s        r!   test_constructor_ndarray_likez<TestIndexConstructorUnwrapping.test_constructor_ndarray_likep  sg    	" 	" 	" 	" 	" 	" 	" 	" <<yy''((
fh/////r#   N)r   r   r   ro   rp   r   r
   r	   r   r   r   aranger   r   r0   r   r   r#   r!   r   r   _  s         [Wum&<==0 0 >=00 0 0 [BIaLLBH___%%J|Q///6	
 0 0 0 0 0r#   r   c                       e Zd Zd ZdS )TestIndexConstructionErrorsc                     d}t          j        t          |          5  t          t	          j        t          j                  j        dz
  gd           d d d            d S # 1 swxY w Y   d S )NzIThe elements provided in the data cannot all be casted to the dtype int64r   r%   r>   r   )ro   r   OverflowErrorr
   r   iinforB   max)r   r   s     r!   test_constructor_overflow_int64z;TestIndexConstructionErrors.test_constructor_overflow_int64  s    / 	 ]=444 	@ 	@28BI&&*Q./w????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   7A""A&)A&N)r   r   r   r   r   r#   r!   r   r     s(        @ @ @ @ @r#   r   ) __doc__r   r   decimalr   numpyr   ro   pandasr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr9   r   r   r   r   r   r#   r!   <module>r      s                                                        $      SM SM SM SM SM SM SM SMld5 d5 d5 d5 d5 d5 d5 d5N&0 &0 &0 &0 &0 &0 &0 &0R@ @ @ @ @ @ @ @ @ @r#   