a
    Pf                    @   s  d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZm
Z
mZ d dlZd dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlmZ d d	lmZ d d
lmZ d dlmZ d dlm  m Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z( d dl)Z*d dl)m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z< d dl=m>Z>m?Z?m@Z@mAZAmBZB g dZCg dZDG dd dZEG dd dZFG dd dZGG dd dZHdd ZIG dd dZJG dd dZKdS )     N)OrderedDictabcdefaultdict
namedtuple)Iterator)make_dataclass)datedatetime	timedelta)ma)mrecords)using_pyarrow_string_dtype)lib)np_version_gt2)IntCastingNaNError)is_integer_dtype)DatetimeTZDtypeIntervalDtypeNumpyEADtypePeriodDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexInterval
MultiIndexPeriod
RangeIndexSeries	Timedelta	Timestampcut
date_rangeisna)DatetimeArrayIntervalArrayPeriodArraySparseArrayTimedeltaArray)Zfloat16Zfloat32float64)uint8uint16uint32uint64int8Zint16int32int64c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zejdddgdd Zdd Zejddd dd dd dd d d d!d d"d d#d d$d d%d d&d gd'd( Zejdd)d d*d gd+d, Zejd-g ged.ed/fg g ged0ed/fd1d2 d3D ged.ed/fgd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zejejje d@dAdBdC Zejejje d@dAdDdE ZdFdG Z dHdI Z!ejdJdKi gdKd.dLdMdNgdOi ggdPdQ Z"dRdS Z#dTdU Z$dVdW Z%dXdY Z&dZd[ Z'ejd\e(j)d]ge*d^e()d0d_ gd`ge(j)dage*d^e()dbgd0d_  d0 ggdcdd Z+ejd\e(j)d.ge(j,d^e(j)d.ge(j-d^e(j)d.ge(j.d^e(,d.ge(-d.ge(.d.ggdedf Z/dgdh Z0didj Z1dkdl Z2dmdn Z3dodp Z4dqdr Z5dsdt Z6dudv Z7ejdwd0e(j8dxdygdzd{ Z9ejd|d0e(j8dxe:d}gd~d Z;ejd|e(j8dxe:d}gdd Z<dd Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNejddd dfdd dfdd dfdd dfgdd ZOdd ZPdd ZQejdeRdeSdfeTd/ddeUddfeVdddeWdddfgdd ZXddÄ ZYddń ZZddǄ Z[ddɄ Z\ej]dʡdd̄ Z^dd΄ Z_ddЄ Z`dd҄ Zaejddxebecdԃddge*e(jdfdxdxddgde(edfdxebecdԃddgefe(edסfi dxdLdMgdxe(jdfdd.iebecdԃebd؃efe(edסfgddڄ Zgejdg dܢdehjifg dޢdehjjfg ddehjkfg ddehjlffdd Zmdd Zndd Zodd Zpdd Zqdd Zrdd Zsdd Ztdd Zudd Zvdd Zwdd ZxejdeVdggdeVdigdeVdgideVdydigd d Zzdd Z{dd Z|dd Z}dd	 Z~d
d Zdd Zdd Zdd Zdd Zdd Zejdeegdd Zejdeegdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zejd)d3g fd3g fd*d3d3gfd*g g gfg g fg g gfd.gd0gfd.gd0ggfg d+g d,fg d+g d,gfgd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZejdAg dBdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Zd[d\ Zd]d^ Zd_d` Zejdae()dxdxdxdxe dxge()dxdxe dxge(dbgdxgge(dbgehjggdxge(dbggdxgehjggehjge(dbggehjgdxgggdcdd Zejdeg dfejdgg dhdidj Zejdeg dfejdgg dkdldm Zdndo Zdpdq Zdrds Zdtdu Zdvdw Zejdxeg d+g d,gd.e(j8gdyeg d+g d,gdzd{e(j8gd|eg d}g d~ge(j8dzd{e(j8gd|eg dg d~ge(j8dzd{e(j8gd|eg dg d~ge(j8d.d0d0gd|gdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zejdejej ej ej dd Zejdejej ej dd ZȐdd Zejjejdg ddd Zːdd Zejdeebded.e(j8e(j8e(j8geeTd/d.eTd.dgeehjѐddddgdd ZҐdd ZӐdd ZԐdd ZՐdd Z֐dd Zאdd Zؐdd Zِdd Zejdd.d0gddgebeېdd0ddebeېdd0dddeTd/ddggdd Zܐdd ZejdddgdÐdĄ ZސdŐdƄ ZߐdǐdȄ Zdɐdʄ Zdːd̄ Zejdd.gd0gge()d.gd0ggfe()d.gd0ggd.gd0ggfe()d.gd0gge()d.gd0ggfgdΐdτ ZdАdф ZdҐdӄ ZdԐdՄ Zd֐dׄ Zdؐdل Zdڐdۄ Zdܐd݄ ZdxS (  TestDataFrameConstructorsc                 C   s@   t ddd}t|td}t|ttd}t|| d S )N         dtype)	nparangereshaper   strastypeobjecttmassert_frame_equal)selfarrdfexpected rD   ]/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/frame/test_constructors.py,test_constructor_from_ndarray_with_str_dtypeP   s    zFTestDataFrameConstructors.test_constructor_from_ndarray_with_str_dtypec                 C   sr   t dddd}|jdd}t|}t|d d df |d d df d	}t|| |snt|jjdksnJ d S )
N
2016-01-01   
US/Pacificperiodstzr5      r      r   rN   )	r#   _datar:   r   r>   r?   len_mgrblocks)r@   using_array_managerdtiZdtarB   rC   rD   rD   rE   &test_constructor_from_2d_datetimearrayX   s    &z@TestDataFrameConstructors.test_constructor_from_2d_datetimearrayc                 C   sv   t dd}|d}td|idgd}td|gi}t|| t|dgd}t|gdgd}t|| d S )	Nz2019-11-03 01:00:00-0700zAmerica/Los_Angelesnsdtr   indexrN   )rX   value)r!   Z
tz_convertas_unitr   r>   r?   )r@   rX   rB   rC   rD   rD   rE   )test_constructor_dict_with_tzaware_scalarc   s    
zCTestDataFrameConstructors.test_constructor_dict_with_tzaware_scalarc                 C   s   t dt jgddgg}d}tjt|d t|dd W d    n1 sL0    Y  tjt|d" t|d ddd	 W d    n1 s0    Y  d S )
NrN   rM   r5   9Cannot convert non-finite values \(NA or inf\) to integermatchi8r6   r   r7   name)r8   arraynanpytestraisesr   r   r   )r@   rA   msgrD   rD   rE   -test_construct_ndarray_with_nas_and_int_dtypeq   s    *zGTestDataFrameConstructors.test_construct_ndarray_with_nas_and_int_dtypec                 C   s0   t t t g}|d jtdks,J d S )Nr   M8[ns])r   r	   nowr7   r8   r@   rB   rD   rD   rE   %test_construct_from_list_of_datetimes|   s    z?TestDataFrameConstructors.test_construct_from_list_of_datetimesc                 C   s\   t ddgdd}|d}ttj| dddd}|j|jksDJ t|}t|| d S )Nz2013-1-1 13:00z2013-1-2 14:00Brc   rI   r=   r6   )	r   tz_localizer   r8   rd   tolistr7   r>   assert_series_equal)r@   ZnaiveidxrC   resultrD   rD   rE   +test_constructor_from_tzaware_datetimeindex   s    
zETestDataFrameConstructors.test_constructor_from_tzaware_datetimeindexc                 C   sP   d}t dddg|ddgi}|jdd}dd|didd|dig}||ksLJ d S )	N_barN   rM   r5   r4   recordsZorientr   to_dict)r@   Zcol_underscorerB   dref_drD   rD   rE   6test_columns_with_leading_underscore_work_with_to_dict   s
    zPTestDataFrameConstructors.test_columns_with_leading_underscore_work_with_to_dictc                 C   sP   d}t dddg|ddgi}|jdd}dd|didd|dig}||ksLJ d S )	NZ1_brw   rN   rM   r5   r4   rx   ry   rz   )r@   Zcol_with_numrB   r|   r}   rD   rD   rE   Atest_columns_with_leading_number_and_underscore_work_with_to_dict   s
    z[TestDataFrameConstructors.test_columns_with_leading_number_and_underscore_work_with_to_dictc                 C   sr   t dd}t j|gtd}|tu r0|dd}d}tjt|d ||dd W d    n1 sd0    Y  d S )NNaTrW   r6   rN   =Invalid type for timedelta scalar: <class 'numpy.datetime64'>r_   m8[ns])	r8   
datetime64rd   r=   r   r:   rf   rg   	TypeError)r@   frame_or_seriesZnatrA   rh   rD   rD   rE   ,test_array_of_dt64_nat_with_td64dtype_raises   s    zFTestDataFrameConstructors.test_array_of_dt64_nat_with_td64dtype_raiseskindmMc                 C   s|  |dkrd}t }nd}t}tjddd|dd}|tu rN|d d d	f }||td}|jj	d	 j
tkspJ t|jj	d	  d	 |sJ |||td}|jj	d	 j
tksJ t|jj	d	  d	 |sJ |||ttd}|jj	d	 j
tksJ t|jj	d	  d	 |sJ |tu rxd
d |D }||td}|jj	d	 j
tksXJ t|jj	d	  d	 |sxJ d S )Nr   rj   r   rH   ra   r6   r5   rM   r   c                 S   s   g | ]}t |qS rD   r   .0xrD   rD   rE   
<listcomp>       zXTestDataFrameConstructors.test_datetimelike_values_with_object_dtype.<locals>.<listcomp>)r!   r    r8   r9   viewr:   r   r=   rR   arraysr7   
isinstanceravelr   r   )r@   r   r   r7   Zscalar_typerA   objZsersrD   rD   rE   *test_datetimelike_values_with_object_dtype   s,     
zDTestDataFrameConstructors.test_datetimelike_values_with_object_dtypec                 C   st   t tddd}t tddd}t|dgd}tg dgd}t|| t|dgd}tg dgd}t|| d S )N   rN   ro   r   columns)r   ranger   r>   r?   )r@   r   yrt   rC   rD   rD   rE   )test_series_with_name_not_matching_column   s    zCTestDataFrameConstructors.test_series_with_name_not_matching_columnconstructorc                   C   s   t  S Nr   rD   rD   rD   rE   <lambda>   r   z"TestDataFrameConstructors.<lambda>c                   C   s   t d S r   r   rD   rD   rD   rE   r      r   c                   C   s   t dS NrD   r   rD   rD   rD   rE   r      r   c                   C   s   t g S r   r   rD   rD   rD   rE   r      r   c                   C   s   t dd dD S )Nc                 s   s   | ]
}|V  qd S r   rD   r   _rD   rD   rE   	<genexpr>   r   5TestDataFrameConstructors.<lambda>.<locals>.<genexpr>rD   r   rD   rD   rD   rE   r      r   c                   C   s   t tdS Nr   r   r   rD   rD   rD   rE   r      r   c                   C   s
   t d dS Ndatar   rD   rD   rD   rE   r      r   c                   C   s
   t ddS )NrD   r   r   rD   rD   rD   rE   r      r   c                   C   s
   t g dS r   r   rD   rD   rD   rE   r      r   c                   C   s   t dd dD dS )Nc                 s   s   | ]
}|V  qd S r   rD   r   rD   rD   rE   r      r   r   rD   r   r   rD   rD   rD   rE   r      r   c                   C   s   t tddS )Nr   r   r   rD   rD   rD   rE   r      r   c                 C   s@   t  }| }t|jdksJ t|jdks0J t|| d S r   )r   rQ   rZ   r   r>   r?   r@   r   rC   rt   rD   rD   rE   test_empty_constructor   s
    z0TestDataFrameConstructors.test_empty_constructorc                   C   s   t i S r   r   rD   rD   rD   rE   r      r   c                   C   s
   t i dS r   r   rD   rD   rD   rE   r      r   c                 C   sR   t tdtdd}| }t|jdks,J t|jdks>J tj||dd d S )Nr   rZ   r   T)Zcheck_index_type)r   r   rQ   rZ   r   r>   r?   r   rD   rD   rE   #test_empty_constructor_object_index   s
    z=TestDataFrameConstructors.test_empty_constructor_object_indexz)emptylike,expected_index,expected_columnsrN   r   rM   c                 c   s   | ]
}|V  qd S r   rD   r   rD   rD   rE   r     r   z#TestDataFrameConstructors.<genexpr>rD   c                 C   s$   t ||d}t |}t|| d S )Nr   r   r>   r?   )r@   Z	emptylikeZexpected_indexZexpected_columnsrC   rt   rD   rD   rE   test_emptylike_constructor   s    	z4TestDataFrameConstructors.test_emptylike_constructorc                 C   s$   |rdnt j}|d j|ks J d S )Nstringfoo)r8   object_r7   )r@   Zfloat_string_frameusing_infer_stringr7   rD   rD   rE   test_constructor_mixed  s    z0TestDataFrameConstructors.test_constructor_mixedc                 C   s   d}t jt|d& tdg ditjd W d    n1 s>0    Y  ttd}td |d< d}t jt|d td|d	< W d    n1 s0    Y  td |d
< d S )Nz!could not convert string to floatr_   rw   rw   bcr6   )r4   rM   r   z5Expected a 1D array, got an array with shape \(4, 2\)testZfoo2)rf   rg   
ValueErrorr   r8   r*   onesrq   )r@   rh   rB   rD   rD   rE   test_constructor_cast_failure  s    4,z7TestDataFrameConstructors.test_constructor_cast_failurec                 C   sD   t dgdgdgd}t |tdd}d|d< |d d	 dks@J d S )
N      ?       @      @)col1col2col3T)r7   copyg      i@r   r   )r   float)r@   Zorig_dfZnew_dfrD   rD   rE   test_constructor_dtype_copy$  s    z5TestDataFrameConstructors.test_constructor_dtype_copyc                 C   s   t ddgg}t ||d jd}|rBd|jd< |jd dksJ nFt| d|jd< W d    n1 sl0    Y  |jd dksJ d S )NrN   rM   r   r6   c   r   r   )r   r7   ilocvaluesr>   Zassert_cow_warning)r@   using_copy_on_writewarn_copy_on_writerB   should_be_viewrD   rD   rE   ,test_constructor_dtype_nocast_view_dataframe,  s    
(zFTestDataFrameConstructors.test_constructor_dtype_nocast_view_dataframec                 C   s~   t ddgddggdd}|sR|sRt |j|d jd}d|jd	< |jd	 dkszJ n(t |j|d jd}|jjd jjszJ d S )
NrN   rM   r5   r4   r1   r6   r   a   r   )r   r   r7   r   rR   r   flagsc_contiguous)r@   rT   r   r   rB   r   df2rD   rD   rE   +test_constructor_dtype_nocast_view_2d_array9  s    
zETestDataFrameConstructors.test_constructor_dtype_nocast_view_2d_arrayzconversion copiesreasonc                 C   s4   t jddgdd}t|dd}t |j|s0J d S )Nrw   r   r=   r6   Fr   r8   rd   r   shares_memoryr   r@   rA   rB   rD   rD   rE   "test_1d_object_array_does_not_copyI  s    z<TestDataFrameConstructors.test_1d_object_array_does_not_copyc                 C   s<   t jddgddggdd}t|dd}t |j|s8J d S )	Nrw   r   r   r|   r=   r6   Fr   r   r   rD   rD   rE   "test_2d_object_array_does_not_copyQ  s    z<TestDataFrameConstructors.test_2d_object_array_does_not_copyc                 C   s@   t ddgd dggtd}|jd d u s*J |jd dks<J d S )NrN   2rw   r6   rN   r   rO   )r   r=   locrl   rD   rD   rE    test_constructor_dtype_list_dataY  s    z:TestDataFrameConstructors.test_constructor_dtype_list_datac                 C   s   t  }td}tjtdd t |g W d    n1 s>0    Y  tjtdd t |g W d    n1 sv0    Y  t dddgi}tjtdd t ||g W d    n1 s0    Y  d S )Nr   zshape=\(1, 0, 0\)r_   ArN   rM   zshape=\(2, 2, 1\))r   r8   emptyrf   rg   r   )r@   rw   r   rD   rD   rE   "test_constructor_list_of_2d_raises^  s    
((z<TestDataFrameConstructors.test_constructor_list_of_2d_raisesztyp, adr   r   barr   rn   Cintc                 C   s   |dkrt }dd |D }n|dkr6t}dd |D }t||D ]\}}|j|ks@J q@|tt|| t|}tt  }|D ]}||v r|j| |ksJ qd S )Nr   c                 S   s(   g | ] }t jt jd d|dqS )rM   
   r6   )r8   rd   randomdefault_rngr   r|   rD   rD   rE   r   z  s   zKTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>.<listcomp>r   c                 S   s,   g | ]$}t jt jd jddd|dqS )rM   r   )sizer6   )r8   rd   r   r   Zintegersr   rD   rD   rE   r     s   )MIXED_INT_DTYPESMIXED_FLOAT_DTYPESzipr7   updatedictr   dtypes)r@   typadr   r   r|   rw   rB   rD   rD   rE   test_constructor_mixed_dtypesl  s$    z7TestDataFrameConstructors.test_constructor_mixed_dtypesc                 C   sj   t jddt j}t jddt j}t||d}|j|jjksTJ |j|j	jksfJ d S )NrM   r   rw   r   )
r8   r   r   r<   Z	complex64
complex128r   r7   rw   r   r@   rw   r   rB   rD   rD   rE   test_constructor_complex_dtypes  s
    z9TestDataFrameConstructors.test_constructor_complex_dtypesc                 C   sx   t ddd gi|d}| }t dddgi}t|| |jd d u sJJ t ddtjgi|d}t|jd stJ d S )Nr   r   r6   FTr   )r   r$   r>   r?   r   r8   re   isnan)r@   string_dtyperB   rt   rC   rD   rD   rE   $test_constructor_dtype_str_na_values  s    z>TestDataFrameConstructors.test_constructor_dtype_str_na_valuesc           	      C   s   |j dd}t|jjd d d |j_|j}t|}t|jt	|jj t||d}t|jt	|jj t|j| t
t|d d d }t||ddgd}t||djddgd}t|| d S )NFrY   r   rn   r   r   )Z
to_recordslistr7   namesrZ   r   r>   assert_index_equalr   r   r8   r9   rQ   reindexr?   )	r@   float_frameZrecrZ   rB   r   rngdf3rC   rD   rD   rE   test_constructor_rec  s    z.TestDataFrameConstructors.test_constructor_recc                 C   s8   t tjdtdtjdtdd}|jjtjks4J d S )Nr   r6   rO   )r   r8   r   boolzerosr   r7   bool_rl   rD   rD   rE   test_constructor_bool  s    "z/TestDataFrameConstructors.test_constructor_boolc                 C   s   t jdd tddD t jd}td|i}|d jt jks@J g d}dd	g}t jt|f|d}||d d < t|}|d
 jt jksJ d S )Nc                 S   s   g | ]}d | qS )            rD   r   irD   rD   rE   r     r   zMTestDataFrameConstructors.test_constructor_overflow_int64.<locals>.<listcomp>rN   r   r6   rw   ))l   Y2<   )l   FJLW]L*    )l   M:M^ -   )l   8Ma i  )l   r*R3_PvN r
  )uidu8)Zscorer  r  )r8   rd   r   r.   r   r7   r  rQ   )r@   r   rt   Zdata_scoresr7   r   Z	df_crawlsrD   rD   rE   test_constructor_overflow_int64  s     z9TestDataFrameConstructors.test_constructor_overflow_int64r   r  r6   A   l           l        l        c                 C   s:   |d }t |}|d jtks"J |d d |ks6J d S r   )r   r7   r=   r@   r   r[   rt   rD   rD   rE   test_constructor_int_overflow  s    z7TestDataFrameConstructors.test_constructor_int_overflowc                 C   s<   |d }t |}|d j|jks$J |d d |ks8J d S r   r   r7   r  rD   rD   rE   test_constructor_numpy_uints  s    z6TestDataFrameConstructors.test_constructor_numpy_uintsc                 C   s`   d}t t|}tjd| dd |D }ttt|dgg| }|t |j	ks\J d S )Nd   rM   c                 S   s   g | ]}d |dqS )r   r|   rD   r  rD   rD   rE   r     r   zJTestDataFrameConstructors.test_constructor_ordereddict.<locals>.<listcomp>r   )
