o
    dS                    @   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	mZm
Z
 d dlZd dlZd dl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Zd dl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+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z> g dZ?g dZ@G dd dZAG dd dZBG dd dZCG dd dZDdd ZEG dd dZFG dd dZGdS )    N)OrderedDictabcdefaultdict
namedtuple)make_dataclass)datedatetime	timedelta)Iterator)ma)mrecords)IntCastingNaNError)is_integer_dtype)DatetimeTZDtypeIntervalDtypePandasDtype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uint64Z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	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d,ed+fd-d. d/D ged*ed+fgd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zejd<d= Zejd>d? Zd@dA ZdBdC Ze
jdDdEi gdEd*dFdGdHgdIi ggdJdK ZdLdM ZdNdO Z dPdQ Z!dRdS Z"dTdU Z#e
jdVe$j%dWge&dXe$%d,dY gdZge$j%d[ge&dXe$%d\gd,dY  d, ggd]d^ Z'e
jdVe$j%d*ge$j(dXe$j%d*ge$j)dXe$j%d*ge$j*dXe$(d*ge$)d*ge$*d*ggd_d` Z+dadb Z,dcdd Z-dedf Z.dgdh Z/didj Z0dkdl Z1dmdn Z2dodp Z3e
jdqd,e$j4drdsgdtdu Z5e
jdvd,e$j4dre6dwgdxdy Z7e
jdve$j4dre6dwgdzd{ Z8d|d} Z9d~d Z:dd Z;dd Z<dd Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJe
jddd dfdd dfdd dfdd dfgdd ZKdd ZLdd ZMe
jdeNdeOdfePd+ddeQddfeRdddeSddfgdd ZTdd ZUdd ZVdd ZWdd ZXddÄ ZYddń ZZddǄ Z[ddɄ Z\e
jddre]e^d˃ddge&e$j_fdrdrddgde$`dfdre]e^d˃ddgeae$`dΡfi drdFdGgdre$j_fdd*ie]e^d˃e]dσeae$`dΡfgddф Zbe
jdg dӢdecjdfg dբdecjefg dעdecjffg d٢decjgffdd܄ Zhddބ Zidd Zjdd Zkdd Zldd Zmdd Zndd Zodd Zpdd Zqdd Zrdd Zse
jdeRdggdeRdigdeRdgideRdigdd Ztdd Zudd Zvdd Zwdd Zxd d Zydd Zzdd Z{dd Z|dd	 Z}d
d Z~e
jdeegdd Ze
jdeeg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d/g fd/g fd d/d/gfd g g gfg g fg g gfd*gd,gfd*gd,ggfg d!g d"fg d!g d"gfgd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Ze
jd7g d8d9d: Zd;d< Zd=d> Zd?d@ ZdAdB Z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 Ze
jdWe$%drdrdrdre drge$%drdre drge$dXgdrgge$dXgecjggdrge$dXggdrgecjggecjge$dXggecjgdrgggdYdZ Ze
jd[g d\e
jd]g d^d_d` Ze
jd[g d\e
jd]g dadbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Ze
jdneg d!g d"gd*e$j4gdoeg d!g d"gdpdqe$j4gdreg dsg dtge$j4dpdqe$j4gdreg dug dtge$j4dpdqe$j4gdreg dug dtge$j4d*d,d,gdrgdvdw Zdxdy Zdz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dee]ded*e$j4e$j4e$j4geePd+d*ePd*dgeecjː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*d,gddge]eՐdd,dde]eՐdd,dddePd+ddggdd Z֐dd Ze
jdddgdd Zؐdd Zِdd Zڐdd Ze
jdd*gd,gge$%d*gd,ggfe$%d*gd,ggd*gd,ggfe$%d*gd,gge$%d*gd,ggfgddÄ ZܐdĐdń ZݐdƐdǄ ZdrS (  TestDataFrameConstructorsc                 C   s<   t ddd}t|td}t|t}t|| d S )N         dtype)nparangereshaper   strastypetmassert_frame_equal)selfarrdfexpected r?   X/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/frame/test_constructors.py,test_constructor_from_ndarray_with_str_dtypeN   s   zFTestDataFrameConstructors.test_constructor_from_ndarray_with_str_dtypec                 C   sv   t dddd}|jdd}t|}t|d d df |d d df d	}t|| |s7t|jjdks9J d S d S )
N
2016-01-01   
US/Pacificperiodstzr1      r      r   rI   )	r    _datar6   r   r9   r:   len_mgrblocks)r;   using_array_managerdtiZdtar=   r>   r?   r?   r@   &test_constructor_from_2d_datetimearrayV   s   &z@TestDataFrameConstructors.test_constructor_from_2d_datetimearrayc                 C   sl   t 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dtr   indexrI   )rR   value)r   Z
tz_convertr   r9   r:   )r;   rR   r=   r>   r?   r?   r@   )test_constructor_dict_with_tzaware_scalara   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 s&w   Y  tjt|d t|d ddd	 W d    d S 1 sGw   Y  d S )
NrI   rH   r1   9Cannot convert non-finite values \(NA or inf\) to integermatchi8r2   r   r3   name)r4   arraynanpytestraisesr   r   r   )r;   r<   msgr?   r?   r@   -test_construct_ndarray_with_nas_and_int_dtypen   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   nowr3   r4   r;   r=   r?   r?   r@   %test_construct_from_list_of_datetimesy   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s"J t|}t|| d S )Nz2013-1-1 13:00z2013-1-2 14:00Br\   rD   objectr2   )	r   tz_localizer   r4   r]   tolistr3   r9   assert_series_equal)r;   Znaiveidxr>   resultr?   r?   r@   +test_constructor_from_tzaware_datetimeindex}   s   
zETestDataFrameConstructors.test_constructor_from_tzaware_datetimeindexc                 C   st   t dd}t j|gtd}|tu r|dd}d}tjt|d ||dd W d    d S 1 s3w   Y  d S )NNaTnsr2   rI   z=Invalid type for timedelta scalar: <class 'numpy.datetime64'>rX   m8[ns])	r4   
datetime64r]   ri   r   r6   r_   r`   	TypeError)r;   frame_or_seriesZnatr<   ra   r?   r?   r@   ,test_array_of_dt64_nat_with_td64dtype_raises   s   "zFTestDataFrameConstructors.test_array_of_dt64_nat_with_td64dtype_raiseskindmMc                 C   sx  |dkr	d}t }nd}t}tjddd|dd}|tu r'|d d d	f }||td}|jj	d	 j
tks8J t|jj	d	  d	 |sGJ |||td}|jj	d	 j
tksZJ t|jj	d	  d	 |siJ |||ttd}|jj	d	 j
tks~J t|jj	d	  d	 |sJ |tu rd
d |D }||td}|jj	d	 j
tksJ t|jj	d	  d	 |sJ d S d S )Nry   rc   rr   rC   rZ   r2   r1   rH   r   c                 S      g | ]}t |qS r?   r   .0xr?   r?   r@   
<listcomp>       zXTestDataFrameConstructors.test_datetimelike_values_with_object_dtype.<locals>.<listcomp>)r   r   r4   r5   viewr6   r   ri   rM   arraysr3   
isinstanceravelr   r   )r;   rw   ru   r3   Zscalar_typer<   objZsersr?   r?   r@   *test_datetimelike_values_with_object_dtype   s0   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   rI   rh   r   columns)r   ranger   r9   r:   )r;   r~   yrn   r>   r?   r?   r@   )test_series_with_name_not_matching_column   s   zCTestDataFrameConstructors.test_series_with_name_not_matching_columnconstructorc                   C   s   t  S Nr   r?   r?   r?   r@   <lambda>   s    z"TestDataFrameConstructors.<lambda>c                   C   s   t d S r   r   r?   r?   r?   r@   r          c                   C   s   t dS Nr?   r   r?   r?   r?   r@   r      r   c                   C   s   t g S r   r   r?   r?   r?   r@   r      r   c                   C   s   t dd dD S )Nc                 s       | ]}|V  qd S r   r?   r}   _r?   r?   r@   	<genexpr>       5TestDataFrameConstructors.<lambda>.<locals>.<genexpr>r?   r   r?   r?   r?   r@   r      s    c                   C   s   t tdS Nr   r   r   r?   r?   r?   r@   r          c                   C   s
   t d dS Ndatar   r?   r?   r?   r@   r         
 c                   C   s
   t ddS )Nr?   r   r   r?   r?   r?   r@   r      r   c                   C   s
   t g dS r   r   r?   r?   r?   r@   r      r   c                   C   s   t dd dD dS )Nc                 s   r   r   r?   r   r?   r?   r@   r      r   r   r?   r   r   r?   r?   r?   r@   r      r   c                   C   s   t tddS )Nr   r   r   r?   r?   r?   r@   r      s    c                 C   s@   t  }| }t|jdksJ t|jdksJ t|| d S r   )r   rL   rT   r   r9   r:   r;   r   r>   rn   r?   r?   r@   test_empty_constructor   s
   z0TestDataFrameConstructors.test_empty_constructorc                   C   s   t i S r   r   r?   r?   r?   r@   r      r   c                   C   s
   t i dS r   r   r?   r?   r?   r@   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   rT   r   T)Zcheck_index_type)r   r   rL   rT   r   r9   r:   r   r?   r?   r@   #test_empty_constructor_object_index   s
   z=TestDataFrameConstructors.test_empty_constructor_object_indexz)emptylike,expected_index,expected_columnsrI   r   rH   c                 c   r   r   r?   r   r?   r?   r@   r      r   z#TestDataFrameConstructors.<genexpr>r?   c                 C   s$   t ||d}t |}t|| d S )Nr   r   r9   r:   )r;   Z	emptylikeZexpected_indexZexpected_columnsr>   rn   r?   r?   r@   test_emptylike_constructor   s   	z4TestDataFrameConstructors.test_emptylike_constructorc                 C   s8   t  \}}t||d}t|}|d jtjksJ d S )NrS   foo)r9   ZgetMixedTypeDictr   r3   r4   object_)r;   Zfloat_string_framerT   r   Zindexed_frameZunindexed_framer?   r?   r@   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w   Y  ttd}td |d< d}t jt|d td|d	< W d    n1 sOw   Y  td |d