r   r   r8   r   r   shuffler   r   r   r   )r@   ZnitemsZnumsrC   rB   rD   rD   rE   test_constructor_ordereddict  s    z6TestDataFrameConstructors.test_constructor_ordereddictc                 C   sR  t tjdtjdtdddd}|dd  }t||d}t|dksJJ t|dksZJ t|d	 |	d	 t t
tjgd |jg|jd
d}t||d
  t||dg dd}t|t|ksJ d	|vsJ t|d  sJ tt dksJ d}tjt|d( tdddg dd W d    n1 sD0    Y  d S )N   r6   
2020-01-01rK   rY   r   r   r      r   r   rZ   rc   )r   r   Zcol4r   r   r   <Mixing dicts with non-Series may lead to ambiguous ordering.r_   rw   r   r   r   r   rn   )r   r8   r9   r*   r#   r   rQ   r>   rr   renameZconcatenatere   r   rZ   r$   allrf   rg   r   )r@   datetime_seriesdatetime_series_shortframeexprh   rD   rD   rE   test_constructor_dict  s2    z/TestDataFrameConstructors.test_constructor_dictc                 C   s,   t ddddi}t|jtddg d S )Nr   rN   rM   1r   r(  r   )r   r>   r   rZ   r   r@   r$  rD   rD   rE   test_constructor_dict_length1$  s    z7TestDataFrameConstructors.test_constructor_dict_length1c                 C   s*   t g d}ti |d}|j|u s&J d S )Nr   rN   rM   rY   )r   r   rZ   r@   rs   r$  rD   rD   rE    test_constructor_dict_with_index)  s    z:TestDataFrameConstructors.test_constructor_dict_with_indexc                 C   sL   t g d}ti ||d}|j|u s(J |j|u s6J t|jdksHJ d S )Nr+  r   r5   )r   r   rZ   r   rQ   _seriesr,  rD   rD   rE   ,test_constructor_dict_with_index_and_columns/  s
    zFTestDataFrameConstructors.test_constructor_dict_with_index_and_columnsc                 C   s0   t g g dddgd}tj|jtddd d S )Nr  r   rn   r   r   Texact)r   r>   r   rZ   r   r)  rD   rD   rE   $test_constructor_dict_of_empty_lists7  s    z>TestDataFrameConstructors.test_constructor_dict_of_empty_listsc                 C   s^   t dd idgd}t dd gidgd}|ddd u s:J |ddd u sNJ t|| d S )Nrw   r   rY   )r   
_get_valuer>   r?   )r@   Z
frame_noneZframe_none_listrD   rD   rE   test_constructor_dict_with_none<  s
    z9TestDataFrameConstructors.test_constructor_dict_with_nonec                 C   s   d}t jt|d tddi W d    n1 s40    Y  t jt|d" tddidgd W d    n1 st0    Y  d S )N2If using all scalar values, you must pass an indexr_   rw   gffffff?r   rf   rg   r   r   r@   rh   rD   rD   rE   test_constructor_dict_errorsE  s
    *z6TestDataFrameConstructors.test_constructor_dict_errorsscalarNDc                 C   s.   t d|idgd}t dgd}t|| d S )Nrw   r   r   r   )r@   r9  rt   rC   rD   rD   rE   %test_constructor_invalid_items_unusedO  s    z?TestDataFrameConstructors.test_constructor_invalid_items_unusedr[   re   c                    s   d|dg d|gddgddgddgg fdd	t dD }t|djddd
}ttjddddd d}t|| t|djddd
}t|| t| d}t|| d S )NrN   r5   rw   r   r4   rM   r   c                    s"   i | ]} | t | d qS rY   r   r   r   colsrs   r   rD   rE   
<dictcomp>\  r   zKTestDataFrameConstructors.test_constructor_dict_nan_key.<locals>.<dictcomp>ZaxisrH   r1   r6   r   rY   )r   r   sort_valuesr8   r9   r:   r>   r?   r@   r[   r   rt   rC   rD   r>  rE   test_constructor_dict_nan_keyV  s    
z7TestDataFrameConstructors.test_constructor_dict_nan_keyc                    s   t d|dfd|fg t d|f|dfgddgdd	gdd
gg fddtdD }t|djd|fdd}ttjddddd d}t|| t|djd|fdd}t|| t| d}t|| d S )N)            rw   rM   r   r5   rN   r4   r   c                    s"   i | ]} | t | d qS r<  r   r=  r>  rD   rE   r@  o  r   zQTestDataFrameConstructors.test_constructor_dict_nan_tuple_key.<locals>.<dictcomp>rA  rH   r1   r6   r   rY   )	r   r   r   rB  r8   r9   r:   r>   r?   rC  rD   r>  rE   #test_constructor_dict_nan_tuple_keyi  s    z=TestDataFrameConstructors.test_constructor_dict_nan_tuple_keyc                 C   s`   t tjdtjdtdddd}|d d }||d}t|d}t|td	d
}t|| d S )Nr   r6   r  r  rY   r   r   rw   r   bar   r   )	r   r8   r9   r*   r#   r   r   r>   r?   )r@   r"  r#  r|   r$  rC   rD   rD   rE   %test_constructor_dict_order_insertion|  s    

z?TestDataFrameConstructors.test_constructor_dict_order_insertionc                 C   sR   t tjddgdddgitjdgd}t ddgddggtjdgd}t|| d S )NrN   rM   r5   r   )r   r8   re   r>   r?   r@   rt   rC   rD   rD   rE   )test_constructor_dict_nan_key_and_columns  s    $zCTestDataFrameConstructors.test_constructor_dict_nan_key_and_columnsc                 C   sl   g d}t |}t||d}t|j  s4J g d}t |}t||d}t|j  shJ d S )N)rM   r5   r5   r5   rQ  r   )rQ  rP  rQ  )r   from_tuplesr   r$   r   r   r!  )r@   tuplesmirB   rD   rD   rE   test_constructor_multi_index  s    

z6TestDataFrameConstructors.test_constructor_multi_indexc                 C   s   t dggdggddgd}t ddgtddgddtdggdggdd}t|| t dggdggddggd}t ddgtddggddggdtdggdggdd}t|| d S )	NrN   rM   r   rZ   r1   r6   r   )Zlevelscodesr   )r   r   r   r>   r?   r@   rB   rC   rD   rD   rE   test_constructor_2d_index  s    z3TestDataFrameConstructors.test_constructor_2d_indexc                 C   s"  d}t jt|d$ ttddgd W d    n1 s<0    Y  d}t jt|d( tddd	g d
d W d    n1 s0    Y  d}t jt|d6 ttddg dtdddd W d    n1 s0    Y  t	g dg}d}t jt|d$ tdgt
d|d W d    n1 s60    Y  t	g d}d}t jt|d$ tdgt
d|d W d    n1 s0    Y  t jtdd* ttdg ddgd W d    n1 s0    Y  d}t jt|d2 ttjddg ddgd W d    n1 s,0    Y  d}t jt|d4 ttjddd d!gddgd W d    n1 s0    Y  d"}t jt|d* tt
d#t
d#d$fd%d& W d    n1 s0    Y  d'}t jt|d td(d)d	 W d    n1 s0    Y  d S )*Nz)Empty data passed with indices specified.r_   r   rN   rY   r  rw   r   r   r   r  z:Shape of passed values is \(4, 3\), indices imply \(3, 3\)r3   )r4   r5   r   r   baz
2000-01-01r5   r  rV  r4   r   rH   z:Shape of passed values is \(1, 3\), indices imply \(1, 4\)r4   rZ   r   r   z:Shape of passed values is \(3, 1\), indices imply \(1, 4\)Must pass 2-d inputr5   r5   r5   r   :Shape of passed values is \(2, 3\), indices imply \(1, 3\)rM   rP  :Shape of passed values is \(2, 3\), indices imply \(2, 2\)r   rn   z,2 columns passed, passed data had 10 columnsr      )r   Ztwosr   r5  FT)rf   rg   r   r   r8   r   r9   r:   r#   rd   r   r  r   r   )r@   rh   rA   rD   rD   rE   test_constructor_error_msgs  sV    26
$44:&&:z5TestDataFrameConstructors.test_constructor_error_msgsc                 C   s|   |dd t dD |dd t dD d}t|}tdd | D }t|| || }t|}t|| d S )Nc                 s   s   | ]}|d | fV  qdS )g      $@NrD   r   rD   rD   rE   r     r   zKTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<genexpr>r   c                 s   s   | ]}|d | fV  qdS )g      4@NrD   r   rD   rD   rE   r     r   r  c                 S   s   i | ]\}}|t | qS rD   )r   items)r   colvalrD   rD   rE   r@    r   zLTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<dictcomp>)r   r   re  r>   r?   )r@   Zdict_subclassr   rB   ZrefdfrD   rD   rE   test_constructor_subclass_dict  s    z8TestDataFrameConstructors.test_constructor_subclass_dictc                 C   st   i }t j|jd |jd df< | D ]&\}}tt}||  |||< q&t	|}|j
|jd}t|| d S )Nr   rn   rY   )r8   re   r   rZ   re  r   r   r   r{   r   r   r>   r?   )r@   r   r   kvdctr$  rC   rD   rD   rE   test_constructor_defaultdict  s    
z6TestDataFrameConstructors.test_constructor_defaultdictc                 C   sD   t g dg}tdgdgdgdgdg dd}t|j| d S )N)      @r   r   r   rm  r   r   r   )r|   r   r   rw   r   )r8   rd   r   r>   assert_numpy_array_equalr   r@   rC   rB   rD   rD   rE   test_constructor_dict_block  s    z5TestDataFrameConstructors.test_constructor_dict_blockc                 C   s   dddddddd}t |td	}t|d
ks4J |d jtjksHJ |d jtjks\J t |}t|d
kstJ |s|d jtjksndsJ |d jtjksJ d S )NrN   rM   r'  r(  r   3)r(  r   rq  r  r6   r5   rn   r   r   )r   r   rQ   r7   r8   r*   r   )r@   r   	test_datar$  rD   rD   rE   test_constructor_dict_cast  s    z4TestDataFrameConstructors.test_constructor_dict_castc                 C   s   t ttddd tdD t ttdtjddd}tjt	dd t
|td	 W d    n1 sr0    Y  d S )
Nrc  c                 S   s   g | ]}d | qS )Zword_rD   r  rD   rD   rE   r     r   zITestDataFrameConstructors.test_constructor_dict_cast2.<locals>.<listcomp>   rM   r  zcould not convert stringr_   r6   )r   r   r   r8   r   r   standard_normalrf   rg   r   r   r   )r@   rr  rD   rD   rE   test_constructor_dict_cast2  s
    z5TestDataFrameConstructors.test_constructor_dict_cast2c                 C   s2   ddt jdi}t|}t|d d ts.J d S )NZCol1zA String)ZRow1Row2rw  )r8   re   r   r   r   )r@   r|   rB   rD   rD   rE   !test_constructor_dict_dont_upcast$  s    z;TestDataFrameConstructors.test_constructor_dict_dont_upcastc                 C   s<   t ddgddggddgddgd}t|d d ts8J d S )NrN   rM   rw   r   r   )r   r   r   )r@   dmrD   rD   rE   "test_constructor_dict_dont_upcast2)  s    "z<TestDataFrameConstructors.test_constructor_dict_dont_upcast2c                 C   s<   ddd}t |}t dd | D }tj||dd d S )NrN   rM   r5   r]  r   c                 S   s   i | ]\}}|t |qS rD   )r   )r   ri  rj  rD   rD   rE   r@  2  r   zMTestDataFrameConstructors.test_constructor_dict_of_tuples.<locals>.<dictcomp>FZcheck_dtype)r   re  r>   r?   r@   r   rt   rC   rD   rD   rE   test_constructor_dict_of_tuples-  s    
z9TestDataFrameConstructors.test_constructor_dict_of_tuplesc                 C   sB   t dt ddd}t|}tg dg dd}t|| d S )Nr5   rH   r   r+  )r5   r4   r   r   r   r>   r?   r}  rD   rD   rE   test_constructor_dict_of_ranges5  s    z9TestDataFrameConstructors.test_constructor_dict_of_rangesc                 C   sH   t tdttdd}t|}tg dg dd}t|| d S )Nr5   r   r+  rM   rN   r   )iterr   reversedr   r>   r?   r}  rD   rD   rE   "test_constructor_dict_of_iterators=  s    z<TestDataFrameConstructors.test_constructor_dict_of_iteratorsc                 C   sX   dd t dD dd tt dD d}t|}tg dg dd}t|| d S )Nc                 s   s   | ]
}|V  qd S r   rD   r  rD   rD   rE   r   G  r   zPTestDataFrameConstructors.test_constructor_dict_of_generators.<locals>.<genexpr>r5   r   r+  r  )r   r  r   r>   r?   r}  rD   rD   rE   #test_constructor_dict_of_generatorsE  s    *z=TestDataFrameConstructors.test_constructor_dict_of_generatorsc                 C   s  dddddddddd	d
dd}t | }t|}tdd |D tdd |D dj}t|j|_t|| ddddd|d< |	dd|d f tdd |D t
dd |D dddj}t
|jdd|_t|}|j|j|jd}t|| d S )Nr   rN   rM   )r	  r	  r	  jr  r	  rH   r   r4         	   ))rw   rw   rJ  )r   r   c                 S   s   g | ]}|d  qS rN   rD   r   rD   rD   rE   r   U  r   zNTestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   s   g | ]}|d  qS r   rD   r   rD   rD   rE   r   U  r   rY   g     ^@o   )r   r  r  r  zc                 S   s   g | ]}|d  qS r  rD   r   rD   rD   rE   r   `  r   c                 S   s   g | ]}|d  qS r  rD   r   rD   rD   rE   r   `  r   F)Ztupleize_colsrV  )sortedre  r   r   rR  TrZ   r>   r?   insertr   r   r   )r@   r|   Z_drB   rC   rD   rD   rE    test_constructor_dict_multiindexL  s.    


 z:TestDataFrameConstructors.test_constructor_dict_multiindexc           	   	      s   g d  fdd}|t j}|dd }|t}tdd d d dd dd d dd d d	d dd d d d
dgdd  D d}t|}t|}t|}t|| t|| t|| d S )N)z
1984-02-19z
1988-11-06z
1989-12-03z
1990-03-15c                    s    fddt D S )Nc                    s"   i | ]\}}| |d | iqS rM   rD   r   r	  sr   rD   rE   r@  l  r   ziTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<dictcomp>)	enumerater  Zdates_as_strr  rE   create_datak  s    zUTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S   s   t | dS )Nz%Y-%m-%d)r	   strptimer   rD   rD   rE   r   o  r   zRTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>r   r   rN   rM   r5   rM   r4   rH   c                 S   s   g | ]}t |qS rD   )r!   )r   rX   rD   rD   rE   r   y  r   zTTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<listcomp>rY   )r8   r   r!   r   r>   r?   )	r@   r  Zdata_datetime64Zdata_datetimeZdata_TimestamprC   Zresult_datetime64Zresult_datetimeZresult_TimestamprD   r  rE   &test_constructor_dict_datetime64_indexg  s&    

z@TestDataFrameConstructors.test_constructor_dict_datetime64_indexz
klass,namec                 C   s   t | dS Nr:  )r8   timedelta64r  rD   rD   rE   r     r   r  c                 C   s
   t | dS )N)days)r
   r  rD   rD   rE   r     r   Zpytimedeltac                 C   s
   t | dS r  r    r  rD   rD   rE   r     r   zTimedelta[ns]c                 C   s   t | ddS )Nr:  r  )r    r\   r  rD   rD   rE   r     r   zTimedelta[s]c              	      s|   g d} fddt |D }tdd d d dd dd d dd d dd dd d d ddgd	d
 |D d}t|}t|| d S )NrN   rM   r5   r4   c                    s"   i | ]\}}| |d | iqS r  rD   r  klassrD   rE   r@    r   zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<dictcomp>r   r  rM   r4   rH   c                 S   s   g | ]}t |d qS )r:  r  )r   tdrD   rD   rE   r     r   zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<listcomp>rY   )r  r   r>   r?   )r@   r  rc   Z	td_as_intr   rC   rt   rD   r  rE   'test_constructor_dict_timedelta64_index  s    
zATestDataFrameConstructors.test_constructor_dict_timedelta64_indexc                 C   s   t jg ddd}t jg ddd}t||d}|d j|jksFJ |d j|jksZJ t|t |t d}|d j|jksJ |d j|jksJ d S )	N)z2012-01r   z2012-04r   freq)z
2012-02-01z
2012-03-01r   r:  r   rw   r   )pdZPeriodIndexr   r7   r<   r=   rq   r   rD   rD   rE   test_constructor_period_dict  s    "z6TestDataFrameConstructors.test_constructor_period_dictc                 C   sN   |\}}t d|idgd}|d j|ks,J t dgdg|d}t|| d S )Nrw   r   rY   r^  )r   r7   r>   r?   )r@   Zea_scalar_and_dtypeZ	ea_scalarZea_dtyperB   rC   rD   rD   rE   &test_constructor_dict_extension_scalar  s
    z@TestDataFrameConstructors.test_constructor_dict_extension_scalarz
data,dtypez2020-01r   )leftrightr1   r  z
2011-01-01
US/EasternrL   r  )unitrL   c                 C   sl   t ddgddg|d}|d j|ks(J |d j|ks:J tj|gd |d}t ||d}t|| d S )	Nr   rN   rw   r   r^  rM   r6   r   )r   r7   r  rd   r>   r?   )r@   r   r7   rB   rA   rC   rD   rD   rE   &test_constructor_extension_scalar_data  s    z@TestDataFrameConstructors.test_constructor_extension_scalar_datac                 C   s   t jddd}ttjdd|d}i }|jD ](}|jD ]}|	|||
|i |< q<q2t||d}t|| i }|jD ](}|jD ]}|	|||
|i |< qq~t||dj}t|| d S )Nz1/1/2000r   r  rM   r   r   r   rY   )r  period_ranger   r8   r   r   ru  r   rZ   r3  
setdefaultr>   r?   r  )r@   r   rB   r   rf  rowrt   rD   rD   rE   "test_nested_dict_frame_constructor  s    