< d S )Nz!could not convert string to floatrX   ar   bcr2   )r0   rH   r   z5Expected a 1D array, got an array with shape \(4, 2\)testZfoo2)r_   r`   
ValueErrorr   r4   r'   onesrk   )r;   ra   r=   r?   r?   r@   test_constructor_cast_failure   s   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)r3   copyg      i@r   r   )r   float)r;   Zorig_dfZnew_dfr?   r?   r@   test_constructor_dtype_copy  s   z5TestDataFrameConstructors.test_constructor_dtype_copyc                 C   sf   t ddgg}t ||d jd}|r"d|jd< |jd dks J d S d|d d< |jd dks1J d S )NrI   rH   r   r2   c   r   r   )r   r3   ilocvalues)r;   using_copy_on_writer=   should_be_viewr?   r?   r@   ,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}|s+|s+t |j|d jd}d|d d< |jd	 dks)J d S t |j|d jd}|jjd jjs?J d S )
NrI   rH   r1   r0   r-   r2   r   a   r   )r   r   r3   rM   r   flagsc_contiguous)r;   rO   r   r=   r   df2r?   r?   r@   +test_constructor_dtype_nocast_view_2d_array&  s   zETestDataFrameConstructors.test_constructor_dtype_nocast_view_2d_arrayc                 C   s4   t jddgdd}t|dd}t |j|sJ d S )Nr   r   ri   r2   Fr   r4   r]   r   shares_memoryr   r;   r<   r=   r?   r?   r@   "test_1d_object_array_does_not_copy4  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|sJ d S )	Nr   r   r   dri   r2   Fr   r   r   r?   r?   r@   "test_2d_object_array_does_not_copy;  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 )NrI   2r   r2   rI   r   rJ   )r   ri   locre   r?   r?   r@    test_constructor_dtype_list_dataB  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w   Y  tjtdd t |g W d    n1 s;w   Y  t dddgi}tjtdd t ||g W d    d S 1 saw   Y  d S )Nr   zshape=\(1, 0, 0\)rX   ArI   rH   zshape=\(2, 2, 1\))r   r4   emptyr_   r`   r   )r;   r   r   r?   r?   r@   "test_constructor_list_of_2d_raisesG  s   
"z<TestDataFrameConstructors.test_constructor_list_of_2d_raisesztyp, adr   r   barr   rg   Cintc                 C   s   |dkrt }dd |D }n|dkrt}dd |D }t||D ]\}}|j|ks+J q |tt|| t|}tt  }|D ]}||v rO|j| |ksOJ q@d S )Nr   c                 S   s"   g | ]}t jt jd |dqS )
   r2   )r4   r]   randomrandr}   r   r?   r?   r@   r   c     " zKTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>.<listcomp>r   c                 S   s&   g | ]}t jt jjd d d|dqS )r   )sizer2   )r4   r]   r   randintr   r?   r?   r@   r   f  s   & )MIXED_INT_DTYPESMIXED_FLOAT_DTYPESzipr3   updatedictr   dtypes)r;   typadr   r   r   r   r=   r?   r?   r@   test_constructor_mixed_dtypesU  s    z7TestDataFrameConstructors.test_constructor_mixed_dtypesc                 C   s^   t jdt j}t jdt j}t||d}|j|jjks$J |j|j	jks-J d S )Nr   r   r   )
r4   r   r   r8   Z	complex64
complex128r   r3   r   r   r;   r   r   r=   r?   r?   r@   test_constructor_complex_dtypesr  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 s%J t ddtjgi|d}t|jd s:J d S )Nr   r~   r2   FTr   )r   r!   r9   r:   r   r4   r^   isnan)r;   string_dtyper=   rn   r>   r?   r?   r@   $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 )NFrS   r   rg   r   r   )Z
to_recordslistr3   namesrT   r   r9   assert_index_equalr   r   r4   r5   rL   reindexr:   )	r;   float_frameZrecrT   r=   r   rngdf3r>   r?   r?   r@   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sJ d S )Nr   r2   rJ   )r   r4   r   boolzerosr   r3   bool_re   r?   r?   r@   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sFJ d S )Nc                 S   s   g | ]}d | qS )            r?   r}   ir?   r?   r@   r     r   zMTestDataFrameConstructors.test_constructor_overflow_int64.<locals>.<listcomp>rI   r   r2   r   ))l   Y2<   )l   FJLW]L*    )l   M:M^ -   )l   8Ma i  )l   r*R3_PvN r   )uidu8)Zscorer  r  )r4   r]   r   r+   r   r3   r   rL   )r;   r   rn   Zdata_scoresr3   r   Z	df_crawlsr?   r?   r@   test_constructor_overflow_int64  s    z9TestDataFrameConstructors.test_constructor_overflow_int64r   r   r2   A   l           l        l        c                 C   s:   |d }t |}|d jtksJ |d d |ksJ d S r   )r   r3   ri   r;   r   rU   rn   r?   r?   r@   test_constructor_int_overflow  s   z7TestDataFrameConstructors.test_constructor_int_overflowc                 C   s<   |d }t |}|d j|jksJ |d d |ksJ d S r   r   r3   r  r?   r?   r@   test_constructor_numpy_uints  s   z6TestDataFrameConstructors.test_constructor_numpy_uintsc                 C   sX   d}t t|}t| dd |D }ttt|dgg| }|t |jks*J d S )Nd   c                 S   s   g | ]}d |dqS )r   r   r?   r   r?   r?   r@   r         zJTestDataFrameConstructors.test_constructor_ordereddict.<locals>.<listcomp>r   )r   r   r   shuffler   r   r   r   )r;   Znitemsnumsr>   r=   r?   r?   r@   test_constructor_ordereddict  s   
z6TestDataFrameConstructors.test_constructor_ordereddictc                 C   sD  t jdd}t jdddd  }t||d}t|dksJ t|dks'J t |d |d tttj	gd |j
g|jdd}t ||d  t||dg d	d
}t|t|ksaJ d|vsgJ t|d  sqJ tt dkszJ d}tjt|d tdddg dd W d    d S 1 sw   Y  d S )N   Znperr   r   r      r   r   rT   r\   )r   r   Zcol4r   r   r   <Mixing dicts with non-Series may lead to ambiguous ordering.rX   r   r   r   r   r   rg   )r9   makeTimeSeriesr   rL   rl   renamer   r4   Zconcatenater^   r   rT   r!   allr_   r`   r   )r;   datetime_seriesdatetime_series_shortframeexpra   r?   r?   r@   test_constructor_dict  s0   "z/TestDataFrameConstructors.test_constructor_dictc                 C   s,   t ddddi}t|jtddg d S )Nr   rI   rH   1r   r  r   )r   r9   r   rT   r   r;   r  r?   r?   r@   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   rI   rH   rS   )r   r   rT   r;   rm   r  r?   r?   r@    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 sJ t|jdks$J d S )Nr"  r   r1   )r   r   rT   r   rL   _seriesr#  r?   r?   r@   ,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   rg   r   r   Texact)r   r9   r   rT   r   r   r?   r?   r@   $test_constructor_dict_of_empty_lists  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 s'J t|| d S )Nr   r   rS   )r   
_get_valuer9   r:   )r;   Z
frame_noneZframe_none_listr?   r?   r@   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 sw   Y  t jt|d tddidgd W d    d S 1 s;w   Y  d S )N2If using all scalar values, you must pass an indexrX   r   gffffff?r   r_   r`   r   r   r;   ra   r?   r?   r@   test_constructor_dict_errors'  s   "z6TestDataFrameConstructors.test_constructor_dict_errorsscalarNDc                 C   s.   t d|idgd}t dgd}t|| d S )Nr   r   r   r   )r;   r0  rn   r>   r?   r?   r@   %test_constructor_invalid_items_unused1  s   z?TestDataFrameConstructors.test_constructor_invalid_items_unusedrU   r^   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 )NrI   r1   r   r   r0   rH   r   c                    "   i | ]} | t | d qS rS   r{   r}   r   colsrm   r   r?   r@   
<dictcomp>>  r   zKTestDataFrameConstructors.test_constructor_dict_nan_key.<locals>.<dictcomp>ZaxisrC   r-   r2   r   rS   )r   r   sort_valuesr4   r5   r6   r9   r:   r;   rU   r   rn   r>   r?   r6  r@   test_constructor_dict_nan_key8  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)            r   rH   r   r1   rI   r0   r   c                    r3  r4  r{   r5  r6  r?   r@   r8  Q  r   zQTestDataFrameConstructors.test_constructor_dict_nan_tuple_key.<locals>.<dictcomp>r9  rC   r-   r2   r   rS   )	r   r   r   r:  r4   r5   r6   r9   r:   r;  r?   r6  r@   #test_constructor_dict_nan_tuple_keyK  s   z=TestDataFrameConstructors.test_constructor_dict_nan_tuple_keyc                 C   sL   t jdd}t jdd}||d}t|d}t|tdd}t || d S )Nr  r  r  r   r   r   bar   r   )r9   r  r   r   r:   )r;   r  r  r   r  r>   r?   r?   r@   %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 )NrI   rH   r1   r   )r   r4   r^   r9   r:   r;   rn   r>   r?   r?   r@   )test_constructor_dict_nan_key_and_columnsi  s   $zCTestDataFrameConstructors.test_constructor_dict_nan_key_and_columnsc                 C   sl   g d}t |}t||d}t|j  sJ g d}t |}t||d}t|j  s4J d S )N)rH   r1   r1   r1   rI  r   )rI  rH  rI  )r   from_tuplesr   r!   r   r   r  )r;   tuplesmir=   r?   r?   r@   test_constructor_multi_indexo  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 )	NrI   rH   r   rT   r-   r2   r   )Zlevelscodesr   )r   r   r   r9   r:   r;   r=   r>   r?   r?   r@   test_constructor_2d_index|  s   z3TestDataFrameConstructors.test_constructor_2d_indexc                 C   s  d}t jt|d ttdtdd W d    n1 sw   Y  d}t jt|d tddd	g d
d W d    n1 sDw   Y  d}t jt|d ttddg dt	dddd W d    n1 spw   Y  t
g dg}d}t jt|d tdgtdd|d W d    n1 sw   Y  t
g d}d}t jt|d tdgtdd|d W d    n1 sw   Y  t jtdd ttdg ddgd W d    n1 sw   Y  d}t jt|d ttjddg ddgd W d    n	1 sw   Y  d}t jt|d ttjddd d!gddgd W d    n	1 s>w   Y  d"}t jt|d ttd#td#d$fd%d W d    n	1 sew   Y  d&}t jt|d td'd(d	 W d    d S 1 sw   Y  d S ))N)Empty data passed with indices specified.rX   r   r   r   r  r   r   r   r   r  z:Shape of passed values is \(4, 3\), indices imply \(3, 3\)r/   )r0   r1   r   r   baz
2000-01-01r1   rF   rN  r0   r   rC   z:Shape of passed values is \(1, 3\), indices imply \(1, 4\)r0   rT   r   r   z:Shape of passed values is \(3, 1\), indices imply \(1, 4\)Must pass 2-d inputr1   r1   r1   r   rI   :Shape of passed values is \(2, 3\), indices imply \(1, 3\)rH   :Shape of passed values is \(2, 3\), indices imply \(2, 2\)r   rg   z,2 columns passed, passed data had 10 columnsr      )r   Ztwosr,  FT)r_   r`   r   r   r4   r   r   r5   r6   r    r]   r   r   r   r   )r;   ra   r<   r?   r?   r@   test_constructor_error_msgs  sZ   
 "$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       | ]	}|d | fV  qdS )g      $@Nr?   r|   r?   r?   r@   r         zKTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<genexpr>r   c                 s   r_  )g      4@Nr?   r|   r?   r?   r@   r     r`  r  c                 S   s   i | ]\}}|t | qS r?   )r   items)r}   colvalr?   r?   r@   r8    s    zLTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<dictcomp>)r   r   ra  r9   r:   )r;   Zdict_subclassr   r=   Zrefdfr?   r?   r@   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   rg   rS   )r4   r^   r   rT   ra  r   r   r   to_dictr   r   r9   r:   )r;   r   r   kvdctr  r>   r?   r?   r@   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   rj  r   r   r   )r   r   r   r   r   )r4   r]   r   r9   assert_numpy_array_equalr   r;   r>   r=   r?   r?   r@   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sJ |d jtjks$J |d jtjks.J t |}t|d