z<TestDataFrameConstructors.test_nested_dict_frame_constructorc                 C   s  |dt d}t|g dddgd}t|jdks4J t|jdksFJ t|dd	gg d
d}t|jdkspJ t|jdksJ |tjurd}tjt	|d* t|g dddgtj
d W d    n1 s0    Y  d S t|g dddgtj
d}|jjtj
ks
J d}tjt|d$ t|g ddgd W d    n1 sH0    Y  d}tjt|d& t|d	dgddgd W d    n1 s0    Y  tjtdd( t|dg ddgd W d    n1 s0    Y  t|}tj|jttddd tj|jttddd t|ddgd}tj|jttddd t|g dd}tj|jttddd t|d}t|jdksJ t|d}t|jdksJ d S )NrP  r6   r   rN   rM   rV  r5   )r5   r   r{  r^   r_   r   rZ   r7   ra  rb  rn   r_  r`  Tr0  rY   r   )r   r5   r   )r5   r   )r   r   rQ   rZ   r   r8   r   rf   rg   r   r1   r   r7   r   r>   r   r   r   )r@   r   matr$  rh   rD   rD   rE   _check_basic_constructor  sF    
8468z2TestDataFrameConstructors._check_basic_constructorc                 C   s8   |  tj tddgddgdgd}t|dks4J d S )Nr   r   r   rN   r   r   rM   )r  r8   r   r   rQ   r)  rD   rD   rE   test_constructor_ndarray  s    z2TestDataFrameConstructors.test_constructor_ndarrayc                 C   s   |  tj tjdtd}d|d< d|d< t|g ddd	gd
}d|d d ksTJ d|d d	 kshJ tjdtd}t|g ddd	gd
}tt||k sJ d S )NrP  r6   r   r   r   rN   rM   r   rN   rM   rV  r   r   )r  r   
masked_allr   r   r8   r!  asarray)r@   r  r$  rD   rD   rE   test_constructor_maskedarray  s    z6TestDataFrameConstructors.test_constructor_maskedarrayz7ignore:elementwise comparison failed:DeprecationWarningc                 C   s  t jdtd}t|g dddgd}t|jdks6J t|jdksHJ tt	||k sbJ t|g dddgtj
d}|jjtj
ksJ t |}d|d	< d|d
< t|g dddgd}d|d d ksJ d|d d ksJ t jddd}t|g dddgd}t|jdksJ t|jdks2J t|j sFJ d}tjt|d* t|g dddgtjd W d    n1 s0    Y  t |}d|d	< d|d
< t|g dddgd}d|d dd ksJ d|d dd ksJ t jdtd}t|g dddgd}t|jdks4J t|jdksHJ tt	||k sdJ t|g dddgtd}|jjtksJ t |}d|d	< d|d
< t|g dddgd}|d d du sJ |d d du sJ d S )NrP  r6   r   rN   rM   rV  r5   r  r   r  r   r   rj   z8datetime64\[ns\] values and dtype=int64 is not supportedr_   ra   TF)r   r  r   r   rQ   rZ   r   r8   r!  r  r*   r   r7   r   r$   rf   rg   r   r1   r<   r  r=   )r@   r  r$  Zmat2rh   rD   rD   rE   %test_constructor_maskedarray_nonfloat/  sP    
:

z?TestDataFrameConstructors.test_constructor_maskedarray_nonfloatc                 C   s   t jdtd }t|ddgddgd}ttjtjgtjtjgdddgddgtd	}t|| t j	dtd }t|ddgddgd}td
d
gd
d
gdddgddgtd	}t|| d S )N)rM   rM   r6   r   rn   rN   rM   rV  r  r  r   )
r   r  r   Zharden_maskr   r8   re   r>   r?   r   )r@   Zmat_hardrt   rC   rD   rD   rE   %test_constructor_maskedarray_hardeneds  s$    z?TestDataFrameConstructors.test_constructor_maskedarray_hardenedc                 C   sp   t jjt jjdddgddgd d}|tj}tjt	dd t
|td W d    n1 sb0    Y  d S )	Nr   )r   <f8)Zpricer  r6   F)maskzPass \{name: data\[name\]r_   )r8   r   rd   r  r   r   Z	mrecarrayrf   rg   r   r   r   r@   r   rD   rD   rE   %test_constructor_maskedrecarray_dtype  s    z?TestDataFrameConstructors.test_constructor_maskedrecarray_dtypec                 C   s   t g d}|jjdksJ d S )NrY   r   )r   r   shaperl   rD   rD   rE   test_constructor_corner_shape  s    
z7TestDataFrameConstructors.test_constructor_corner_shapez%data, index, columns, dtype, expectedr   rw   r   r*   r   c                 C   s"   t ||||}|jj|ksJ d S r   )r   r   r7   )r@   r   rZ   r   r7   rC   rB   rD   rD   rE   test_constructor_dtype  s    z0TestDataFrameConstructors.test_constructor_dtypezdata,input_dtype,expected_dtype)TFNbooleanr   r   NZFloat64)rN   rM   NInt64r   r   c                 C   s(   t d|i|d}|d j| ks$J d S )Nrw   r6   r  )r@   r   Zinput_dtypeZexpected_dtyperB   rD   rD   rE   0test_constructor_dtype_nullable_extension_arrays  s    zJTestDataFrameConstructors.test_constructor_dtype_nullable_extension_arraysc                 C   s   dddddd}t |tdd}|d	 jtjks6J |d
 jtjksJJ |d jtjks^J |d jtjksrJ |s|d jtjksndsJ d S )NrN   Tr   y              @r   )r   r  r   complexr=   r   rY   r   r  r   r  r=   r   )	r   r8   r9   r7   r1   r  r*   r   r   )r@   r   r   rB   rD   rD   rE   !test_constructor_scalar_inference  s    z;TestDataFrameConstructors.test_constructor_scalar_inferencec                 C   s   t tjdddd}t |d jdgd d}t|| tj	t
dd t ddd W d    n1 st0    Y  d S )	NrM   r   Tr   rw   zmust pass an indexr_   F)r   r8   r   r   ru  r   r>   r?   rf   rg   r   )r@   rB   r%  rD   rD   rE   #test_constructor_arrays_and_scalars  s
    z=TestDataFrameConstructors.test_constructor_arrays_and_scalarsc                 C   s8   t |}t|| t |tjd}|jjtjks4J d S Nr6   )r   r>   r?   r8   r1   r   r7   )r@   r   rB   Z	df_castedrD   rD   rE   test_constructor_DataFrame  s    z4TestDataFrameConstructors.test_constructor_DataFramec                 C   s*   t t  dd}t g dd}t|| d S )Nr=   r6   r   )r@   actualrC   rD   rD   rE    test_constructor_empty_dataframe  s    z:TestDataFrameConstructors.test_constructor_empty_dataframec                 C   s  t jdd}t|dgt dd}|jjdks8J t jdd}t|}|jjdksbJ |jjdksrJ tddgt dd}|jjdksJ tddgd}|jjd	ksJ tt dd
}|jjdksJ t j	ddgt
ddd}d}tjt|d& t|ddgdgtd W d    n1 s00    Y  tt|j}t|| tt jdtdt jdt jddt dd
}t|jdksJ |jjt jksJ d S )NrM   r   r   rV  r   rn   r   rM   r   )r   rM   rY   )r   r   r   r   r6   rN   z(could not convert string to float: 'foo'r_   rZ   r   r7   r  )r8   r   r   ru  r   r9   r   ndimr  rd   r=   r:   rf   rg   r   r   r.  r>   r?   r   r   r*   rQ   r   r7   )r@   r   rA   ry  r  rh   rD   rD   rE   test_constructor_more  s2    6z/TestDataFrameConstructors.test_constructor_morec                 C   sx   t g g d}t g d}t|| t g ddgd}t i ddgd}t|| dd }t | ddgd}t|| d S )NrY   r   rn   r   c                   s   s   dE d H  d S r   rD   rD   rD   rD   rE   	empty_gen  s    zHTestDataFrameConstructors.test_constructor_empty_list.<locals>.empty_genr   )r@   rB   rC   r  rD   rD   rE   test_constructor_empty_list  s    
z5TestDataFrameConstructors.test_constructor_empty_listc                 C   s   t ddgddggddgd}t|d s,J |sB|d jtjksJndsJJ t d	td
i}dd td
D }t |}t|| d S )NrN   rw   rM   r   numr;   rL  r   r   r   c                 S   s   g | ]}t |qS rD   r8   rd   r   rD   rD   rE   r     r   zLTestDataFrameConstructors.test_constructor_list_of_lists.<locals>.<listcomp>)	r   r   r7   r8   r   r9   r   r>   r?   )r@   r   rB   rC   r   rt   rD   rD   rE   test_constructor_list_of_lists  s    z8TestDataFrameConstructors.test_constructor_list_of_listsc                 C   sx   t ddg}tjd d gtd}||d< |d |d< t|}tt|}t|| |jdksbJ t	|d j
| d S )NrN   rM   r6   r   )rM   rN   )r   r8   rd   r=   r   r  r>   r?   r  rn  r   )r@   serrA   rB   rC   rD   rD   rE   .test_nested_pandasarray_matches_nested_ndarray  s    zHTestDataFrameConstructors.test_nested_pandasarray_matches_nested_ndarrayc                 C   sZ   t dt dg}tg dg dg|d}t|}tg dg dg|d}t|| d S )NabcdZcdefr  r4   r   rH   r  r   )r   r   r   Zfrom_arraysr>   r?   )r@   r   rt   rT  rC   rD   rD   rE   2test_constructor_list_like_data_nested_list_column&  s
    
zLTestDataFrameConstructors.test_constructor_list_like_data_nested_list_columnc                 C   s^   t dt dg}d}tjt|d( tg dg dg|d W d    n1 sP0    Y  d S )Nr   cdez#3 columns passed, passed data had 4r_   r  r  r   r   rf   rg   r   r   r@   r   rh   rD   rD   rE   0test_constructor_wrong_length_nested_list_column0  s    zJTestDataFrameConstructors.test_constructor_wrong_length_nested_list_columnc                 C   s^   t dt dg}d}tjt|d( tg dg dg|d W d    n1 sP0    Y  d S )Nr  r  zall arrays must be same lengthr_   r  r  r   r  r  rD   rD   rE   2test_constructor_unequal_length_nested_list_column8  s    zLTestDataFrameConstructors.test_constructor_unequal_length_nested_list_columnr   
2021-01-01r   rW   c                 C   s:   t |g ddgd}t dtdgd i}t|| d S )Nr+  r   r   r  r5   )r   r!   r>   r?   r}  rD   rD   rE   &test_constructor_one_element_data_listA  s    z@TestDataFrameConstructors.test_constructor_one_element_data_listc                 C   sj   G dd dt j}|ddg|ddgg}ddg}t||d	}tddgddgg|d	}tj||d
d d S )Nc                   @   s0   e Zd ZddddZdd ZedddZdS )	zPTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainerNreturnc                 S   s
   || _ d S r   )_lst)r@   lstrD   rD   rE   __init__U  s    zYTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__init__c                 S   s   | j |S r   )r  __getitem__)r@   nrD   rD   rE   r  X  s    z\TestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__getitem__c                 S   s
   | j  S r   )r  __len__)r@   rD   rD   rE   r  [  s    zXTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__len__)__name__
__module____qualname__r  r  r   r  rD   rD   rD   rE   DummyContainerT  s   r  rN   rw   rM   r   r  r;   r   Fr|  )r   Sequencer   r>   r?   )r@   r  Zlst_containersr   rt   rC   rD   rD   rE   test_constructor_sequence_likeP  s    
z8TestDataFrameConstructors.test_constructor_sequence_likec                 C   s   t dtdtdi}t dttdi}tj||dd t ttdttdg}t tdtdtdtdg}tj||dd d S )Nr   r	  r   Fr|  )r   rd   r   r   r>   r?   rN  rD   rD   rE   test_constructor_stdlib_arrayd  s    $z7TestDataFrameConstructors.test_constructor_stdlib_arrayc                 C   s,   t td}t ttd}t|| d S Nr   r   r   r   r>   r?   rN  rD   rD   rE   test_constructor_rangeo  s    z0TestDataFrameConstructors.test_constructor_rangec                 C   s@   t tdtdg}t ttdttdg}t|| d S r  r  rN  rD   rD   rE   test_constructor_list_of_rangesu  s    z9TestDataFrameConstructors.test_constructor_list_of_rangesc                 C   s:   G dd d}t g dgd }t | }t|| d S )Nc                   @   s   e Zd ZedddZdS )zATestDataFrameConstructors.test_constructor_iterable.<locals>.Iterr  c                 s   s   t dD ]}g dV  qd S )Nr   r{  )r   )r@   r	  rD   rD   rE   __iter__}  s    zJTestDataFrameConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)r  r  r  r   r  rD   rD   rD   rE   Iter|  s   r  r{  r   r   )r@   r  rC   rt   rD   rD   rE   test_constructor_iterablez  s    
z3TestDataFrameConstructors.test_constructor_iterablec                 C   s0   t ttd}t ttd}t|| d S r  r   r  r   r   r>   r?   rN  rD   rD   rE   test_constructor_iterator  s    z3TestDataFrameConstructors.test_constructor_iteratorc                 C   sH   t ttdttdg}t ttdttdg}t|| d S r  r   rN  rD   rD   rE   "test_constructor_list_of_iterators  s    z<TestDataFrameConstructors.test_constructor_list_of_iteratorsc                 C   s   dd t dD }dd t dD }ttt dtt dg}t||g}t|| dd t dD }t|}tt ddd}tj||dd	 d S )
Nc                 s   s   | ]
}|V  qd S r   rD   r  rD   rD   rE   r     r   zGTestDataFrameConstructors.test_constructor_generator.<locals>.<genexpr>r   c                 s   s   | ]
}|V  qd S r   rD   r  rD   rD   rE   r     r   c                 s   s   | ]}|d gV  qdS )rw   NrD   r  rD   rD   rE   r     r   rw   rO   Fr|  )r   r   r   r>   r?   )r@   Zgen1Zgen2rC   rt   genrD   rD   rE   test_constructor_generator  s    z4TestDataFrameConstructors.test_constructor_generatorc                 C   s*   t i g}t tdg d}t|| d S )NrN   r   )r   r   r>   r?   rN  rD   rD   rE   test_constructor_list_of_dicts  s    
z8TestDataFrameConstructors.test_constructor_list_of_dictsc                 C   sf   t ddg}t ddg}t d|fd|fg}t|}ddgdd	gd
}t|ddgd}t|| d S )N)r   rN   )rw   rM   )r   rM   )rw   r   r   r   rN   rM   r   )r   r   r   rw   )r   rZ   )r   r   r>   r?   )r@   Znested1Znested2r   rt   rC   rD   rD   rE   3test_constructor_ordered_dict_nested_preserve_order  s    zMTestDataFrameConstructors.test_constructor_ordered_dict_nested_preserve_order	dict_typec                 C   st   t ddggddgd}| }dg|d< dg|d< t |}t|| | }d|d< d|d< t |g}t|| d S )NrM   rN   r   rw   r   r   )r@   r  rC   r   rt   rD   rD   rE   ,test_constructor_ordered_dict_preserve_order  s    


zFTestDataFrameConstructors.test_constructor_ordered_dict_preserve_orderc                 C   s   | }d|d< d|d< | }d|d< d|d< ddd}t ddgddggddgd}t ||g}t|| t ddgddgddggddgd}t |||g}t|| d S )NrM   r   rN   rw   rJ  r   r   )r@   r  Zrow_oneZrow_twoZ	row_threerC   rt   rD   rD   rE   0test_constructor_ordered_dict_conflicting_orders  s    
"zJTestDataFrameConstructors.test_constructor_ordered_dict_conflicting_ordersc                 C   sT   dd t dD }t|}tg dg dg ddg dg dd}t|| d S )Nc                 S   s"   g | ]}t |g d t|dqS )r   rw   r   r  )r   r;   r  rD   rD   rE   r     r   z[TestDataFrameConstructors.test_constructor_list_of_series_aligned_index.<locals>.<listcomp>r5   r+  r
  )0r(  r   rV  r  )r@   seriesrt   rC   rD   rD   rE   -test_constructor_list_of_series_aligned_index  s    zGTestDataFrameConstructors.test_constructor_list_of_series_aligned_indexc                 C   sJ   G dd dt }ddd}||g}|g}t|}t|}t|| d S )Nc                   @   s   e Zd ZdS )zTTestDataFrameConstructors.test_constructor_list_of_derived_dicts.<locals>.CustomDictNr  r  r  rD   rD   rD   rE   
CustomDict  s   r        ?r5   r   )r   r   r>   r?   )r@   r  r|   Zdata_customr   Zresult_customrt   rD   rD   rE   &test_constructor_list_of_derived_dicts  s    

z@TestDataFrameConstructors.test_constructor_list_of_derived_dictsc                 C   s`   t jddt jddd}tjtdd t| W d    n1 sR0    Y  d S )NrM   r   r  r  z%All arrays must be of the same lengthr_   )r8   r   r   ru  rf   rg   r   r   r  rD   rD   rE   test_constructor_ragged  s
    z1TestDataFrameConstructors.test_constructor_raggedc                 C   sD   t td}tddi|d}tdg di|d}tj||dd d S )Nr5   rw   r   rY   )r   r   r   Fr|  )r   r   r   r>   r?   )r@   rs   rB   rC   rD   rD   rE   test_constructor_scalar  s    z1TestDataFrameConstructors.test_constructor_scalarc                 C   s"   t |d |jdgd}|  d S )Nr   r   )r   rZ   r   )r@   r   rB   rD   rD   rE    test_constructor_Series_copy_bug  s    z:TestDataFrameConstructors.test_constructor_Series_copy_bugc                 C   s   i }dddd|d< t g dg dd|d	< t|}|jjs@J tjtd
d( tddgdddd W d    n1 s|0    Y  tddgt ddgddgdd}tddgddgdddgd}t|| d S )NrN   rM   r5   rZ  r   )r4   r5   rM   rN   )r   Zquxr[  r   rY   rn   zambiguous orderingr_   rw   r   r   r  )	r   r   rZ   Zis_monotonic_increasingrf   rg   r   r>   r?   r}  rD   rD   rE   &test_constructor_mixed_dict_and_Series  s    6"z@TestDataFrameConstructors.test_constructor_mixed_dict_and_Seriesc                 C   s8   ddgdg}t |}t ddgddgg}t|| d S )NrN   rM   r5   r4   r5   r4   r   r}  rD   rD   rE    test_constructor_mixed_type_rows  s    z:TestDataFrameConstructors.test_constructor_mixed_type_rowsztuples,lists)rD   rD   r{  r]  c                 C   s    t |}t |}t|| d S r   r   )r@   rS  listsrt   rC   rD   rD   rE   test_constructor_tuple  s    z0TestDataFrameConstructors.test_constructor_tuplec                 C   s4   t dddgi}t dtddgi}t|| d S )Nr   r  r  r   r   r>   r?   rN  rD   rD   rE   test_constructor_list_of_tuples)  s    z9TestDataFrameConstructors.test_constructor_list_of_tuplesc                 C   s   t dtd}|dd|ddg}tddgddgd}t|}t|| tddgddgd}t|d	d
gd}t|| d S )NZPandasabrN   r5   rM   r4   r   )r   r  r   r  r   )r   r   r   r>   r?   )r@   Znamed_tuplerS  rC   rt   rD   rD   rE   $test_constructor_list_of_namedtuples.  s    z>TestDataFrameConstructors.test_constructor_list_of_namedtuplesc                 C   sX   t ddtfdtfg}|dd|ddg}tddgddgd}t|}t|| d S )NPointr   r   r   r5   rN   r   r   )r   r   r   r>   r?   )r@   r  r   rC   rt   rD   rD   rE   $test_constructor_list_of_dataclasses;  s
    z>TestDataFrameConstructors.test_constructor_list_of_dataclassesc                 C   s   t ddtfdtfg}t ddtfdtfdtfg}|dd|d	ddg}tdtjgddgtjd	gtjdgd
}t|}t|| d S )Nr  r   r   HLinex0x1r   r5   rN   )r   r   r"  r#  )r   r   r   r8   re   r>   r?   )r@   r  r!  r   rC   rt   rD   rD   rE   7test_constructor_list_of_dataclasses_with_varying_typesD  s    "zQTestDataFrameConstructors.test_constructor_list_of_dataclasses_with_varying_typesc                 C   sj   t ddtfdtfg}d}tjtt|d( t|dddddg W d    n1 s\0    Y  d S )	Nr  r   r   z0asdict() should be called on dataclass instancesr_   r   rN   r  )r   r   rf   rg   r   reescaper   )r@   r  rh   rD   rD   rE   1test_constructor_list_of_dataclasses_error_thrownR  s    zKTestDataFrameConstructors.test_constructor_list_of_dataclasses_error_thrownc              	   C   sr   ddddddddd	d
dddddddg}t g dg dg dg dg dg dd}t |}t|| d S )NrN   r4   r  r   )FirstSecondThirdFourthr   rM   rE  r  )r)  r(  r+  r*  rH   r5   r3   r     rH  )r)  r(  r+  r*  YYYXXXr{  r]  )r  r  r  )r   rE  r3   )NNr,  )NNrH  )r(  r)  r*  r+  r-  r.  r   )r@   r   rC   rt   rD   rD   rE   #test_constructor_list_of_dict_order[  s    
z=TestDataFrameConstructors.test_constructor_list_of_dict_orderc                 C   s  t g dg ddd}t|}|jd dks0J t|j|j tjd	d}t |dd}t|}td|i}t
|| t |td	d
d}t|}td|i}t
|| d}tjt|d  t|ddgd W d    n1 s0    Y  t g dtd}t|}|jd dksJ t |dd}t||gj}t||dddgd}t
|| t||gj}t||dddgd}t
|| d S )Nr{  r   r   r  r   rM   r   ro   r5   rH  rY   z<Shape of passed values is \(10, 1\), indices imply \(10, 2\)r_   rN   r   rc   r7   )r   	Unnamed 0r1  r   )r   r   r   r>   r   rZ   r8   r   r   ru  r?   r   rf   rg   r   r=   r  )r@   rw   rB   rA   r  rC   rh   s1rD   rD   rE   test_constructor_Series_namedo  s4    .z7TestDataFrameConstructors.test_constructor_Series_namedc                 C   s   t tddd}t tddd}tt|dgd|  tt|dgd|  t|dgdjshJ t|dgdjs|J d S )Nr   r   ro   rN   r   )r   r   r>   r?   r   to_framer   )r@   s0r2  rD   rD   rE   )test_constructor_Series_named_and_columns  s    zCTestDataFrameConstructors.test_constructor_Series_named_and_columnsc                 C   s   t g dg ddd}t g dg dd}tddg}t||d}t||}|jd dksbJ t|| t||d}t||}|jd dksJ t|j| t|| d S )	Nr{  r   r   r  rY   rw   r   r   )	r   r   r   r   r   r>   r?   r   rZ   )r@   r2  s2Zother_indexdf1Zexp1r   Zexp2rD   rD   rE   +test_constructor_Series_differently_indexed  s    zETestDataFrameConstructors.test_constructor_Series_differently_indexedz#name_in1,name_in2,name_in3,name_out))rs   rs   rs   rs   )rs   rs   NN)rs   NNN)idx1idx2NN)r:  r:  r;  N)r:  r;  Zidx3N)NNNNc           
      C   s   t g d|dt g d|dt g d|dg}dd t|g dD }t|}t g d|d}td	d
dtjtjgtjd	d
dtjgtjtjd	d
dgd|d}	t||	 d S )Nr   ro   )r   r   r|   )r   r|   ec                 S   s"   i | ]\}}|t g d |dqS )r+  rY   r   )r   r	  r   rD   rD   rE   r@    s   zJTestDataFrameConstructors.test_constructor_index_names.<locals>.<dictcomp>)r   r   r  rw   r   r   r|   r<  r   rN   rM   rY   )r   r   r   r8   re   r>   r?   )
r@   Zname_in1Zname_in2Zname_in3Zname_outindicesr  rt   Zexp_indrC   rD   rD   rE   test_constructor_index_names  s"    	z6TestDataFrameConstructors.test_constructor_index_namesc                 C   s   t |jd d }t |jd d }d}tjt|dd  t|j||d}W d    n1 s^0    Y  t|jt	| t|jt	| d S )Nr   r5   z#Passing a BlockManager to DataFrameF)r`   Zcheck_stacklevelr   )
r   rZ   r   r>   assert_produces_warningDeprecationWarningr   rR   r   r   )r@   r   rZ   r   rh   rt   rD   rD   rE   test_constructor_manager_resize  s    .z9TestDataFrameConstructors.test_constructor_manager_resizec                 C   s   t |d t|d dddgd}t||jd d ddgf  d}tjt|d2 t |d t|d d d d W d    n1 s0    Y  d S )Nr   rn   r  r   zdoes not match index lengthr_   )r   r   r>   r?   r   rf   rg   r   )r@   r   rB   rh   rD   rD   rE   %test_constructor_mix_series_nonseries  s    z?TestDataFrameConstructors.test_constructor_mix_series_nonseriesc                 C   sR   d}t jt|d, ttjdgddggtjd W d    n1 sD0    Y  d S )Nr^   r_   rN   r   r6   )rf   rg   r   r   r8   re   r1   r7  rD   rD   rE   %test_constructor_miscast_na_int_dtype  s    z?TestDataFrameConstructors.test_constructor_miscast_na_int_dtypec                 C   s^   t ddggddgd}t ddgg}ddg|_t|| t jdgddgd}t|| d S )Nr  r   rw   r   )r  r   )r   r   r>   r?   Zfrom_records)r@   rB   ZedfZidfrD   rD   rE   "test_constructor_column_duplicates  s    
z<TestDataFrameConstructors.test_constructor_column_duplicatesc                 C   s   t ddgddgtd}t ddgddgtd}t|| t ddgddgtjd}t|| t ddgddgdd}t|| d S )Nr   rN   r  ZU5)r   r=   r;   r>   r?   r8   Zstr_ro  rD   rD   rE   (test_constructor_empty_with_string_dtype  s    zBTestDataFrameConstructors.test_constructor_empty_with_string_dtypec                 C   s,   t dg|d}t dg|d}t|| d S )Nc1r   r7   r   )r@   Znullable_string_dtyperC   rB   rD   rD   rE   ,test_constructor_empty_with_string_extension  s    zFTestDataFrameConstructors.test_constructor_empty_with_string_extensionc                 C   s  t dg dg dd}t|t t|jd|j|j t dg dg dd}t|t t|jd|j|j t dd	d
gddgd}t|t tj	ddgddggt
dd	d
gddgd d}tjt|d t dd	d
g W d    n1 s0    Y  tjt|d  t dddgd W d    n1 s80    Y  d}tjt|d& t dd	d
gddgt W d    n1 s0    Y  d S )N        r{  r   r   r*   r   r1   rw   rN   rM   r   r6   z*DataFrame constructor not properly called!r_   r   zincompatible data and dtype)r   r>   r?   r8   r  r  r<   rZ   r   rd   r=   rf   rg   r   r   r   )r@   rB   rh   rD   rD   rE   test_constructor_single_value  s2    	,0z7TestDataFrameConstructors.test_constructor_single_valuec                 C   s  t tj}t t jj}t t jj}tdddtdtddddddt 	d	d
}|j
}tt dg|svt |ndgd  t dt dg tdd
}t|| tdddddd|t jd|d|t jd|dit 	d	d
}|j
}tt dgt dg |st dndg t dg t |g ddd||gd
}t|| tdddddd|t jdgd	 |d|t jdgd	 |dit 	d	d
}|j
}tt dgt dg |st dndg t dg t |g ddd||gd
}t|| d S )NrN   r   r   Z20010101  rM   r   )r   rn   r   r:  Er   rY   r1   r   M8[s]M8[us]ZABCDErw   r   r   r   r6   r*   r=   )r8   r7   r   rc   r*   r   r   r!   r	   r9   r   r   r   r>   rr   rd   )r@   r   ZintnameZ	floatnameZ
objectnamerB   rt   rC   rD   rD   rE   test_constructor_with_datetimes4  s    











z9TestDataFrameConstructors.test_constructor_with_datetimesc                 C   s6   t dddd}dd |D }t|}|jdks2J d S )Nr\  r:  r   startr  rK   c                 S   s   g | ]}|  qS rD   to_pydatetimer   tsrD   rD   rE   r   }  r   zNTestDataFrameConstructors.test_constructor_with_datetimes1.<locals>.<listcomp>rj   )r#   r   r7   )r@   ind	datetimesZ
datetime_srD   rD   rE    test_constructor_with_datetimes1z  s    z:TestDataFrameConstructors.test_constructor_with_datetimes1c                 C   sv   t dddd}dd |D }dd |D }t|dgd	}||d
< |j}ttdtdgdd
gd}t|| d S )Nr\  r:  r   rR  c                 S   s   g | ]}|  qS rD   rT  rV  rD   rD   rE   r     r   zNTestDataFrameConstructors.test_constructor_with_datetimes2.<locals>.<listcomp>c                 S   s   g | ]}|  qS rD   )r   rV  rD   rD   rE   r     r   rY  r   datesdatetime64[ns]r=   rY   )r#   r   r   r   r8   r7   r>   rr   )r@   rX  rY  r[  rB   rt   rC   rD   rD   rE    test_constructor_with_datetimes2  s    z:TestDataFrameConstructors.test_constructor_with_datetimes2c                 C   s   t d}|tddd}td|idgd}|jd |ks@J t|jt	ddit
d	 td|ig}|jd |kszJ t|jt	dd
it
d	 d S )Nr    rN   zEnd Dater   rY   r   zdatetime64[us, US/Eastern]r6   datetime64[ns, US/Eastern])pytztimezoneZlocalizer	   r   iatr>   rr   r   r   r=   )r@   rL   rX   rB   rD   rD   rE    test_constructor_with_datetimes3  s    
z:TestDataFrameConstructors.test_constructor_with_datetimes3c                 C   s   t ddd}td|i}|jd jd u s,J t dddd}td|i}t|jd jdks^J t dddd}td|i}t|jd jdksJ d S )	N20130101r5   r  r[   r   UTCrJ   r  )r#   r   rb  rL   r;   )r@   drrB   rD   rD   rE    test_constructor_with_datetimes4  s    z:TestDataFrameConstructors.test_constructor_with_datetimes4c                 C   s^   t ddddd}td| jddi}t }||d< t|| td|i}t|| d S )	N1/1/2011r   10sr  rK   r  rL   rw   TZdropr#   r   Z	to_seriesZreset_indexr>   r?   )r@   r	  rC   rB   rD   rD   rE    test_constructor_with_datetimes5  s    z:TestDataFrameConstructors.test_constructor_with_datetimes5c                 C   sV   t ddddd}t dddd}t||d}t| jdd	|d}t|| d S )
Nrh  r   ri  r  rj  rK   r  r   Trk  rl  )r@   r	  Zi_no_tzrB   rC   rD   rD   rE    test_constructor_with_datetimes6  s
    z:TestDataFrameConstructors.test_constructor_with_datetimes6rA   r   c                 C   s*   t |j}ttdg}t|| d S )Nr\  )r   r   r   r8   r7   r>   rr   )r@   rA   rt   rC   rD   rD   rE   %test_constructor_datetimes_with_nulls  s    
z?TestDataFrameConstructors.test_constructor_datetimes_with_nullsorder)Kr   r   Fr  )r   r:  hr   r  msusrW   c                 C   s   d| d}t jg dg dg||d}t|}t|d}|dv rtjtdd	 || W d    n1 st0    Y  |d
}n|j|d}t|| d S )Nzdatetime64[])z
2015-01-01z
2015-01-02z
2015-01-03)z
2017-01-01z
2017-01-02z
2017-02-03r7   rq  rj   )r   r:  rt  r   Cannot castr_   zdatetime64[s]r6   )	r8   rd   r   r<   rf   rg   r   r>   r?   )r@   rq  r  r7   narB   rC   rD   rD   rE   !test_constructor_datetimes_non_ns  s     (z;TestDataFrameConstructors.test_constructor_datetimes_non_ns)r:  rt  r   r  ru  rv  rW   c           	      C   s   d| d}t jt ddt ddgt ddt ddgg||d}t|}|d	v r^d
}n|}t d| d}ttddtddgtddtddgg|d}t|| d S )Nztimedelta64[rw  rN   r:  rM   r4   r   rx  )r:  rt  r   r  zm8[r6   )r8   rd   r  r   r7   r    r>   r?   )	r@   rq  r  r7   rz  rB   Zexp_unit	exp_dtyperC   rD   rD   rE   !test_constructor_timedelta_non_ns  s(    	z;TestDataFrameConstructors.test_constructor_timedelta_non_nsc                 C   s0  t dd tdD }|j}ttdgd }t|| t dd tdD }|j}ttdgd }t|| t ddd	gi}|jjd
 tdksJ t ddg}|jjd
 tdksJ t ddg}|jjd
 tdksJ t dddgi}|jjd
 tdksJ t dddgi}|jjd
 tdksFJ t dditdd}|jjd
 tdksvJ t dditdd}|jjd
 tdksJ t g dg dt	ddd tdD g dd}|j}ttdtd|s tdndtdtdgt	dd}t|| d S )Nc                 S   s   g | ]}t d qS )r   )r8   r9   r   rD   rD   rE   r     r   zSTestDataFrameConstructors.test_constructor_for_list_with_dtypes.<locals>.<listcomp>r   r   c                 S   s    g | ]}t jt d ddqS )r   r0   r6   )r8   rd   r9   r   rD   rD   rE   r   "  r   r0   rw   l        l       r   r1   rN   rM   r   r   r*   r5   rY   )rN   rM   r4   r  )g333333?gffffff@gffffff@g333333@r  c                 S   s   g | ]}t d ddqS )  rN   )r	   r  rD   rD   rE   r   E  r   r4   )r   rM   rm  r  r=  r=   r   r\  Zabcde)