ks:J |d jtjksDJ |d jtjksNJ d S )NrI   rH   r  r  r   3)r  r   rn  r  r2   r1   rg   r   )r   r   rL   r3   r4   r'   r   )r;   	test_datar  r?   r?   r@   test_constructor_dict_cast  s   z4TestDataFrameConstructors.test_constructor_dict_castc                 C   st   t ttdtdt ttdtjdd}tj	t
dd t|td W d    d S 1 s3w   Y  d S )Nr]     r  zcould not convert stringrX   r2   )r   r   r   r9   ZmakeStringIndexr4   r   randnr_   r`   r   r   r   )r;   ro  r?   r?   r@   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Row2rt  )r4   r^   r   r   r   )r;   r   r=   r?   r?   r@   !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sJ d S )NrI   rH   r   r   r   )r   r   r   )r;   dmr?   r?   r@   "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rI   rH   r1   rW  r   c                 S   s   i | ]	\}}|t |qS r?   )r   )r}   rf  rg  r?   r?   r@   r8  
  s    zMTestDataFrameConstructors.test_constructor_dict_of_tuples.<locals>.<dictcomp>FZcheck_dtype)r   ra  r9   r:   r;   r   rn   r>   r?   r?   r@   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 )Nr1   rC   r   r"  )r1   r0   r   r   r   r9   r:   rz  r?   r?   r@   test_constructor_dict_of_ranges  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 )Nr1   r   r"  rH   rI   r   )iterr   reversedr   r9   r:   rz  r?   r?   r@   "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   r   r   r?   r   r?   r?   r@   r     r   zPTestDataFrameConstructors.test_constructor_dict_of_generators.<locals>.<genexpr>r1   r   r"  r~  )r   r  r   r9   r:   rz  r?   r?   r@   #test_constructor_dict_of_generators  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   rI   rH   )r   r   r   jr  r   rC   r   r0         	   ))r   r   rB  )r   r   c                 S      g | ]}|d  qS rI   r?   r|   r?   r?   r@   r   -  r   zNTestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   r  r   r?   r|   r?   r?   r@   r   -  r   rS   g     ^@o   )r   r  r  r  zc                 S   r  r  r?   r|   r?   r?   r@   r   8  r   c                 S   r  r  r?   r|   r?   r?   r@   r   8  r   F)Ztupleize_colsrN  )sortedra  r   r   rJ  TrT   r9   r:   insertr   r   r   )r;   r   _dr=   r>   r?   r?   r@    test_constructor_dict_multiindex$  s6   


 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                    "   i | ]\}}| |d | iqS rH   r?   r}   r   sr   r?   r@   r8  D  r   ziTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<dictcomp>)	enumerater  Zdates_as_strr  r@   create_dataC  s   zUTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S      t | dS )Nz%Y-%m-%d)r   strptimer~   r?   r?   r@   r   G  r   zRTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>r   r   rI   rH   r1   rH   r0   rC   c                 S   rz   r?   )r   )r}   rR   r?   r?   r@   r   Q  r   zTTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<listcomp>rS   )r4   rs   r   r   r9   r:   )	r;   r  Zdata_datetime64Zdata_datetimeZdata_Timestampr>   Zresult_datetime64Zresult_datetimeZresult_Timestampr?   r  r@   &test_constructor_dict_datetime64_index?  s&   

z@TestDataFrameConstructors.test_constructor_dict_datetime64_indexz
klass,namec                 C   r  Nr1  )r4   timedelta64r  r?   r?   r@   r   ^  r   r  c                 C   s
   t | dS )N)days)r	   r  r?   r?   r@   r   _  r   Zpytimedeltac                 C   s
   t | dS r  r   r  r?   r?   r@   r   `  r   zTimedelta[ns]c                 C   s   t | ddS )Nr1  r  )r   Zas_unitr  r?   r?   r@   r   a  s    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rI   rH   r1   r0   c                    r  r  r?   r  klassr?   r@   r8  h  r   zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<dictcomp>r   r  rH   r0   rC   c                 S   s   g | ]}t |d qS )r1  r  )r}   tdr?   r?   r@   r   q      zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<listcomp>rS   )r  r   r9   r:   )r;   r  r\   Z	td_as_intr   r>   rn   r?   r  r@   '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s#J |d j|jks-J t|t |t d}|d j|jksHJ |d j|jksRJ d S )	N)z2012-01rp   z2012-04ry   freq)z
2012-02-01z
2012-03-01rp   r1  r   r   r   )pdZPeriodIndexr   r3   r8   ri   rk   r   r?   r?   r@   test_constructor_period_dictx  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 )Nr   r   rS   rX  )r   r3   r9   r:   )r;   Zea_scalar_and_dtypeZ	ea_scalarZea_dtyper=   r>   r?   r?   r@   &test_constructor_dict_extension_scalar  s
   z@TestDataFrameConstructors.test_constructor_dict_extension_scalarz