r   r   r   r   r8   r7   r>   rr   r   r   )r@   r   rB   rt   rC   rD   rD   rE   %test_constructor_for_list_with_dtypes  sR    	
z?TestDataFrameConstructors.test_constructor_for_list_with_dtypesc                 C   s@   t |dd}d|d< |d dk s(J |d dk r<J d S )NTr   r   r   )r   r!  )r@   r   coprD   rD   rE   test_constructor_frame_copyV  s    z5TestDataFrameConstructors.test_constructor_frame_copyc                 C   s@   |  }t|}|j|jus J tt||_t|| d S r   )	r   r   rR   r8   r9   rQ   rZ   r>   r?   )r@   r   origr  rD   rD   rE   #test_constructor_frame_shallow_copy\  s
    z=TestDataFrameConstructors.test_constructor_frame_shallow_copyc                 C   s   |s||j  }t|}d|d< |r:|j d dk rPJ n|j d dk sPJ t|dd}d|d< |j d dk rJ nz|j  }t|}|jjd jjsJ d|d< |jd dksJ t|dd}|jjd jjrJ d	|d< |jd d	ksJ d S )
Nr   Tr   rH   r   r  r   Fi  )	r   r   r   r!  rR   r   r   r   r   )r@   r   rT   r   rA   rB   rD   rD   rE   test_constructor_ndarray_copyg  s&    

z7TestDataFrameConstructors.test_constructor_ndarray_copyc                 C   sP   |j }td|d idd}d|j|jd |jd df< |d dk rLJ d S )Nr   Tr   r   r   r   )r.  r   r   rZ   r!  )r@   r   r  rB   rD   rD   rE   test_constructor_series_copy  s    z6TestDataFrameConstructors.test_constructor_series_copyrB   rY   g?g@r   r  r  )rK  rN   rM   r   c                 C   s   t t|jD ]}|jd d |f  qtt|jt|j }t|dkrtjt	dd$ |j
d d tjf  W d    q1 s0    Y  nft|dkrt|jd d |d f |j
d d tjf  n*t|jd d |f |j
d d tjf  d S )Nr   z^nan$r_   rN   )r   rQ   r   r   r8   r9   r$   rf   rg   KeyErrorr   re   r>   rr   r?   )r@   rB   r	  ZindexerrD   rD   rE   test_constructor_with_nas  s    40z3TestDataFrameConstructors.test_constructor_with_nasc                 C   s:   t dtjdgi}|d jtjks&J |d d r6J d S )Nrw   FrN   )r   r8   re   r7   r   )r@   r|   rD   rD   rE   &test_constructor_lists_to_object_dtype  s    z@TestDataFrameConstructors.test_constructor_lists_to_object_dtypec                 C   sZ   t g d}t|dd}t|d}t||jd}t||||d}t|| d S )Nr   r   rN   r  r6   r  )	r   r8   rd   r:   Zbroadcast_tor   r7   r>   r?   )r@   catrA   rt   rC   rD   rD   rE   *test_constructor_ndarray_categorical_dtype  s    zDTestDataFrameConstructors.test_constructor_ndarray_categorical_dtypec                 C   s   t dtdidd}ttdddd}t|d | ttddd}| }ttdddd}t|d | |jdd}ttdddd}t|d | t tddd}ttdddd}t|d | d S )	Nr   r   categoryr6   rb   r   r   ro   )r   r   r   r>   rr   r4  )r@   rB   rC   r  rt   rD   rD   rE   test_constructor_categorical  s    z6TestDataFrameConstructors.test_constructor_categoricalc                 C   s6   t td}t|g}t|tg}t|| d S )Nr   )r   r   r   r<   r=   r>   r?   )r@   r  rB   rC   rD   rD   rE   -test_construct_from_1item_list_of_categorical  s    
zGTestDataFrameConstructors.test_construct_from_1item_list_of_categoricalc                 C   s@   t ttdttdg}t g dg dg}t|| d S )Nr   Zabdr   )rw   r   r|   r   r   r   r>   r?   rX  rD   rD   rE   (test_construct_from_list_of_categoricals  s    zBTestDataFrameConstructors.test_construct_from_list_of_categoricalsc                 C   s<   t ttdtdg}t g dg dg}t|| d S )Nr   defr   r|   r<  fr  rX  rD   rD   rE   %test_from_nested_listlike_mixed_types  s    z?TestDataFrameConstructors.test_from_nested_listlike_mixed_typesc                 C   s@   t ttdttdg}t tdtdg}t|| d S )Nr   Zabdefgr  rX  rD   rD   rE   0test_construct_from_listlikes_mismatched_lengths  s    zJTestDataFrameConstructors.test_construct_from_listlikes_mismatched_lengthsc                 C   s   g d}t |d}t |dd}t|| g d}t |d}t |dd}t|| tddd}t ttjtjtjgg dd	}||_t	d
|i}t	d
t g dddi|d}t
|| d S )N)rN   rM   r5   rN   r  r6   )rw   r   r   rw   Z20000101r5   r  r   )r   
categoriesr   rY   )r   r<   r>   rr   r#   r   r8   re   rZ   r   r?   )r@   re  r%  resrZ   rC   rB   rD   rD   rE   #test_constructor_categorical_series  s     z=TestDataFrameConstructors.test_constructor_categorical_seriesr7   c                 C   s,   t dddgidg|d}|jj|ks(J d S )Nrw   rN   rM   r   rI  )r   r   r7   )r@   r7   r   rD   rD   rE   %test_check_dtype_empty_numeric_column	  s    
z?TestDataFrameConstructors.test_check_dtype_empty_numeric_columnc                 C   sF   t dddgidg|d}|r0|tjv r0t| |jjjdksBJ d S )Nrw   rN   rM   r   rI  r=   )r   r>   BYTES_DTYPESr  &mark_array_manager_not_yet_implementedr   r7   rc   )r@   requestr7   rT   r   rD   rD   rE   $test_check_dtype_empty_string_column	  s    
z>TestDataFrameConstructors.test_check_dtype_empty_string_columnc                 C   sL   t dtd j}t dti}t|| tt dtdj}t|| d S )Nr   r0  )r   r=   r4  r   r>   rr   r   rN  rD   rD   rE   test_to_frame_with_falsey_names'	  s
    z9TestDataFrameConstructors.test_to_frame_with_falsey_names)Nr+   r  c                 C   s\   t dg di|pdd}t tddg|d}t|| t dtdi|d}t|| d S )Nr   )r   rN   rM   r5   r4   r1   r6   r   rI  )r   r   r>   r?   )r@   r7   rC   rt   rD   rD   rE   test_constructor_range_dtype0	  s
    z6TestDataFrameConstructors.test_constructor_range_dtypec                 C   sT   G dd dt }tg dg dg}t||g d|g dg}t|| d S )Nc                   @   s   e Zd ZdS )zETestDataFrameConstructors.test_frame_from_list_subclass.<locals>.ListNr  rD   rD   rD   rE   List?	  s   r  r{  r]  )r   r   r>   r?   )r@   r  rC   rt   rD   rD   rE   test_frame_from_list_subclass=	  s     z7TestDataFrameConstructors.test_frame_from_list_subclassextension_arrZaabbcz1/1/2017z1/1/2018)rS  endr  c                 C   s$   t t|}t |}t|| d S r   r  )r@   r  rC   rt   rD   rD   rE   %test_constructor_with_extension_arrayF	  s    z?TestDataFrameConstructors.test_constructor_with_extension_arrayc                 C   s\   t  }||f}t|ttdtddi|gd}tg dtt|gd}t|| d S )Nr5   rY   r   r+  )r   todayr   r   r   r   r>   r?   )r@   rj  tuprt   rC   rD   rD   rE   *test_datetime_date_tuple_columns_from_dictU	  s
    "zDTestDataFrameConstructors.test_datetime_date_tuple_columns_from_dictc                 C   sx   t g dtg dd}t g dtg dd}t||g}ttdddtjtjgg d	gg d
d}t|| d S )N)'   rH   r4   )femalemaleunknownrY   )rM      rM         )r  r  r   r  r  r  rH   r4   )g      c@g     @n@g     b@r   r   )r  r  r  r  r   r   )r   r   r   r8   rd   re   r>   r?   )r@   r2  r7  rt   rC   rD   rD   rE   /test_construct_with_two_categoricalindex_series]	  s    
zITestDataFrameConstructors.test_construct_with_two_categoricalindex_seriesc                 C   s  t td}t|d d}t|d d}t||d}ttddddtdd	ddtd	d
ddtd
dddtddddtddddtddddtddddtddddtddddg
dd}tdgd t	j
gd  t	j
gd dgd  d|d}t|| d S )Nr  r   r   r'  gMbXg#@r  )closedg3@g33333=@gC@g     H@g33333M@g33333SQ@gS@gfffffFV@r   T)orderedrY   )r   r   r"   Zvalue_countsheadtailr   r   r   r8   re   r>   r?   )r@   r  ser1ser2rt   rZ   rC   rD   rD   rE   1test_constructor_series_nonexact_categoricalindexk	  s,    .zKTestDataFrameConstructors.test_constructor_series_nonexact_categoricalindexc                 C   s   t dddddt dddddfg}tj|ddgd	}t|}|d
 d |d d ksXJ |d d |d d kstJ t|d
 }t|d tsJ |d |d d ksJ d S )Nr^  r  r   r  rt  r   )DaterP  )ForecastingrP  r6   r  r  rN   )r	   r8   rd   r   r   r   r!   )r@   r[  rA   rB   r  rD   rD   rE   test_from_M8_structured	  s    "z1TestDataFrameConstructors.test_from_M8_structuredc                 C   s>   G dd dt }td|dddddgi}|j jdks:J d S )Nc                   @   s   e Zd ZdS )zOTestDataFrameConstructors.test_from_datetime_subclass.<locals>.DatetimeSubclassNr  rD   rD   rD   rE   DatetimeSubclass	  s   r  r	   i  rN   r\  )r	   r   r7   )r@   r  r   rD   rD   rE   test_from_datetime_subclass	  s    z5TestDataFrameConstructors.test_from_datetime_subclassc                 C   sT   t dddd}d}tjt|d  t|tdd W d    n1 sF0    Y  d S )	NrG   r5   rI   rJ   z@Shape of passed values|Passed arrays should have the same lengthr_   r4   rY   )r#   rf   rg   r   r   r   )r@   rU   rh   rD   rD   rE   (test_with_mismatched_index_length_raises	  s    zBTestDataFrameConstructors.test_with_mismatched_index_length_raisesc                 C   sX   t dddd}t|}ttjdt||d}t|d j	t	dsTJ d S )	Nz1/1/2000 00:00:00z1/1/2000 1:59:50ri  r  rM   r  rn   rj   )
r#   r8   r  r   r   r   ru  rQ   Z
issubdtyper7   )r@   r   r[  rB   rD   rD   rE   !test_frame_ctor_datetime64_column	  s    
z;TestDataFrameConstructors.test_frame_ctor_datetime64_columnc                 C   s   g dg dg}t tjdddd |D d}t|jtsDJ t|jtrTJ t tjdd|d}t|jts~J d S )	N)rw   rw   r   r   )r   r   r   r   rM   )r4   r4   c                 S   s   g | ]}t |qS rD   r  r   rD   rD   rE   r   	  r   zYTestDataFrameConstructors.test_dataframe_constructor_infer_multiindex.<locals>.<listcomp>rY   r   )	r   r8   r   r   ru  r   rZ   r   r   )r@   Zindex_listsmultirD   rD   rE   +test_dataframe_constructor_infer_multiindex	  s    zETestDataFrameConstructors.test_dataframe_constructor_infer_multiindex
input_valsr(  r   rh  rt  rn  rj  c                 C   s6   t d|i|d}t d|id|i}t|| d S )Nr   r6   )r   r<   r>   r?   )r@   r  r   rt   rC   rD   rD   rE   test_constructor_list_str	  s    z3TestDataFrameConstructors.test_constructor_list_strc                 C   s8   t dg di|d}t dg ditd}t|| d S )Nr   r  r6   )z1.0z2.0N)r   r=   r>   r?   )r@   r   rt   rC   rD   rD   rE   test_constructor_list_str_na	  s    z6TestDataFrameConstructors.test_constructor_list_str_nar   FTc           
         s4  |r"|s"|t jt j vr"t| tjddg|d tjddg|djjdv rdt	
j d tjddg|d }t d|d	d
d dtd fdd}|s|  tjjd drd }	nt}	t j|	dd$ djd< djd< W d    n1 s0    Y  |s0|d tjddgjdjd d df< jjd jksjJ |s~|s~|d |r jjdkr̈ d  jddksJ d jddks J n4 d  jdksJ d jdks J d |d ks0J n|s0d dks0J d S )NrN   rM   r6   r5   r4   )SUz2 get cast, making the checks below more cumbersomer   r   c                 S   s0   t | tjr| jS t | jtjr(| jjS td S r   )r   r8   Zndarraybaser7   Z_ndarrayr   r   rD   rD   rE   get_base	  s
    z<TestDataFrameConstructors.test_dict_nocopy.<locals>.get_baseFZc_onlyc                    sv   t fddjjD dks"J | r*d S t  fddjjD dksNJ t fddjjD dksrJ d S )Nc                 3   s   | ]}| u V  qd S r   rD   r   )r   rD   rE   r   	  r   zRTestDataFrameConstructors.test_dict_nocopy.<locals>.check_views.<locals>.<genexpr>rN   c                 3   s(   | ] }t |jtjr| u V  qd S r   r   r7   r8   r   )rw   r  rD   rE   r   
  s   c                 3   s(   | ] }t |jtjr| u V  qd S r   r  r   )r   r  rD   rE   r   
  s   )sumrR   r   r  rw   r   r   rB   r  rD   rE   check_views	  s    "	z?TestDataFrameConstructors.test_dict_nocopy.<locals>.check_viewsr   ZfciuOzincompatible dtyper_   r   rO   Tr  .   r   rW   )F)r>   STRING_DTYPESr  r  r  r8   rd   r7   r   rf   skipr  r   r   r  r   Zis_np_dtyper   r   FutureWarningr@  type)