data,dtypez2020-01r   )leftrightr-   r  z
2011-01-01
US/EasternrG   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   rI   r   r   rX  rH   r2   r   )r   r3   r  r]   r9   r:   )r;   r   r3   r=   r<   r>   r?   r?   r@   &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qt||d}t
|| i }|jD ]}|jD ]}||||	|i |< qBq=t||dj}t
|| d S )Nz1/1/2000r   rV  r   r   rS   )r  period_ranger   r4   r   rr  r   rT   r*  
setdefaultr9   r:   r  )r;   r   r=   r   rb  rowrn   r?   r?   r@   "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sJ t|jdks#J t|dd	gg d
d}t|jdks8J t|jdksAJ |tjurod}tjt	|d t|g dddgtj
d W d    d S 1 shw   Y  d S t|g dddgtj
d}|jjtj
ksJ d}tjt|d t|g ddgd W d    n1 sw   Y  d}tjt|d t|d	dgddgd W d    n1 sw   Y  tjtdd t|dg ddgd W d    n1 sw   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sGJ t|d}t|jdksWJ d S )NrH  r2   r   rI   rH   rN  r1   )r1   r   rx  rW   rX   r   rT   r3   r[  r\  rg   rY  rZ  Tr'  rS   r   )r   r1   r   )r1   r   )r   r   rL   rT   r   r4   r   r_   r`   r   r-   r   r3   r   r9   r   r   r   )r;   r   matr  ra   r?   r?   r@   _check_basic_constructor  sR   

z2TestDataFrameConstructors._check_basic_constructorc                 C   s8   |  tj tddgddgdgd}t|dksJ d S )Nr   r   r   rI   r   r   rH   )r  r4   r   r   rL   r   r?   r?   r@   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s*J d|d d	 ks4J tjdtd}t|g ddd	gd
}tt||k sSJ d S )NrH  r2   r   r   r   rI   rH   r   rI   rH   rN  r   r   )r  r   
masked_allr   r   r4   r  asarray)r;   r  r  r?   r?   r@   test_constructor_maskedarray  s   z6TestDataFrameConstructors.test_constructor_maskedarrayc              	   C   s  t jdtd}t|g dddgd}t|jdksJ t|jdks$J tt	||k s1J t|g dddgtj
d}|jjtj
ksGJ t |}d|d	< d|d
< t|g dddgd}d|d d ksiJ d|d d kssJ t jddd}t|g dddgd}t|jdksJ t|jdksJ t|j sJ d}tjt|d1 t  tjdtdd t|g dddgtjd W d    n1 sw   Y  W d    n1 sw   Y  t |}d|d	< d|d
< t|g dddgd}d|d dd ksJ d|d dd ksJ t jdtd}t|g dddgd}t|jdks2J t|jdks<J tt	||k sJJ t|g dddgtd}|jjtks_J t |}d|d	< d|d
< t|g dddgd}|d d du sJ |d d du sJ d S )NrH  r2   r   rI   rH   rN  r1   r  r   r  r   r   rc   z8datetime64\[ns\] values and dtype=int64 is not supportedrX   ignorezelementwise comparison failed)categorymessagerZ   TF)r   r  r   r   rL   rT   r   r4   r  r  r'   r   r3   r   r!   r_   r`   rt   warningscatch_warningsfilterwarningsDeprecationWarningr-   r   r   ri   )r;   r  r  Zmat2ra   r?   r?   r@   %test_constructor_maskedarray_nonfloat  sb   




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)rH   rH   r2   r   rg   rI   rH   rN  r  r  r   )
r   r  r   Zharden_maskr   r4   r^   r9   r:   r   )r;   Zmat_hardrn   r>   r?   r?   r@   %test_constructor_maskedarray_hardenedN  s$   z?TestDataFrameConstructors.test_constructor_maskedarray_hardenedc                 C   sr   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    d S 1 s2w   Y  d S )	Nr   )r   <f8)Zpricer  r2   F)maskzPass \{name: data\[name\]rX   )r4   r   r]   r   r   r   Z	mrecarrayr_   r`   rt   r   r   r;   r   r?   r?   r@   %test_constructor_maskedrecarray_dtyped  s   "z?TestDataFrameConstructors.test_constructor_maskedrecarray_dtypec                 C   s   t g d}|jjdksJ d S )NrS   r   )r   r   shapere   r?   r?   r@   test_constructor_corner_shapen  s   
z7TestDataFrameConstructors.test_constructor_corner_shapez%data, index, columns, dtype, expectedr   r   r   r'   r   c                 C   s"   t ||||}|jj|ksJ d S r   )r   r   r3   )r;   r   rT   r   r3   r>   r=   r?   r?   r@   test_constructor_dtyper  s   z0TestDataFrameConstructors.test_constructor_dtypezdata,input_dtype,expected_dtype)TFNbooleanr   r   NZFloat64)rI   rH   NZInt64r   stringc                 C   s(   t d|i|d}|d j| ksJ d S )Nr   r2   r  )r;   r   Zinput_dtypeZexpected_dtyper=   r?   r?   r@   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sJ |d
 jtjks%J |d jtjks/J |d jtjks9J |d jtjksCJ d S )NrI   Tr   y              @r   )r   r   r   complexri   r   rS   r   r   r   r  ri   )	r   r4   r5   r3   r-   r   r'   r   r   )r;   r   r=   r?   r?   r@   !test_constructor_scalar_inference  s   z;TestDataFrameConstructors.test_constructor_scalar_inferencec                 C   s~   t tjddd}t |d jdgd d}t|| tjt	dd t ddd W d    d S 1 s8w   Y  d S )Nr   Tr   r   zmust pass an indexrX   F)
r   r4   r   rr  r   r9   r:   r_   r`   r   )r;   r=   r  r?   r?   r@   #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sJ d S Nr2   )r   r9   r:   r4   r-   r   r3   )r;   r   r=   Z	df_castedr?   r?   r@   test_constructor_DataFrame  s   z4TestDataFrameConstructors.test_constructor_DataFramec                 C   s*   t t  dd}t g dd}t|| d S )Nri   r2   r   )r;   actualr>   r?   r?   r@    test_constructor_empty_dataframe  s   z:TestDataFrameConstructors.test_constructor_empty_dataframec                 C   s  t jd}t|dgt dd}|jjdksJ t jd}t|}|jjdks+J |jjdks3J tddgt dd}|jjdksFJ tddgd}|jjd	ksUJ tt dd
}|jjdkseJ 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 sw   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 )Nr   r   rN  rH   r   rg   )r   rH   r   )r   rH   rS   )r   r   r   r   r2   rI   z(could not convert string to float: 'foo'rX   rT   r   r3   r  )r4   r   rr  r   r5   r   ndimr  r]   ri   r6   r_   r`   r   r   r%  r9   r:   r   r   r'   rL   r   r3   )r;   r   r<   rv  r  ra   r?   r?   r@   test_constructor_more  s4   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 )NrS   r   rg   r   c                   s   s    dE d H  d S r   r?   r?   r?   r?   r@   	empty_gen  s   zHTestDataFrameConstructors.test_constructor_empty_list.<locals>.empty_genr   )r;   r=   r>   r  r?   r?   r@   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 |d jtjks J t dtd	i}d
d td	D }t |}t|| d S )NrI   r   rH   r   numr7   rD  r   r   c                 S      g | ]}t |qS r?   r4   r]   r|   r?   r?   r@   r     r  zLTestDataFrameConstructors.test_constructor_list_of_lists.<locals>.<listcomp>)	r   r   r3   r4   r   r5   r   r9   r:   )r;   r=   r>   r   rn   r?   r?   r@   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s1J t	|d j
| d S )NrI   rH   r2   r   )rH   rI   )r   r4   r]   ri   r   r  r9   r:   r  rk  r   )r;   serr<   r=   r>   r?   r?   r@   .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  r0   r   rC   r  r   )r   r   r   Zfrom_arraysr9   r:   )r;   r   rn   rL  r>   r?   r?   r@   2test_constructor_list_like_data_nested_list_column  s
   
zLTestDataFrameConstructors.test_constructor_list_like_data_nested_list_columnc                 C   `   t dt dg}d}tjt|d tg dg dg|d W d    d S 1 s)w   Y  d S )Nr   cdez#3 columns passed, passed data had 4rX   r  r  r   r   r_   r`   r   r   r;   r   ra   r?   r?   r@   0test_constructor_wrong_length_nested_list_column  s
   "zJTestDataFrameConstructors.test_constructor_wrong_length_nested_list_columnc                 C   r  )Nr  r  zall arrays must be same lengthrX   r  r  r   r  r  r?   r?   r@   2test_constructor_unequal_length_nested_list_column  s
   "zLTestDataFrameConstructors.test_constructor_unequal_length_nested_list_columnr   
2021-01-01r~   c                 C   s:   t |g ddgd}t dtdgd i}t|| d S )Nr"  r~   r   r  r1   )r   r   r9   r:   rz  r?   r?   r@   &test_constructor_one_element_data_list  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                   @   s,   e Zd Zd	ddZdd ZdefddZdS )
zPTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainerreturnNc                 S   s
   || _ d S r   )_lst)r;   lstr?   r?   r@   __init__0     
zYTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__init__c                 S   s   | j |S r   )r  __getitem__)r;   nr?   r?   r@   r  3  s   z\TestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__getitem__c                 S   s
   | j  S r   )r  __len__)r;   r?   r?   r@   r  6  r  zXTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__len__)r  N)__name__
__module____qualname__r  r  r   r  r?   r?   r?   r@   DummyContainer/  s    
r  rI   r   rH   r   r  r7   r   Fry  )r   Sequencer   r9   r:   )r;   r  Zlst_containersr   rn   r>   r?   r?   r@   test_constructor_sequence_like+  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   Fry  )r   r]   r   r   r9   r:   rF  r?   r?   r@   test_constructor_stdlib_array?  s   $z7TestDataFrameConstructors.test_constructor_stdlib_arrayc                 C   s,   t td}t ttd}t|| d S Nr   r   r   r   r9   r:   rF  r?   r?   r@   test_constructor_rangeJ  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  rF  r?   r?   r@   test_constructor_list_of_rangesP  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defddZdS )zATestDataFrameConstructors.test_constructor_iterable.<locals>.Iterr  c                 s   s    t dD ]}g dV  qd S )Nr   rx  )r   )r;   r   r?   r?   r@   __iter__X  s   zJTestDataFrameConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)r  r  r  r
   r  r?   r?   r?   r@   IterW  s    r  rx  r   r   )r;   r  r>   rn   r?   r?   r@   test_constructor_iterableU  s   
z3TestDataFrameConstructors.test_constructor_iterablec                 C   s0   t ttd}t ttd}t|| d S r  r   r  r   r   r9   r:   rF  r?   r?   r@   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  rF  r?   r?   r@   "test_constructor_list_of_iteratorse  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   r   r   r?   r   r?   r?   r@   r   m  r   zGTestDataFrameConstructors.test_constructor_generator.<locals>.<genexpr>r   c                 s   r   r   r?   r   r?   r?   r@   r   n  r   c                 s   s    | ]}|d gV  qdS )r   Nr?   r   r?   r?   r@   r   t      r   rJ   Fry  )r   r   r   r9   r:   )r;   Zgen1Zgen2r>   rn   genr?   r?   r@   test_constructor_generatorj  s   z4TestDataFrameConstructors.test_constructor_generatorc                 C   s*   t i g}t tdg d}t|| d S )NrI   r   )r   r   r9   r:   rF  r?   r?   r@   test_constructor_list_of_dictsy  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   rI   )r   rH   )r   rH   )r   r   r   r   rI   rH   r   )r   r   r   r   )r   rT   )r   r   r9   r:   )r;   Znested1Znested2r   rn   r>   r?   r?   r@   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 )NrH   rI   r   r   r   r   )r;   r  r>   r   rn   r?   r?   r@   ,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 )NrH   r   rI   r   rB  r   r   )r;   r  Zrow_oneZrow_twoZ	row_threer>   rn   r?   r?   r@   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   r   r   r  )r   r7   r   r?   r?   r@   r     r   z[TestDataFrameConstructors.test_constructor_list_of_series_aligned_index.<locals>.<listcomp>r1   r"  r  )0r  r   rN  r|  )r;   seriesrn   r>   r?   r?   r@   -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                   @      e Zd ZdS )zTTestDataFrameConstructors.test_constructor_list_of_derived_dicts.<locals>.CustomDictNr  r  r  r?   r?   r?   r@   
CustomDict      r        ?r1   r   )r   r   r9   r:   )r;   r  r   Zdata_customr   Zresult_customrn   r?   r?   r@   &test_constructor_list_of_derived_dicts  s   