r@   r  r   Zany_numeric_ea_dtypeZany_numpy_dtyperT   r   Zc_origr  warnrD   r  rE   test_dict_nocopy	  sN    
	
*"z*TestDataFrameConstructors.test_dict_nocopyc                 C   s<   t g ddd}td|i}t|jj|d jjr8J d S )Nr{  r  r6   rw   )r   r   r8   r   r   rP   )r@   r  rB   rD   rD   rE   "test_construct_from_dict_ea_series9
  s    z<TestDataFrameConstructors.test_construct_from_dict_ea_seriesc                 C   s2   t tddddgd}t dgd}t|| d S )NrN   r   ro   r   r   r  rN  rD   rD   rE   'test_from_series_with_name_with_columns@
  s    zATestDataFrameConstructors.test_from_series_with_name_with_columnsc                 C   sV   t g dg dgg dg dgd}t g dg dgtg dd}t|| d S )Nr{  r]  )r   r   r   r   r   ))r   rw   )r   r   )r   r   )r   r   rR  r>   r?   rN  rD   rD   rE   test_nested_list_columnsF
  s    z2TestDataFrameConstructors.test_nested_list_columnsc           
      C   s   t jddd}|jtdd}t|}|jdks8J |j|j	k
 sLJ ||k
 
 s`J t jg d}|jtdd}t|}|jdksJ |j|j	k
 sJ ||k
 
 sJ tj||||f j}t|}t||||d}	t||	 d S )	Nz
2016-04-05r5   r  rN   r   rN   r5   )r5   r4   r   rH   r  )r  r  rP   r<   r=   r:   r   r  r   r7   r!  ZIntervalIndexZfrom_breaksr8   Zr_r  r>   r?   )
r@   pir   rB   iiZdata2r   Zdata3r  rC   rD   rD   rE   1test_from_2d_object_array_of_periods_or_intervalsQ
  s     zKTestDataFrameConstructors.test_from_2d_object_array_of_periods_or_intervalszcol_a, col_bc                 C   sD   d}t jt|d t||d W d    n1 s60    Y  d S )Nz,Per-column arrays must each be 1-dimensionalr_   r   r6  )r@   Zcol_aZcol_brh   rD   rD   rE   test_error_from_2darrayg
  s    	z1TestDataFrameConstructors.test_error_from_2darrayc                 C   s   t g dg ddd}t|d j|d jr2J d|jd< t dtjtjgtjtjtjgtjtjtjgdg dtd	}t|| d S )
Nr{  r   F)rZ   r   r   rw   r   r   r   rZ   r7   )	r   r8   r   Z_valuesr   re   r=   r>   r?   rX  rD   rD   rE   &test_from_dict_with_missing_copy_falset
  s    
	z@TestDataFrameConstructors.test_from_dict_with_missing_copy_falsec                 C   sL   d}t jt|d& ttg ddgd W d    n1 s>0    Y  d S )Nz:Shape of passed values is \(0, 1\), indices imply \(0, 2\)r_   rw   r   rL  )rf   rg   r   r   r8   rd   r7  rD   rD   rE   1test_construction_empty_array_multi_column_raises
  s    zKTestDataFrameConstructors.test_construction_empty_array_multi_column_raisesc                 C   s8   t g ddgdd}t dg didd}t|| d S )N)r(  r   Nrw   r;   rI  r6   r   rX  rD   rD   rE   $test_construct_with_strings_and_none
  s    z>TestDataFrameConstructors.test_construct_with_strings_and_nonec                 C   s  t d d}tdddgi|tdg|dd}tdd  tdddgi}W d    n1 s`0    Y  t|| tdddgi|tdg|dtd	d
g|dd}tdd( tdddgid	d
gd}W d    n1 s0    Y  t|| tdddgidtdg|dd}tdd  tdddgi}W d    n1 sH0    Y  t|| tdddgidtdg|dd}tdd$ tdddgidd}W d    n1 s0    Y  t|| d S )Npyarrowstring[pyarrow_numpy]rw   r   r6   r7   r   future.infer_stringTr   r   )r7   r   rZ   rY   rN   r=   )rf   importorskipr   r   r  option_contextr>   r?   r@   r7   rC   rB   rD   rD   rE   test_frame_string_inference
  s:    
.
604z5TestDataFrameConstructors.test_frame_string_inferencec                 C   sp  t d d}tdddgi|tdg|dd}tdd& tdtddgi}W d    n1 sf0    Y  t	|| tddgd	d
gd|d}tdd* ttdd	gdd
gg}W d    n1 s0    Y  t	|| tddgd	d
gd|tddg|dd}tdd2 ttdd	gdd
ggddgd}W d    n1 sV0    Y  t	|| d S )Nr  r  rw   r   r6   r  r  Tr   r|   rO   r   r   )
rf   r  r   r   r  r  r8   rd   r>   r?   r  rD   rD   rE   .test_frame_string_inference_array_string_dtype
  s(    
48BzHTestDataFrameConstructors.test_frame_string_inference_array_string_dtypec                 C   sj   t d tdd* ttddgddgg}W d    n1 sF0    Y  |jjd j	dksfJ d S )	Nr  r  TZhelloZgoodbyeZHellor   rM   )
rf   r  r  r  r   r8   rd   rR   rS   r  rl   rD   rD   rE   %test_frame_string_inference_block_dim
  s    
8z?TestDataFrameConstructors.test_frame_string_inference_block_dimc                 C   s  t tdgtd}tjtdd t|dgd}W d    n1 sD0    Y  |jjd t	j
ksdJ td|i}|jjd t	j
ksJ ttdgtd}tjtdd t|dgd}W d    n1 s0    Y  |jjd t	j
ksJ td|i}|jjd t	j
ksJ d S )Nz
2019-12-31r6   zDtype inferencer_   rw   r   r   )r   r!   r=   r>   r@  r  r   r   r   r8   r   r   )r@   rs   rt   r  rD   rD   rE    test_inference_on_pandas_objects
  s    ,,z:TestDataFrameConstructors.test_inference_on_pandas_objects)r  r  r  rF   rV   r]   ri   rm   ru   r~   r   r   rf   markparametrizer   r   r   r   r   r   r   r   r   r   r   r  Zskip_array_manager_invalid_testxfailr   r   r   r   r   r   r   r   r  r  r  r8   rd   r=   r  r,   r-   r.   r  r  r&  r*  r-  r/  r2  r4  r8  re   r;  r   rD  rI  rM  rO  rU  rY  rd  rh  rl  rp  rs  rv  rx  rz  r~  r  r  r  r  r  r  r  r  r   r   r   r   r!   r   r  r  r  r  r  filterwarningsr  r  r  r  r   r   r   r7   r   r  r  ZBooleanDtypeZFloat64DtypeZ
Int64DtypeZStringDtyper  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'  r/  r3  r6  r9  r?  rB  rD  rE  rF  rG  rJ  rL  rQ  rZ  r]  rc  rg  rm  ro  r	   rk   r   r   rp  r{  r}  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r>   ZALL_NUMERIC_DTYPESZDATETIME64_DTYPESZTIMEDELTA64_DTYPESZBOOL_DTYPESr  r  r  ZOBJECT_DTYPESr  r  Zarm_slowr  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  rD   rD   rD   rE   r2   O   s  		
!



	





(	



<	



	
	


8
A
"

	

'
	
	

&		&
 F;
"(,$&
					

	h"#r2   c                   @   sJ   e Zd Zdd Zdd Zejddddgdgd	d	d
gdggdd ZdS )&TestDataFrameConstructorIndexInferencec                 C   s   t jdddd}ttjdt||}t jdddd}ttjdt||}t||d}t jdddd}t	
|j| d S )	Nz1/1/19991/1/2012r   r  rM   z1/1/1980z	12/1/2001)r2  r7  )r  r  r   r8   r   r   ru  rQ   r   r>   r   rZ   )r@   Zrng1r2  Zrng2r7  rB   r%  rD   rD   rE   Atest_frame_from_dict_of_series_overlapping_monthly_period_indexes
  s    zhTestDataFrameConstructorIndexInference.test_frame_from_dict_of_series_overlapping_monthly_period_indexesc                 C   s.  t ddd}ttd|d}ttd|dd}ttd|dd}ttd}t|||d}tt|jt|j t|j td}t	
|j| t|||d	}tt|jt|j t|j td}	t	
|j|	 t|||d
}
tt|jt|j t|j td}	t	
|
j|	 t|||d}tt|jt|j t|j td}t	
|j| d}tjt|d" t||||d W d    n1 s0    Y  tjt|d  t|||d W d    n1 s0    Y  tjt|d  t|||d W d    n1 s 0    Y  d S )NrG   r5   r  rY   re  z
US/Centralr   r6   )r   r   rn   )rn   r   r   )r   rn   r   z0Cannot join tz-naive with tz-aware DatetimeIndexr_   )r   rn   r   r:  )r   rn   r:  )r:  r   rn   )r#   r   r   rp   r   r   r   rZ   r=   r>   r   rf   rg   r   )r@   rU   r  r  Zser3Zser4r8  Z	exp_indexr   Z
exp_index3r  Zdf4Z
exp_index4rh   rD   rD   rE   /test_frame_from_dict_with_mixed_tzaware_indexes
  s@    20zVTestDataFrameConstructorIndexInference.test_frame_from_dict_with_mixed_tzaware_indexeszkey_val, col_vals, col_typerq  4utf8r5   r4   r/   c              
   C   s   t d}tj|j||| t|| d}t	|ddgi|d}t	dt
jgdt
jgg|d}|d|jd d df t t|| d S )Nr  )r  rN   rM   r   )rf   r  r  r   ZArrowExtensionArrayrd   
dictionaryr/   getattrr   r8   re   Zisetitemr   r<   r=   r>   r?   )r@   Zkey_valZcol_valsZcol_typepar?  rt   rC   rD   rD   rE   %test_dict_data_arrow_column_expansion  s    	
  zLTestDataFrameConstructorIndexInference.test_dict_data_arrow_column_expansionN)	r  r  r  r  r  rf   r  r  r  rD   rD   rD   rE   r  
  s   ,r  c                   @   s   e Zd Zdd ZdS ))TestDataFrameConstructorWithDtypeCoercionc                 C   s  t jdd}d}tjt|d t|dd W d    n1 sF0    Y  t| dd}|j	dk
 srJ t j|d< d}tjt|d t|dd W d    n1 s0    Y  tjt|d  t|d	 dd W d    n1 s0    Y  d}tjt|d t|d W d    n1 s00    Y  tjt|d" t|d	 d W d    n1 sr0    Y  d S )
NrM   r  z)Trying to coerce float values to integersr_   ra   r6   r   r^   r   )r8   r   r   ru  rf   rg   r   r   roundr   r!  re   r   r   r<   )r@   rA   rh   rB   rD   rD   rE   "test_floating_values_integer_dtype2  s"    *
*..zLTestDataFrameConstructorWithDtypeCoercion.test_floating_values_integer_dtypeN)r  r  r  r  rD   rD   rD   rE   r  1  s   r  c                   @   s   e Zd Zejdddgdd Zejdddgd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zejdeegdd Zd d! Zd"d# Zd$d% Zejje d&d'ejd(g d)g d*g d+d)gd,d- Zd.S )/&TestDataFrameConstructorWithDatetimeTZrL   r  zdateutil/US/Easternc           
      C   s   t dddd}||}td|d|d}td|j}|d	 j|ksHJ d
d |D }dd |D }td|i}||d< ||d< ||d< |j}ttdt|dtdt|dgg dd}	t	
||	 d S )N2011/1/12012/1/1W-FRIr  r   r  rY   rW   rn   c                 S   s   g | ]}|  qS rD   rT  rV  rD   rD   rE   r   ]  r   zeTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypes.<locals>.<listcomp>c                 S   s   g | ]}|  qS rD   rT  rV  rD   rD   rE   r   ^  r   rf  dr_tzdatetimes_naivedatetimes_with_tzr\  r  )rf  r  r   r  )r#   rp   r   r   tzinfor7   r   r   r8   r>   rr   )
r@   rL   rf  r  rB   Ztz_expectedr   r  rt   rC   rD   rD   rE   *test_construction_preserves_tzaware_dtypesR  s*    
	zQTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypespydtTFc                 C   s  |}t d|d}|r| }d}tjt|d" td|gidd W d    n1 sV0    Y  d}tjt|d$ td|idgdd	 W d    n1 s0    Y  tjt|d t|gdd W d    n1 s0    Y  tjt|d( ttj|gt	ddd W d    n1 s 0    Y  tjt|d$ t|dgdgdd
 W d    n1 sd0    Y  tjt|d$ tt
|ggdd W d    n1 s0    Y  tjt|d$ t|ggdgdd W d    n1 s0    Y  d S )N2019r  sCannot convert timezone-aware data to timezone-naive dtype. Use pd.Series\(values\).dt.tz_localize\(None\) instead.r_   r   r\  r6   /Cannot unbox tzaware Timestamp to tznaive dtyper  r  rI  )r!   rU  rf   rg   r   r   r   r8   rd   r=   r   )r@   Ztz_aware_fixturer  rL   rW  rh   Zmsg2rD   rD   rE   'test_constructor_data_aware_dtype_naiveo  s*    02,844zNTestDataFrameConstructorWithDatetimeTZ.test_constructor_data_aware_dtype_naivec                 C   s   t tdddddd}tddd}t||d	}|d
 jsBJ d|d
 jd
ksTJ t|d
 t|d