z@TestDataFrameConstructors.test_constructor_list_of_derived_dictsc                 C   sV   t jdt jdd}tjtdd t| W d    d S 1 s$w   Y  d S )Nr   r  r  z%All arrays must be of the same lengthrX   )r4   r   rr  r_   r`   r   r   r  r?   r?   r@   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 )Nr1   r   r   rS   )r   r   r   Fry  )r   r   r   r9   r:   )r;   rm   r=   r>   r?   r?   r@   test_constructor_scalar  s   z1TestDataFrameConstructors.test_constructor_scalarc                 C   s"   t |d |jdgd}|  d S )Nr   r   )r   rT   r   )r;   r   r=   r?   r?   r@    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>w   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 )NrI   rH   r1   rS  r   )r0   r1   rH   rI   )r   ZquxrT  r   rS   rg   zambiguous orderingrX   r   r   r   r  )	r   r   rT   Zis_monotonic_increasingr_   r`   r   r9   r:   rz  r?   r?   r@   &test_constructor_mixed_dict_and_Series  s   "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 )NrI   rH   r1   r0   r1   r0   r   rz  r?   r?   r@    test_constructor_mixed_type_rows  s   z:TestDataFrameConstructors.test_constructor_mixed_type_rowsztuples,lists)r?   r?   rx  rW  c                 C   s    t |}t |}t|| d S r   r   )r;   rK  listsrn   r>   r?   r?   r@   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   r9   r:   rF  r?   r?   r@   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abrI   r1   rH   r0   r   )r   r  r   r  r   )r   r   r   r9   r:   )r;   Znamed_tuplerK  r>   rn   r?   r?   r@   $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   r1   rI   r~   r   )r   r   r   r9   r:   )r;   r)  r   r>   rn   r?   r?   r@   $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   r1   rI   )r~   r   r-  r.  )r   r   r   r4   r^   r9   r:   )r;   r)  r,  r   r>   rn   r?   r?   r@   7test_constructor_list_of_dataclasses_with_varying_types  s   "zQTestDataFrameConstructors.test_constructor_list_of_dataclasses_with_varying_typesc                 C   sl   t ddtfdtfg}d}tjtt|d t|dddddg W d    d S 1 s/w   Y  d S )	Nr)  r~   r   z0asdict() should be called on dataclass instancesrX   r   rI   r*  )r   r   r_   r`   rt   reescaper   )r;   r)  ra   r?   r?   r@   1test_constructor_list_of_dataclasses_error_thrown*  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 )NrI   r0   r  r   )FirstSecondThirdFourthr   rH   r=  r  )r4  r3  r6  r5  rC   r1   r/   r     r@  )r4  r3  r6  r5  YYYXXXrx  rW  )r  r  r  )r   r=  r/   )NNr7  )NNr@  )r3  r4  r5  r6  r8  r9  r   )r;   r   r>   rn   r?   r?   r@   #test_constructor_list_of_dict_order3  s   
z=TestDataFrameConstructors.test_constructor_list_of_dict_orderc                 C   s  t g dg ddd}t|}|jd dksJ t|j|j tj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 sqw   Y  t g dtd}t|}|jd dksJ 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 )Nrx  r   r~   r  r   r   rh   r1   r@  rS   z<Shape of passed values is \(10, 1\), indices imply \(10, 2\)rX   rI   rH   r   r\   r3   )r~   	Unnamed 0r<  r   )r   r   r   r9   r   rT   r4   r   rr  r:   r   r_   r`   r   ri   r  )r;   r   r=   r<   r  r>   ra   s1r?   r?   r@   test_constructor_Series_namedG  s6   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s4J t|dgdjs>J d S )Nr   r   rh   rI   r   )r   r   r9   r:   r   to_framer   )r;   s0r=  r?   r?   r@   )test_constructor_Series_named_and_columnsm  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s1J t|| t||d}t||}|jd dksMJ t|j| t|| d S )	Nrx  r   r~   r  rS   r   r   r   )	r   r   r   r   r   r9   r:   r   rT   )r;   r=  s2Zother_indexdf1Zexp1r   Zexp2r?   r?   r@   +test_constructor_Series_differently_indexed{  s   zETestDataFrameConstructors.test_constructor_Series_differently_indexedz#name_in1,name_in2,name_in3,name_out))rm   rm   rm   rm   )rm   rm   NN)rm   NNN)idx1idx2NN)rE  rE  rF  N)rE  rF  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   rh   )r   r   r   )r   r   ec                 S   s"   i | ]\}}|t g d |dqS )r"  rS   r{   )r}   r   r   r?   r?   r@   r8    s    zJTestDataFrameConstructors.test_constructor_index_names.<locals>.<dictcomp>)r~   r   r  r   r   r   r   rG  r   rI   rH   rS   )r   r   r   r4   r^   r9   r:   )
r;   Zname_in1Zname_in2Zname_in3Zname_outindicesr  rn   Zexp_indr>   r?   r?   r@   test_constructor_index_names  s"   	z6TestDataFrameConstructors.test_constructor_index_namesc                 C   s\   t |jd d }t |jd d }t|j||d}t|jt| t|jt| d S )Nr   r1   r   )r   rT   r   r   rM   r9   r   r   )r;   r   rT   r   rn   r?   r?   r@   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 t |d t|d d d d W d    d S 1 sFw   Y  d S )Nr   rg   r  r   zdoes not match index lengthrX   )r   r   r9   r:   r   r_   r`   r   )r;   r   r=   ra   r?   r?   r@   %test_constructor_mix_series_nonseries  s   $"z?TestDataFrameConstructors.test_constructor_mix_series_nonseriesc                 C   sT   d}t jt|d ttjdgddggtjd W d    d S 1 s#w   Y  d S )NrW   rX   rI   r   r2   )r_   r`   r   r   r4   r^   r-   r.  r?   r?   r@   %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   r   r   )r  r   )r   r   r9   r:   Zfrom_records)r;   r=   ZedfZidfr?   r?   r@   "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tjd}t|| t ddgddgdd}t|| d S )Nr   rI   r  ZU5)r   ri   r7   r9   r:   r4   Zstr_Zunicode_rl  r?   r?   r@   (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   r3   r   )r;   Znullable_string_dtyper>   r=   r?   r?   r@   ,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 s|w   Y  tjt|d t dddgd W d    n1 sw   Y  d}tjt|d t dd	d
gddgt W d    d S 1 sw   Y  d S )N        rx  r   r   r'   r   r-   r   rI   rH   r   r2   z*DataFrame constructor not properly called!rX   r   zincompatible data and dtype)r   r9   r:   r4   r   r  r8   rT   r   r]   ri   r_   r`   r   rt   r   )r;   r=   ra   r?   r?   r@   test_constructor_single_value  s8   	"z7TestDataFrameConstructors.test_constructor_single_valuec                 C   s  t t jj}t t jj}t d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t |gd  t |gd  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 t 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 t dg t dg t |g ddd||gd}t|| d S )Nrc   rI   r   r   Z20010101  rH   r   )r   rg   r   r1  Er   rS   r-   ZABCDEr   r   r   r   r2   r'   ri   )r4   r3   int_r\   Zfloat_r   r   r   r   r5   r   r   r   r9   rl   r]   )r;   ZintnameZ	floatnameZdatetime64nameZ
objectnamer=   rn   r>   r?   r?   r@   test_constructor_with_datetimes
  s   













z9TestDataFrameConstructors.test_constructor_with_datetimesc                 C   s6   t dddd}dd |D }t|}|jdksJ d S )NrU  r1  r   startr  rF   c                 S      g | ]}|  qS r?   to_pydatetimer}   tsr?   r?   r@   r   T  r   zNTestDataFrameConstructors.test_constructor_with_datetimes1.<locals>.<listcomp>rc   )r    r   r3   )r;   ind	datetimesZ
datetime_sr?   r?   r@    test_constructor_with_datetimes1Q  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 )NrU  r1  r   rZ  c                 S   r\  r?   r]  r_  r?   r?   r@   r   [  r   zNTestDataFrameConstructors.test_constructor_with_datetimes2.<locals>.<listcomp>c                 S   r\  r?   )r   r_  r?   r?   r@   r   \  r   rb  r   datesdatetime64[ns]ri   rS   )r    r   r   r   r4   r3   r9   rl   )r;   ra  rb  rd  r=   rn   r>   r?   r?   r@    test_constructor_with_datetimes2X  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|ig}|jd |ks;J t|jt	ddi d S )	Nr    rI   zEnd Dater   rS   r   datetime64[ns, US/Eastern])
pytztimezonelocalizer   r   iatr9   rl   r   r   )r;   rG   rR   r=   r?   r?   r@    test_constructor_with_datetimes3f  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sHJ d S )	N20130101r1   rV  rU   r   UTCrE   r  )r    r   rl  rG   r7   )r;   drr=   r?   r?   r@    test_constructor_with_datetimes4x  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  rF   r  rG   r   TZdropr    r   Z	to_seriesZreset_indexr9   r:   )r;   r   r>   r=   r?   r?   r@    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 )
Nrr  r   rs  r  rt  rF   r  r   Tru  rv  )r;   r   Zi_no_tzr=   r>   r?   r?   r@    test_constructor_with_datetimes6  s
   z:TestDataFrameConstructors.test_constructor_with_datetimes6r<   rp   c                 C   s*   t |j}ttdg}t|| d S )Nre  )r   r   r   r4   r3   r9   rl   )r;   r<   rn   r>   r?   r?   r@   %test_constructor_datetimes_with_nulls  s   
z?TestDataFrameConstructors.test_constructor_datetimes_with_nullsorder)Kr   r   Funit)ry   r1  hrx   r  msusrq   c                 C   s   d| d}t jg dg dg||d}t|}t|d}|dv rEtjtdd	 || W d    n1 s:w   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r3   r{  rc   )ry   r1  r  rx   Cannot castrX   zdatetime64[s]r2   )	r4   r]   r   r8   r_   r`   rt   r9   r:   )r;   r{  r~  r3   nar=   r>   r?   r?   r@   !test_constructor_datetimes_non_ns  s"   z;TestDataFrameConstructors.test_constructor_datetimes_non_ns)r1  r  rx   r  r  r  rq   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[r  rI   r1  rH   r0   r   r  )r1  r  rx   r  zm8[r2   )r4   r]   r  r   r3   r   r9   r:   )	r;   r{  r~  r3   r  r=   Zexp_unit	exp_dtyper>   r?   r?   r@   !test_constructor_timedelta_non_ns  s(   	z;TestDataFrameConstructors.test_constructor_timedelta_non_nsc                 C   s  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sQJ t ddg}|jjd
 tdksdJ t ddg}|jjd
 tdkswJ t dddgi}|jjd
 tdksJ t dddgi}|jjd
 tdksJ t dditdd}|jjd
 tdksJ 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tdtdtdgt	dd}t|| d S )Nc                 S   s   g | ]}t d qS )r   )r4   r5   r|   r?   r?   r@   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   r,   r2   )r4   r]   r5   r|   r?   r?   r@   r     s     r,   r   l        l       r   r-   rI   rH   r   r   r'   r1   rS   )rI   rH   r0   r  )g333333?gffffff@gffffff@g333333@r  c                 S   s   g | ]}t d ddqS )  rI   )r   r   r?   r?   r@   r     r  r0   )r   rH   rj  r  rH  ri   re  Zabcde)
r   r   r   r   r4   r3   r9   rl   r   r   )r;   r=   rn   r>   r?   r?   r@   %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   copr?   r?   r@   test_constructor_frame_copy-  s   z5TestDataFrameConstructors.test_constructor_frame_copyc                 C   s@   |  }t|}|j|jusJ tt||_t|| d S r   )	r   r   rM   r4   r5   rL   rT   r9   r:   )r;   r   origr  r?   r?   r@   #test_constructor_frame_shallow_copy3  s
   z=TestDataFrameConstructors.test_constructor_frame_shallow_copyc                 C   s   |s?|j  }t|}d|d< |r|j d dk rJ n|j d dk s(J t|dd}d|d< |j d dk r=J d S |j  }t|}|jjd jjsRJ d|d< |jd dks_J t|dd}|jjd jjroJ d	|d< |jd d	ks|J d S )
Nr   Tr   rC   r   r
  r   Fi  )	r   r   r   r  rM   r   r   r   r   )r;   r   rO   r   r<   r=   r?   r?   r@   test_constructor_ndarray_copy>  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 r&J d S )Nr   Tr   r   r   r   )r%  r   r   rT   r  )r;   r   r  r=   r?   r?   r@   test_constructor_series_copy\  s   z6TestDataFrameConstructors.test_constructor_series_copyr=   rS   g?g@r   r  r  )rT  rI   rH   r   c                 C   s   t t|jD ]}|jd d |f  qtt|jt|j }t|dkrJtjt	dd |j
d d tjf  W d    d S 1 sCw   Y  d S t|dkrit|jd d |d f |j
d d tjf  d S t|jd d |f |j
d d tjf  d S )Nr   z^nan$rX   rI   )r   rL   r   r   r4   r5   r!   r_   r`   KeyErrorr   r^   r9   rl   r:   )r;   r=   r   Zindexerr?   r?   r@   test_constructor_with_nasf  s   "2.z3TestDataFrameConstructors.test_constructor_with_nasc                 C   s:   t dtjdgi}|d jtjksJ |d d rJ d S )Nr   FrI   )r   r4   r^   r3   r   )r;   r   r?   r?   r@   &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   rI   r!  r2   r  )	r   r4   r]   r6   Zbroadcast_tor   r3   r9   r:   )r;   catr<   rn   r>   r?   r?   r@   *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   r  r2   r[   r   r   rh   )r   r   r   r9   rl   r?  )r;   r=   r>   r  rn   r?   r?   r@   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   r8   ri   r9   r:   )r;   r  r=   r>   r?   r?   r@   -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   )r   r   r   r   r   r   r9   r:   rP  r?   r?   r@   (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   rG  fr  rP  r?   r?   r@   %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  rP  r?   r?   r@   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)rI   rH   r1   rI   r  r2   )r   r   r   r   Z20000101r1   rV  r   )r   
categoriesr~   rS   )r   r8   r9   rl   r    r   r4   r^   rT   r   r:   )r;   ra  r  resrT   r>   r=   r?   r?   r@   #test_constructor_categorical_series  s    z=TestDataFrameConstructors.test_constructor_categorical_seriesr3   c                 C   s,   t dddgidg|d}|jj|ksJ d S )Nr   rI   rH   r   rR  )r   r   r3   )r;   r3   r   r?   r?   r@   %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}|r|tjv rt| |jjjdks!J d S )Nr   rI   rH   r   rR  ri   )r   r9   BYTES_DTYPESr  &mark_array_manager_not_yet_implementedr   r3   r\   )r;   requestr3   rO   r   r?   r?   r@   $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   r;  )r   ri   r?  r   r9   rl   r   rF  r?   r?   r@   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   rI   rH   r1   r0   r-   r2   r   rR  )r   r   r9   r:   )r;   r3   r>   rn   r?   r?   r@   test_constructor_range_dtype	  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                   @   r  )zETestDataFrameConstructors.test_frame_from_list_subclass.<locals>.ListNr  r?   r?   r?   r@   List	  r  r  rx  rW  )r   r   r9   r:   )r;   r  r>   rn   r?   r?   r@   test_frame_from_list_subclass	  s    z7TestDataFrameConstructors.test_frame_from_list_subclassextension_arrZaabbcz1/1/2017z1/1/2018)r[  endr  c                 C   s$   t t|}t |}t|| d S r   r%  )r;   r  r>   rn   r?   r?   r@   %test_constructor_with_extension_array	  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 )Nr1   rS   r   r"  )r   todayr   r   r   r   r9   r:   )r;   rg  tuprn   r>   r?   r?   r@   *test_datetime_date_tuple_columns_from_dict,	  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)'   rC   r0   )femalemaleunknownrS   )rH      rH         )r  r  rx   r  r  r  rC   r0   )g      c@g     @n@g     b@r   r   )r  r  r  r  rx   r   )r   r   r   r4   r]   r^   r9   r:   )r;   r=  rB  rn   r>   r?   r?   r@   /test_construct_with_two_categoricalindex_series4	  s   
zITestDataFrameConstructors.test_construct_with_two_categoricalindex_seriesc                 C   s  t td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   r  gMbXg#@r  )closedg3@g33333=@gC@g     H@g33333M@g33333SQ@gS@gfffffFV@r   T)ZorderedrS   )r   r   r   Zvalue_countsheadtailr   r   r   r4   r^   r9   r:   )r;   r  ser1ser2rn   rT   r>   r?   r?   r@   1test_constructor_series_nonexact_categoricalindexB	  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s,J |d d |d d ks:J t|d
 }t|d tsIJ |d |d d ksUJ d S )Nrg  r  r   r  rq  r   )DateM8[us])Forecastingr  r2   r  r  rI   )r   r4   r]   r   r   r   r   )r;   rd  r<   r=   r  r?   r?   r@   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                   @   r  )zOTestDataFrameConstructors.test_from_datetime_subclass.<locals>.DatetimeSubclassNr  r?   r?   r?   r@   DatetimeSubclassj	  r  r  r   i  rI   re  )r   r   r3   )r;   r  r   r?   r?   r@   test_from_datetime_subclassh	  s   z5TestDataFrameConstructors.test_from_datetime_subclassc                 C   sV   t dddd}d}tjt|d t|tdd W d    d S 1 s$w   Y  d S )	NrB   r1   rD   rE   z@Shape of passed values|Passed arrays should have the same lengthrX   r0   rS   )r    r_   r`   r   r   r   )r;   rP   ra   r?   r?   r@   (test_with_mismatched_index_length_raisesp	  s
   "zBTestDataFrameConstructors.test_with_mismatched_index_length_raisesc                 C   sR   t dddd}t|}ttjt||d}t|d jtds'J d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50rs  r  r  rg   rc   )	r    r4   r  r   r   rr  rL   Z
issubdtyper3   )r;   r   rd  r=   r?   r?   r@   !test_frame_ctor_datetime64_columnw	  s   
 z;TestDataFrameConstructors.test_frame_ctor_datetime64_columnc                 C   sz   g dg dg}t tjdddd |D d}t|jts J t|jtr(J t tjdd|d}t|jts;J d S )N)r   r   r   r   )r~   r   r~   r   r0   c                 S   r  r?   r  r|   r?   r?   r@   r   	  r  zYTestDataFrameConstructors.test_dataframe_constructor_infer_multiindex.<locals>.<listcomp>rS   r   )r   r4   r   rr  r   rT   r   r   )r;   Zindex_listsmultir?   r?   r@   +test_dataframe_constructor_infer_multiindex~	  s   zETestDataFrameConstructors.test_dataframe_constructor_infer_multiindex
input_valsr  r   rr  Hrx  rt  c                 C   s6   t d|i|d}t d|id|i}t|| d S )Nr   r2   )r   r8   r9   r:   )r;   r  r   rn   r>   r?   r?   r@   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  r2   )z1.0z2.0N)r   ri   r9   r:   )r;   r   rn   r>   r?   r?   r@   test_constructor_list_str_na	  s   z6TestDataFrameConstructors.test_constructor_list_str_nar   FTc           	         s  |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 r+d S t	jddg|d
 }t d|dd	d
 ddtf fdd}|sY|  djd< djd< |si|d t	jddgjdjd d df< jjd jksJ |s|s|d |rԈ jjdkr d  jddksJ d jddksJ n d  jdksJ d jdksJ d |d ksJ d S |sވd dksJ d S d S )NrI   rH   r2   r1   r0   )SUr   r   c                 S   s,   t | tjr	| jS t | jtjr| jjS tr   )r   r4   Zndarraybaser3   Z_ndarrayrt   r   r?   r?   r@   get_base	  s
   z<TestDataFrameConstructors.test_dict_nocopy.<locals>.get_baseF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s'J t fddjjD dks9J d S )Nc                 3   s    | ]}| u V  qd S r   r?   r|   )r   r?   r@   r   	  r  zRTestDataFrameConstructors.test_dict_nocopy.<locals>.check_views.<locals>.<genexpr>rI   c                 3   *    | ]}t |jtjr| u V  qd S r   r   r3   r4   r|   )r   r  r?   r@   r   	      

c                 3   r  r   r  r|   )r   r  r?   r@   r   	  r  )sumrM   r   )r  r   r   r   r=   r  r?   r@   check_views	  s   "	
z?TestDataFrameConstructors.test_dict_nocopy.<locals>.check_viewsr   r   rJ   Tr  .   ry   rq   )F)r9   STRING_DTYPESr  r  r  r4   r]   r3   rw   r  r   r   r   r   r   type)	r;   r  r   Zany_numeric_ea_dtypeZany_numpy_dtyperO   r   Zc_origr  r?   r  r@   test_dict_nocopy	  sJ   
	

"z*TestDataFrameConstructors.test_dict_nocopyc                 C   s2   t tddddgd}t dgd}t|| d S )NrI   r   rh   r   r   r%  rF  r?   r?   r@   '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 )Nrx  rW  )r   r   r   r   r   ))r   r   )r   r   )r   r   )r   r   rJ  r9   r:   rF  r?   r?   r@   test_nested_list_columns
  s   z2TestDataFrameConstructors.test_nested_list_columnsc           
      C   s   t jddd}|jtdd}t|}|jdksJ |j|j	k
 s&J ||k
 
 s0J t jg d}|jtdd}t|}|jdksMJ |j|j	k
 sWJ ||k
 
 saJ tj||||f j}t|}t||||d}	t||	 d S )	Nz
2016-04-05r1   rV  rI   r   rI   r1   )r1   r0   r   rC   r  )r  r  rK   r8   ri   r6   r   r  r   r3   r  ZIntervalIndexZfrom_breaksr4   Zr_r  r9   r:   )
r;   pir   r=   iiZdata2r   Zdata3r   r>   r?   r?   r@   1test_from_2d_object_array_of_periods_or_intervals
  s    zKTestDataFrameConstructors.test_from_2d_object_array_of_periods_or_intervalszcol_a, col_bc                 C   sF   d}t jt|d t||d W d    d S 1 sw   Y  d S )Nz,Per-column arrays must each be 1-dimensionalrX   r   r-  )r;   Zcol_aZcol_bra   r?   r?   r@   test_error_from_2darray.
  s   	"z1TestDataFrameConstructors.test_error_from_2darrayc                 C   s   t g dg ddd}t|d j|d jrJ 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 )
Nrx  r   F)rT   r   r   r   r   r   r   rT   r3   )	r   r4   r   Z_valuesr   r^   ri   r9   r:   rP  r?   r?   r@   &test_from_dict_with_missing_copy_false;
  s   
	z@TestDataFrameConstructors.test_from_dict_with_missing_copy_falsec                 C   sN   d}t jt|d ttg ddgd W d    d S 1 s w   Y  d S )NrR  rX   r   r   rD  )r_   r`   r   r   r4   r]   r.  r?   r?   r@   1test_construction_empty_array_multi_column_raisesL
  s   "zKTestDataFrameConstructors.test_construction_empty_array_multi_column_raises)r  r  r  rA   rQ   rV   rb   rf   ro   rv   r_   markparametrizer   r   r   r   r   r   r   r   r   r   r   r  Zskip_array_manager_invalid_testr   r   r   r   r   r   r   r   r   r  r4   r]   ri   r  r)   r*   r+   r	  r  r  r!  r$  r&  r)  r+  r/  r^   r2  r   r<  rA  rE  rG  rM  rQ  r^  rd  ri  rm  rp  rs  ru  rw  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   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/  r2  r:  r>  rA  rD  rJ  rK  rM  rN  rO  rP  rS  rU  rY  rc  rf  rm  rq  rw  ry  r   rd   rs   rp   rz  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r9   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.   M   s   