d t|d t|dd d S )Nrd  r5   r  rJ   r   ro   Z20130110r  r  r   zM8[ns, US/Easternrn   )r   r#   r   r7   rc   r>   rr   r   )r@   rs   rf  rB   rD   rD   rE   test_from_dict  s    z5TestDataFrameConstructorWithDatetimeTZ.test_from_dictc                 C   s   t ddddd}t|}t|d t|dd tt|}t|d t|dd t dddd}t|}t|d t|dd tt|}t|d t|dd d S )	Nrd  r5   r  r   )rK   rL   rc   ro   rJ   r   )r#   r   r>   rr   r   )r@   r;  r   rD   rD   rE   test_from_index  s    z6TestDataFrameConstructorWithDatetimeTZ.test_from_indexc                 C   sB   t ddd}t||d}td|d|d td|jd|d d S )Nr  r   r  rY   r   r   )r#   r   r   r   )r@   rf  r  rD   rD   rE   +test_frame_dict_constructor_datetime64_1680  s    zRTestDataFrameConstructorWithDatetimeTZ.test_frame_dict_constructor_datetime64_1680c                 C   s@   t dddd}t|}td|d|d}|d   s<J d S )	Nr  r  r  r  r   r  rY   rn   )r#   r   r   r$   r!  )r@   rf  rW  r|   rD   rD   rE   +test_frame_datetime64_mixed_index_ctor_1681  s    zRTestDataFrameConstructorWithDatetimeTZ.test_frame_datetime64_mixed_index_ctor_1681c                 C   sX   t ddddd}t|dgd}tdtdddtd	ddtd
ddgi}t|| d S )Nz20130101T10:00:00r5   minr  )rS  rK   r  rL   Z
timestampsr   r  z20130101T10:01:00z20130101T10:02:00)r#   r   r!   r>   r?   )r@   rf  rt   rC   rD   rD   rE   test_frame_timeseries_column  s    


	zCTestDataFrameConstructorWithDatetimeTZ.test_frame_timeseries_columnc                 C   sf   ddg}ddddddd	d
}t |g d|d}t ddtjtjfg|tg dd}t|| d S )NNevadaOhio333333@333333@)rM    r  333333?@)r~  rM  r  )r  r  )rM  r  i  r   )r  r  )r  r  rV  )r   r8   re   r   r>   r?   )r@   r   poprt   rC   rD   rD   rE   test_nested_dict_construction  s    

zDTestDataFrameConstructorWithDatetimeTZ.test_nested_dict_constructionc                 C   sd   t dddd}|jtdd}t|}|jdks8J |j|jk	 sLJ ||k	 	 s`J d S )Nz2016-04-05 04:30r5   re  rJ   rN   r   r  )
r#   rP   r<   r=   r:   r   r  r   r7   r!  )r@   rU   r   rB   rD   rD   rE   test_from_tzaware_object_array  s    zETestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_object_arrayc              	   C   s   t jtdtdtdgtdddtjtdddgtdd	dtjtd
d	dggtdj}t|g dd}g d}|j|k	 sJ d S )Nz2013-01-01 00:00:00z2013-01-02 00:00:00z2013-01-03 00:00:00z2013-01-01 00:00:00-0500r  r  z2013-01-03 00:00:00-0500z2013-01-01 00:00:00+0100ZCETz2013-01-03 00:00:00+0100r6   r   r   )r\  r_  zdatetime64[ns, CET])
r8   rd   r!   r  r   r=   r  r   r   r!  )r@   rA   r  Zexpected_dtypesrD   rD   rE   $test_from_tzaware_mixed_object_array  s&    



zKTestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_mixed_object_arrayc                 C   s:   t dd}t|dd}t|d}t|| d S )Nr   )r   rM   zdatetime64[ns, UTC]r6   )r8   r9   r:   r   r<   r>   r?   )r@   Z
array_dim2rB   rC   rD   rD   rE   test_from_2d_ndarray_with_dtype  s    zFTestDataFrameConstructorWithDatetimeTZ.test_from_2d_ndarray_with_dtyper   c                 C   s   |h d}d|j  d}tjt|d td|i W d    n1 sJ0    Y  tjt|d t| W d    n1 s0    Y  d S )N>   rN   rM   r5   'z' type is unorderedr_   rw   )r  rf   rg   r   r   r   )r@   r   r   rh   rD   rD   rE   !test_construction_from_set_raises  s    *zHTestDataFrameConstructorWithDatetimeTZ.test_construction_from_set_raisesc                 C   s>   t jdddddd}t|}tdd |jjD s:J d S )	Nr   r3   r\  r6   r4   r5   c                 s   s   | ]}t |tV  qd S r   )r   r%   )r   rA   rD   rD   rE   r     r   zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelike.<locals>.<genexpr>)r8   r9   r:   r   r!  rR   r   r   rD   rD   rE   +test_construction_from_ndarray_datetimelike  s    zRTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelikec                 C   s   t jdd}tdgj}d}tjt	|d  t
|dg|d W d    n1 sX0    Y  tg d}tjt	|d  t
|dd	gd
 W d    n1 s0    Y  d S )NrM   r  r   z'len\(arrays\) must match len\(columns\)r_   r   rI  )r   r   rm  r   r   )r8   r   r   ru  r  rd   r7   rf   rg   r   r   )r@   rA   r7   rh   Zarr2rD   rD   rE   >test_construction_from_ndarray_with_eadtype_mismatched_columns  s    .zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_with_eadtype_mismatched_columnsc                 C   s   g dg dg}t jtdd  t|ddhd W d    n1 sD0    Y  t jtdd  t|h d	d
 W d    n1 s0    Y  d S )Nr{  r]  zindex cannot be a setr_   rw   r   rY   zcolumns cannot be a set>   r   r   rw   r   r6  r  rD   rD   rE   "test_columns_indexes_raise_on_sets*  s
    .zITestDataFrameConstructorWithDatetimeTZ.test_columns_indexes_raise_on_setsz/StringDType only available in numpy 2 and abover   r   r   )r   r   r   r  c                 C   s\   ddl m} tj|d | d|d< t|}|d jtjks@J |d |d k sXJ d S )Nr   )StringDTyperw   r6   )Znumpy.dtypesr   r8   rd   r   r7   r   r!  )r@   r   r   r  rD   rD   rE    test_np_string_array_object_cast3  s
    
zGTestDataFrameConstructorWithDatetimeTZ.test_np_string_array_object_castN)r  r  r  rf   r  r  r  r  r	  r
  r  r  r  r  r  r  r  set	frozensetr  r  r  r  Zskipifr   r!  rD   rD   rD   rE   r  Q  s6   

!	

	r  c                 C   s"   t | tr| jd S | jd S d S )Nr   r   )r   r   r   r  rD   rD   rE   get1E  s    

r$  c                   @   s   e Zd Zejeedgddd Zejdd Zej	
ddd	gd
d Zdd Zdd Zdd Zej	
dejejgdd Zej	
deejgdd Zej	jdd Zej	
deejgdd Zej	jej	
dejejgdd Zdd ZdS )TestFromScalarNparamsc                 C   s   |j S r   paramr@   r  rD   rD   rE   boxM  s    zTestFromScalar.boxc                    s   dt di tu rdg d< |d u r8tjfi  S |tu rftu rV fddS  fddS n$tu r| fddS  fd	dS d S )
NrZ   rM   r   r   c                    s   | | dfi  |S )NrO   rD   r   kwargsextrar   rD   rE   r   \  s   z,TestFromScalar.constructor.<locals>.<lambda>c                    s   d| ifi  |S Nr   rD   r,  r.  rD   rE   r   `  r   c                    s   | | gfi  |S r   rD   r,  r.  rD   rE   r   b  r   c                    s   d| | gifi  |S r0  rD   r,  r.  rD   rE   r   d  r   )r   r   	functoolspartialr   r   )r@   r   r+  rD   r.  rE   r   Q  s    
zTestFromScalar.constructorr7   rj   r   c                 C   s8   |t j|d}t|j|ks"J t| s4J d S r  )r  r   r8   r!  r   r$   )r@   r7   r   r   rD   rD   rE   test_from_nat_scalarf  s    z#TestFromScalar.test_from_nat_scalarc                 C   s(   t d}||dd}t||ks$J d S )NrN   r   r6   r    r$  )r@   r   r  r   rD   rD   rE   *test_from_timedelta_scalar_preserves_nanosl  s    z9TestFromScalar.test_from_timedelta_scalar_preserves_nanosc                 C   s,   |t d }||dd}t||ks(J d S )NrN   rj   r6   r4  )r@   r   Zfixed_now_tsrW  r   rD   rD   rE   *test_from_timestamp_scalar_preserves_nanosr  s    z9TestFromScalar.test_from_timestamp_scalar_preserves_nanosc                 C   s4   t d}| }||td}tt|tjs0J d S )NrN   r6   )r    Zto_timedelta64r=   r   r$  r8   r  )r@   r   r  Ztd64r   rD   rD   rE   #test_from_timedelta64_scalar_objectx  s    z2TestFromScalar.test_from_timedelta64_scalar_objectclsc                 C   s   |dd}t jdt jdi| }|t ju r.d}nd}dd|g}tjt|d	 |||d
 W d    n1 sp0    Y  |dd}tjt|d	 |||d
 W d    n1 s0    Y  d S )Nr   rW   r   rj   r   z:<class 'numpy.timedelta64'> is not convertible to datetime|ry  r_   r6   r4   )r8   r   r  joinrf   rg   r   )r@   r   r8  r9  r7   Zmsg1rh   rD   rD   rE   (test_from_scalar_datetimelike_mismatched  s    

*
z7TestFromScalar.test_from_scalar_datetimelike_mismatchedc                 C   s   |t u s|tu r2|tu r2tjjddd}|| tddd}d}|tj	u r\t	|d}d}||}	t
|	}
t|	}t|
tu sJ |
jj|ksJ ||ksJ d S )	NziTimestamp constructor has been updated to cast dt64 to non-nano, but DatetimeArray._from_sequence has notTr   strict'  rN   rP  r:  rO  )r   r   r   rf   r  r  applymarkerr	   r8   r   r$  r>   	get_dtyper  r!   asm8r7   r@   r   r8  r  r+  r   r  r9  r|  rt   itemr7   rD   rD   rE   #test_from_out_of_bounds_ns_datetime  s"    


z2TestFromScalar.test_from_out_of_bounds_ns_datetimec                 C   sR   t t t jjd}||}t|}t|t ju s8J t|}|t	ksNJ d S r  )
r8   r   iinfor1   maxr$  r  r>   r@  r=   )r@   r   r9  rt   rC  r7   rD   rD   rE   test_out_of_s_bounds_datetime64  s    
z.TestFromScalar.test_out_of_s_bounds_datetime64c                 C   s   |t u s|tu r2|tu r2tjjddd}|| tdddtddd }d}|tj	u rht	|d}d	}||}	t
|	}
t|	}t|
tu sJ |
jj|ksJ ||ksJ d S )
NzoTimedeltaArray constructor has been updated to cast td64 to non-nano, but TimedeltaArray._from_sequence has notTr<  r>  rN   i  zm8[us]r:  zm8[s])r   r   r   rf   r  r  r?  r	   r8   r  r$  r>   r@  r  r    rA  r7   rB  rD   rD   rE   $test_from_out_of_bounds_ns_timedelta  s"    


z3TestFromScalar.test_from_out_of_bounds_ns_timedeltac                 C   sN   |t t jjd}||}t|}t||u s4J t|}|tksJJ d S r  )	r8   rE  r1   rF  r$  r  r>   r@  r=   )r@   r   r8  r9  rt   rC  r7   rD   rD   rE    test_out_of_s_bounds_timedelta64  s    
z/TestFromScalar.test_out_of_s_bounds_timedelta64c                 C   sx   d}t d|d}|d u s(|tu r2|tu r2d}t}nd}t}tj||d ||dd W d    n1 sj0    Y  d S )	Nr  r  r  r  r  r_   rj   r6   )r!   r   r   r   r   rf   rg   )r@   r   r+  r   rL   rW  rh   errrD   rD   rE   test_tzaware_data_tznaive_dtype  s    z.TestFromScalar.test_tzaware_data_tznaive_dtype)r  r  r  rf   fixturer   r   r+  r   r  r  r3  r5  r6  r7  r8   r   r  r;  r	   rD  Z
skip_ubsanrG  r
   rH  rI  rK  rD   rD   rD   rE   r%  L  s*   






r%  c                   @   sZ   e Zd Zejddgddd Zejdd Zdd	 Zd
d Zdd Z	dd Z
dd ZdS )TestAllowNonNanoTFr&  c                 C   s   |j S r   r(  r*  rD   rD   rE   as_td  s    zTestAllowNonNano.as_tdc                 C   sL   t dt jd}|r8||d  }tj||jdS tj||jdS d S )Nr   rO  r   r6   )	r8   r9   r<   r1   r   r)   Z_simple_newr7   r%   )r@   rN  r   rD   rD   rE   rA     s
    zTestAllowNonNano.arrc                 C   s   t |}|j|jksJ d S r   )r   r7   )r@   rA   rs   rD   rD   rE   test_index_allow_non_nano  s    z*TestAllowNonNano.test_index_allow_non_nanoc                 C   s,   |rt |}nt|}|j|jks(J d S r   )r  ZTimedeltaIndexr   r7   )r@   rA   rN  rs   rD   rD   rE   test_dti_tdi_allow_non_nano  s    z,TestAllowNonNano.test_dti_tdi_allow_non_nanoc                 C   s   t |}|j|jksJ d S r   )r   r7   )r@   rA   r  rD   rD   rE   test_series_allow_non_nano
  s    z+TestAllowNonNano.test_series_allow_non_nanoc                 C   s    t |}|jd |jksJ d S r   r   r   r7   r   rD   rD   rE   test_frame_allow_non_nano  s    z*TestAllowNonNano.test_frame_allow_non_nanoc                 C   s$   t d|i}|jd |jks J d S r   rR  r   rD   rD   rE   #test_frame_from_dict_allow_non_nano  s    z4TestAllowNonNano.test_frame_from_dict_allow_non_nanoN)r  r  r  rf   rL  rN  rA   rO  rP  rQ  rS  rT  rD   rD   rD   rE   rM    s   

rM  )Lrd   collectionsr   r   r   r   collections.abcr   dataclassesr   r	   r   r
   r1  r%  numpyr8   r   Znumpy.mar   rf   r`  Zpandas._configr   Zpandas._libsr   Zpandas.compat.numpyr   Zpandas.errorsr   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.dtypesr   r   r   r   Zpandasr  r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   Zpandas._testingZ_testingr>   Zpandas.arraysr%   r&   r'   r(   r)   r   r   r2   r  r  r  r$  r%  rM  rD   rD   rD   rE   <module>   sl   D                     ,K  u #