!


	



	





&	



4	




		

8G
"


	
'
	


	

&		&
 G;
"(,$&
				

	c"r.   c                   @   s   e Zd Zdd Zdd ZdS )&TestDataFrameConstructorIndexInferencec                 C   s|   t jdddd}ttjt||}t jdddd}ttjt||}t||d}t jdddd}t	|j
| d S )Nz1/1/19991/1/2012ry   r  z1/1/1980z	12/1/2001)r=  rB  )r  r  r   r4   r   rr  rL   r   r9   r   rT   )r;   Zrng1r=  Zrng2rB  r=   r  r?   r?   r@   Atest_frame_from_dict_of_series_overlapping_monthly_period_indexesT
  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 sw   Y  tjt|d t|||d W d    n1 sw   Y  tjt|d t|||d W d    d S 1 sw   Y  d S )NrB   r1   rV  rS   ro  z
US/Centralr   r2   )r   r   rg   )rg   r   r   )r   rg   r   z0Cannot join tz-naive with tz-aware DatetimeIndexrX   )r   rg   r   r1  )r   rg   r1  )r1  r   rg   )r    r   r   rj   r   r   r   rT   ri   r9   r   r_   r`   rt   )r;   rP   r  r  Zser3Zser4rC  Z	exp_indexr   Z
exp_index3r   Zdf4Z
exp_index4ra   r?   r?   r@   /test_frame_from_dict_with_mixed_tzaware_indexes_
  sF   $zVTestDataFrameConstructorIndexInference.test_frame_from_dict_with_mixed_tzaware_indexesN)r  r  r  r  r  r?   r?   r?   r@   r  S
  s    r  c                   @   s   e Zd Zdd ZdS ))TestDataFrameConstructorWithDtypeCoercionc                 C   sz  t jdd}d}tjt|d t|dd W d    n1 s!w   Y  t| dd}|jdk	 s7J t j
|d< d}tjt|d t|dd W d    n1 sVw   Y  tjt|d t|d	 dd W d    n1 suw   Y  d}tjt|d t|d W d    n1 sw   Y  tjt|d t|d	 d W d    d S 1 sw   Y  d S )
Nr   r   z)Trying to coerce float values to integersrX   rZ   r2   r   rW   r   )r4   r   rr  r_   r`   r   r   roundr   r  r^   r   r   r8   )r;   r<   ra   r=   r?   r?   r@   "test_floating_values_integer_dtype
  s,   
"zLTestDataFrameConstructorWithDtypeCoercion.test_floating_values_integer_dtypeN)r  r  r  r  r?   r?   r?   r@   r  
  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d&S )'&TestDataFrameConstructorWithDatetimeTZrG   r  zdateutil/US/Easternc           
      C   s   t dddd}||}td|d|d}td|j}|d	 j|ks$J 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  rS   rq   rg   c                 S   r\  r?   r]  r_  r?   r?   r@   r   
  r   zeTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypes.<locals>.<listcomp>c                 S   r\  r?   r]  r_  r?   r?   r@   r   
  r   rp  dr_tzdatetimes_naivedatetimes_with_tzre  r  )rp  r  r  r  )r    rj   r   r   tzinfor3   r   r   r4   r9   rl   )
r;   rG   rp  r  r=   Ztz_expectedr  r  rn   r>   r?   r?   r@   *test_construction_preserves_tzaware_dtypes
  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 s+w   Y  d}tjt|d td|idgdd	 W d    n1 sNw   Y  tjt|d t|gdd W d    n1 slw   Y  tjt|d ttj|gt	ddd W d    n1 sw   Y  tjt|d t|dgdgdd
 W d    n1 sw   Y  tjt|d tt
|ggdd W d    n1 sw   Y  tjt|d t|ggdgdd W d    d S 1 sw   Y  d S )N2019r  sCannot convert timezone-aware data to timezone-naive dtype. Use pd.Series\(values\).dt.tz_localize\(None\) instead.rX   r   re  r2   /Cannot unbox tzaware Timestamp to tznaive dtyper  r  rR  )r   r^  r_   r`   r   r   rt   r4   r]   ri   r   )r;   Ztz_aware_fixturer  rG   r`  ra   Zmsg2r?   r?   r@   'test_constructor_data_aware_dtype_naive
  s8   "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s!J d|d
 jd
ks*J t|d
 t|d
d t|d t|dd d S )Nrn  r1   r  rE   r   rh   Z20130110rV  r  r   zM8[ns, US/Easternrg   )r   r    r   r3   r\   r9   rl   r   )r;   rm   rp  r=   r?   r?   r@   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 )	Nrn  r1   r  r   )rF   rG   r\   rh   rE   r   )r    r   r9   rl   r   )r;   rF  r   r?   r?   r@   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   rV  rS   r   r   )r    r   r   r   )r;   rp  r  r?   r?   r@   +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  rS   rg   )r    r   r   r!   r  )r;   rp  r`  r   r?   r?   r@   +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:00r1   r  r  )r[  rF   r  rG   Z
timestampsr   r  z20130101T10:01:00z20130101T10:02:00)r    r   r   r9   r:   )r;   rp  rn   r>   r?   r?   r@   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@)rV    r  333333?@)r  rV  r  )r  r  )rV  r  i  r   )r  r  )r  r  rN  )r   r4   r^   r   r9   r:   )r;   r   poprn   r>   r?   r?   r@   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sJ |j|jk	 s&J ||k	 	 s0J d S )Nz2016-04-05 04:30r1   ro  rE   rI   r   r  )
r    rK   r8   ri   r6   r   r  r   r3   r  )r;   rP   r   r=   r?   r?   r@   test_from_tzaware_object_array6  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	 sAJ 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+0100r2   r   r   )re  rh  zdatetime64[ns, CET])
r4   r]   r   r  rp   ri   r  r   r   r  )r;   r<   r  Zexpected_dtypesr?   r?   r@   $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   rH   zdatetime64[ns, UTC]r2   )r4   r5   r6   r   r8   r9   r:   )r;   Z
array_dim2r=   r>   r?   r?   r@   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 s%w   Y  tjt|d t| W d    d S 1 sAw   Y  d S )N>   rI   rH   r1   'z' type is unorderedrX   r   )r  r_   r`   rt   r   r   )r;   r   r   ra   r?   r?   r@   !test_construction_from_set_raisesf  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   r/   re  r2   r0   r1   c                 s   s    | ]}t |tV  qd S r   )r   r"   )r}   r<   r?   r?   r@   r   v  s    zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelike.<locals>.<genexpr>)r4   r5   r6   r   r  rM   r   r   r?   r?   r@   +test_construction_from_ndarray_datetimelikeq  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 s*w   Y  tg d}tjt|d t	|dd	gd
 W d    d S 1 sQw   Y  d S )Nr   rH   r   z'len\(arrays\) must match len\(columns\)rX   r   rR  )r   r   rj  r   r   )
r4   r   rr  r  r]   r3   r_   r`   r   r   )r;   r<   r3   ra   Zarr2r?   r?   r@   >test_construction_from_ndarray_with_eadtype_mismatched_columnsx  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 s"w   Y  t jtdd t|h d	d
 W d    d S 1 sBw   Y  d S )Nrx  rW  zindex cannot be a setrX   r   r   rS   zcolumns cannot be a set>   r   r   r   r   r-  r  r?   r?   r@   "test_columns_indexes_raise_on_sets  s   "zITestDataFrameConstructorWithDatetimeTZ.test_columns_indexes_raise_on_setsN)r  r  r  r_   r  r  r  r  r  r  r  r   r  r
  r  r  r  set	frozensetr  r  r  r  r?   r?   r?   r@   r  
  s&    

!	

r  c                 C   s   t | tr
| jd S | jd S )Nr   r   )r   r   r   r  r?   r?   r@   get1  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	jddej	
deejgdd Zdd Zej	jddej	
deejgdd Zej	
dejejgdd Zd d! ZdS )"TestFromScalarNparamsc                 C      |j S r   paramr;   r  r?   r?   r@   box     zTestFromScalar.boxc                    s   dt di tu rdg d< |d u rtjfi  S |tu r2tu r+ fddS  fddS tu r= fddS  fd	dS )
NrT   rH   r   r   c                    s   | | dfi  |S )NrJ   r?   r~   kwargsextraru   r?   r@   r     s    z,TestFromScalar.constructor.<locals>.<lambda>c                    s   d| ifi  |S Nr   r?   r  r!  r?   r@   r     r  c                    s   | | gfi  |S r   r?   r  r!  r?   r@   r     r  c                    s   d| | gifi  |S r#  r?   r  r!  r?   r@   r     s    
)r   r   	functoolspartialr   r   )r;   ru   r  r?   r!  r@   r     s   
zTestFromScalar.constructorr3   rc   rr   c                 C   s8   |t j|d}t|j|ksJ t| sJ d S r  )r  rp   r4   r  r   r!   )r;   r3   r   r   r?   r?   r@   test_from_nat_scalar  s   z#TestFromScalar.test_from_nat_scalarc                 C   s(   t d}||dd}t||ksJ d S )NrI   rr   r2   r   r  )r;   r   r  r   r?   r?   r@   *test_from_timedelta_scalar_preserves_nanos  s   z9TestFromScalar.test_from_timedelta_scalar_preserves_nanosc                 C   s,   |t d }||dd}t||ksJ d S )NrI   rc   r2   r'  )r;   r   Zfixed_now_tsr`  r   r?   r?   r@   *test_from_timestamp_scalar_preserves_nanos  s   z9TestFromScalar.test_from_timestamp_scalar_preserves_nanosc                 C   s4   t d}| }||td}tt|tjsJ d S )NrI   r2   )r   Zto_timedelta64ri   r   r  r4   r  )r;   r   r  Ztd64r   r?   r?   r@   #test_from_timedelta64_scalar_object  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 s8w   Y  |dd}tjt|d	 |||d
 W d    d S 1 s[w   Y  d S )Nrp   rq   rr   rc   z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]z?dtype timedelta64\[ns\] cannot be converted to datetime64\[ns\]|r  rX   r2   r0   )r4   rs   r  joinr_   r`   rt   )r;   r   r+  r0  r3   Zmsg1ra   r?   r?   r@   (test_from_scalar_datetimelike_mismatched  s   


"z7TestFromScalar.test_from_scalar_datetimelike_mismatchedziTimestamp constructor has been updated to cast dt64 to non-nano, but DatetimeArray._from_sequence has not)reasonc                 C   s   t ddd}d}|tju rt|d}d}||}t|}t|tr%|jn|jjd }t	|t
u s3J |jj|ks;J ||ksAJ d S )N'  rI   r  r1  M8[s]r   )r   r4   rs   r  r   r   r3   r   r   r  r   asm8r;   r   r+  r0  r  rn   itemr3   r?   r?   r@   #test_from_out_of_bounds_ns_datetime  s   
z2TestFromScalar.test_from_out_of_bounds_ns_datetimec                 C   sd   t t t jjd}||}t|}t|t ju sJ t|tr$|j	n|j
jd }|tks0J d S Nr1  r   )r4   rs   iinfor-   maxr  r  r   r   r3   r   r   ri   )r;   r   r0  rn   r4  r3   r?   r?   r@   test_out_of_s_bounds_datetime64  s   z.TestFromScalar.test_out_of_s_bounds_datetime64zoTimedeltaArray constructor has been updated to cast td64 to non-nano, but TimedeltaArray._from_sequence has notc                 C   s   t dddt ddd }d}|tju rt|d}d}||}t|}t|tr+|jn|jjd }t	|t
u s9J |jj|ksAJ ||ksGJ d S )Nr0  rI   i  zm8[us]r1  zm8[s]r   )r   r4   r  r  r   r   r3   r   r   r  r   r2  r3  r?   r?   r@   $test_from_out_of_bounds_ns_timedelta  s   
z3TestFromScalar.test_from_out_of_bounds_ns_timedeltac                 C   s`   |t t jjd}||}t|}t||u sJ t|tr"|jn|j	j
d }|tks.J d S r6  )r4   r7  r-   r8  r  r  r   r   r3   r   r   ri   )r;   r   r+  r0  rn   r4  r3   r?   r?   r@    test_out_of_s_bounds_timedelta64  s   z/TestFromScalar.test_out_of_s_bounds_timedelta64c                 C   sz   d}t d|d}|d u s|tu r|tu rd}t}nd}t}tj||d ||dd W d    d S 1 s6w   Y  d S )	Nr  r  r  r  r  rX   rc   r2   )r   r   r   rt   r   r_   r`   )r;   r   r  ru   rG   r`  ra   errr?   r?   r@   test_tzaware_data_tznaive_dtype  s   "z.TestFromScalar.test_tzaware_data_tznaive_dtype)r  r  r  r_   fixturer   r   r  r   r  r  r&  r(  r)  r*  r4   rs   r  r.  Zxfailr   r5  r9  r	   r:  r;  r=  r?   r?   r?   r@   r    s4    




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   r  r   r  r  r?   r?   r@   as_td-  r  zTestAllowNonNano.as_tdc                 C   sH   t dt jd}|r||d  }tj||jdS tj||jdS )Nr   r1  r   r2   )	r4   r5   r8   r-   r   r&   Z_simple_newr3   r"   )r;   r@  r   r?   r?   r@   r<   1  s
   zTestAllowNonNano.arrc                 C      t |}|j|jksJ d S r   )r   r3   )r;   r<   rm   r?   r?   r@   test_index_allow_non_nano:     z*TestAllowNonNano.test_index_allow_non_nanoc                 C   s,   |rt |}nt|}|j|jksJ d S r   )r  ZTimedeltaIndexr   r3   )r;   r<   r@  rm   r?   r?   r@   test_dti_tdi_allow_non_nano>  s   z,TestAllowNonNano.test_dti_tdi_allow_non_nanoc                 C   rA  r   )r   r3   )r;   r<   r  r?   r?   r@   test_series_allow_non_nanoE  rC  z+TestAllowNonNano.test_series_allow_non_nanoc                 C   s    t |}|jd |jksJ d S r   r   r   r3   r   r?   r?   r@   test_frame_allow_non_nanoI  s   z*TestAllowNonNano.test_frame_allow_non_nanoc                 C   s$   t d|i}|jd |jksJ d S r   rF  r   r?   r?   r@   #test_frame_from_dict_allow_non_nanoM  s   z4TestAllowNonNano.test_frame_from_dict_allow_non_nanoN)r  r  r  r_   r>  r@  r<   rB  rD  rE  rG  rH  r?   r?   r?   r@   r?  )  s    

r?  )Hr]   collectionsr   r   r   r   dataclassesr   r   r   r	   r$  r   r0  typingr
   r  numpyr4   r   Znumpy.mar   r_   ri  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_testingr9   Zpandas.arraysr"   r#   r$   r%   r&   r   r   r.   r  r  r  r  r  r?  r?   r?   r?   r@   <module>   sj    D                    9  a 