U
    -e                    @   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> dddgZ?ddddddddg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TimedeltaArrayZfloat16Zfloat32float64uint8uint16uint32uint64int8Zint16int32int64c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	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ddddrgdecjdfdddrgdecjefd*d,drgdecjffdddg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 Zwdd  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d*d,d"gd#dd$gfd*d,d"gd#dd$ggfg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 Zd7d8 Ze
jd9d:d;d<d=d>d?d@g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 ZdWdX ZdYdZ Zd[d\ Zd]d^ Ze
jd_e$%drdrdrdre drge$%drdre drge$d`gdrgge$d`gecjggdrge$d`ggdrgecjggecjge$d`ggecjgdrgggdadb Ze
jdcdddedfdgge
jdhddsdiddjdkdldmgdndo Ze
jdcdddedfdgge
jdhdsdiddjdkdldmgdpdq Zdrds Zdtdu Zdvdw Zdxdy Zdzd{ Ze
jd|ed*d,d"gd#dd$ggd*e$j4gd}ed*d,d"gd#dd$ggd~de$j4gded+d*d,d"gd#dd$dgge$j4d~de$j4gdedd*d,dgd#dd$dgge$j4d~de$j4gdedd*d,dgd#dd$dgge$j4d*d,d,gdgdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Ze
jdejej ej ej dd Ze
jdejej ej dd Zdd Ze
jje
jddrddg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dddg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@   e/var/www/html/Darija-Ai-Train/env/lib/python3.8/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   sr   t dddd}|jdd}t|}t|d d df |d d df d	}t|| |snt|jjdksnt	d S )
N
2016-01-01   
US/Pacificperiodstzr2      r      r   rJ   )
r    _datar7   r   r:   r;   len_mgrblocksAssertionError)r<   using_array_managerdtiZdtar>   r?   r@   r@   rA   &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   indexrJ   )rT   value)r   Z
tz_convertr   r:   r;   )r<   rT   r>   r?   r@   r@   rA   )test_constructor_dict_with_tzaware_scalara   s    zCTestDataFrameConstructors.test_constructor_dict_with_tzaware_scalarc              	   C   sr   t dt jgddgg}d}tjt|d t|dd W 5 Q R X tjt|d t|d ddd	 W 5 Q R X d S )
NrJ   rI   r2   9Cannot convert non-finite values \(NA or inf\) to integermatchi8r3   r   r4   name)r5   arraynanpytestraisesr   r   r   )r<   r=   msgr@   r@   rA   -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,td S )Nr   M8[ns])r   r   nowr4   r5   rP   r<   r>   r@   r@   rA   %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sDtt|}t	|| d S )Nz2013-1-1 13:00z2013-1-2 14:00Br^   rE   objectr3   )
r   tz_localizer   r5   r_   tolistr4   rP   r:   assert_series_equal)r<   Znaiveidxr?   resultr@   r@   rA   +test_constructor_from_tzaware_datetimeindex}   s    
zETestDataFrameConstructors.test_constructor_from_tzaware_datetimeindexc              	   C   s^   t dd}t j|gtd}|tkr0|dd}d}tjt|d ||dd W 5 Q R X d S )NNaTnsr3   rJ   z=Invalid type for timedelta scalar: <class 'numpy.datetime64'>rZ   m8[ns])	r5   
datetime64r_   rk   r   r7   ra   rb   	TypeError)r<   frame_or_seriesZnatr=   rc   r@   r@   rA   ,test_array_of_dt64_nat_with_td64dtype_raises   s    zFTestDataFrameConstructors.test_array_of_dt64_nat_with_td64dtype_raiseskindmMc                 C   s|  |dkrd}t }nd}t}tjddd|dd}|tkrN|d d d	f }||td}|jj	d	 j
tksptt|jj	d	  d	 |st|||td}|jj	d	 j
tkstt|jj	d	  d	 |st|||ttd}|jj	d	 j
tkstt|jj	d	  d	 |st|tkrxd
d |D }||td}|jj	d	 j
tksXtt|jj	d	  d	 |sxtd S )Nr{   re   rt   rD   r\   r3   r2   rI   r   c                 S   s   g | ]}t |qS r@   r   .0xr@   r@   rA   
<listcomp>   s     zXTestDataFrameConstructors.test_datetimelike_values_with_object_dtype.<locals>.<listcomp>)r   r   r5   r6   viewr7   r   rk   rN   arraysr4   rP   
isinstanceravelr   r   )r<   ry   rw   r4   Zscalar_typer=   objZsersr@   r@   rA   *test_datetimelike_values_with_object_dtype   s,     
zDTestDataFrameConstructors.test_datetimelike_values_with_object_dtypec                 C   st   t tddd}t tddd}t|dgd}tg dgd}t|| t|dgd}tg dgd}t|| d S )N   rJ   rj   r   columns)r   ranger   r:   r;   )r<   r   yrp   r?   r@   r@   rA   )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@   rA   <lambda>       z"TestDataFrameConstructors.<lambda>c                   C   s   t d S r   r   r@   r@   r@   rA   r      r   c                   C   s   t dS Nr@   r   r@   r@   r@   rA   r      r   c                   C   s   t g S r   r   r@   r@   r@   rA   r      r   c                   C   s   t dd dD S )Nc                 s   s   | ]
}|V  qd S r   r@   r~   _r@   r@   rA   	<genexpr>   s     5TestDataFrameConstructors.<lambda>.<locals>.<genexpr>r@   r   r@   r@   r@   rA   r      r   c                   C   s   t tdS Nr   r   r   r@   r@   r@   rA   r      r   c                   C   s
   t d dS Ndatar   r@   r@   r@   rA   r      r   c                   C   s
   t ddS )Nr@   r   r   r@   r@   r@   rA   r      r   c                   C   s
   t g dS r   r   r@   r@   r@   rA   r      r   c                   C   s   t dd dD dS )Nc                 s   s   | ]
}|V  qd S r   r@   r   r@   r@   rA   r      s     r   r@   r   r   r@   r@   r@   rA   r      r   c                   C   s   t tddS )Nr   r   r   r@   r@   r@   rA   r      r   c                 C   s@   t  }| }t|jdkstt|jdks0tt|| d S r   )r   rM   rV   rP   r   r:   r;   r<   r   r?   rp   r@   r@   rA   test_empty_constructor   s
    z0TestDataFrameConstructors.test_empty_constructorc                   C   s   t i S r   r   r@   r@   r@   rA   r      r   c                   C   s
   t i dS r   r   r@   r@   r@   rA   r      r   c                 C   sR   t tdtdd}| }t|jdks,tt|jdks>ttj||dd d S )Nr   rV   r   T)Zcheck_index_type)r   r   rM   rV   rP   r   r:   r;   r   r@   r@   rA   #test_empty_constructor_object_index   s
    z=TestDataFrameConstructors.test_empty_constructor_object_indexz)emptylike,expected_index,expected_columnsrJ   r   rI   c                 c   s   | ]
}|V  qd S r   r@   r   r@   r@   rA   r      s     z#TestDataFrameConstructors.<genexpr>r@   c                 C   s$   t ||d}t |}t|| d S )Nr   r   r:   r;   )r<   Z	emptylikeZexpected_indexZexpected_columnsr?   rp   r@   r@   rA   test_emptylike_constructor   s    	z4TestDataFrameConstructors.test_emptylike_constructorc                 C   s8   t  \}}t||d}t|}|d jtjks4td S )NrU   foo)r:   ZgetMixedTypeDictr   r4   r5   object_rP   )r<   Zfloat_string_framerV   r   Zindexed_frameZunindexed_framer@   r@   rA   test_constructor_mixed   s    z0TestDataFrameConstructors.test_constructor_mixedc              	   C   s   d}t jt|d tddddgitjd W 5 Q R X ttd}td |d< d	}t jt|d td|d
< W 5 Q R X td |d< d S )Nz!could not convert string to floatrZ   abcr3   )r1   rI   r   z5Expected a 1D array, got an array with shape \(4, 2\)testZfoo2)ra   rb   
ValueErrorr   r5   r'   onesrm   )r<   rc   r>   r@   r@   rA   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@td S )
N      ?       @      @)col1col2col3T)r4   copyg      i@r   r   )r   floatrP   )r<   Zorig_dfZnew_dfr@   r@   rA   test_constructor_dtype_copy  s    z5TestDataFrameConstructors.test_constructor_dtype_copyc                 C   sd   t ddgg}t ||d jd}|rBd|jd< |jd dks`tnd|d d< |jd dks`td S )NrJ   rI   r   r3   c   r   r   )r   r4   ilocvaluesrP   )r<   using_copy_on_writer>   should_be_viewr@   r@   rA   ,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}|sT|sTt |j|d jd}d|d d< |jd	 dks|tn(t |j|d jd}|jjd jjs|td S )
NrJ   rI   r2   r1   r.   r3   r   a   r   )r   r   r4   rP   rN   r   flagsc_contiguous)r<   rQ   r   r>   r   df2r@   r@   rA   +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|s0td S )Nr   r   rk   r3   Fr   r5   r_   r   shares_memoryr   rP   r<   r=   r>   r@   r@   rA   "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|s8td S )	Nr   r   r   drk   r3   Fr   r   r   r@   r@   rA   "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 ks*t|jd dks<td S )NrJ   2r   r3   rJ   r   rK   )r   rk   locrP   rg   r@   r@   rA    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 5 Q R X tjtdd t |g W 5 Q R X t dddgi}tjtdd t ||g W 5 Q R X d S )Nr   zshape=\(1, 0, 0\)rZ   ArJ   rI   zshape=\(2, 2, 1\))r   r5   emptyra   rb   r   )r<   r   r   r@   r@   rA   "test_constructor_list_of_2d_raisesG  s    
z<TestDataFrameConstructors.test_constructor_list_of_2d_raisesztyp, adr   r   barr   ri   Cintc                 C   s   |dkrt }dd |D }n|dkr6t}dd |D }t||D ]\}}|j|ks@tq@|tt|| t|}tt  }|D ]}||kr|j| |kstqd S )Nr   c                 S   s"   g | ]}t jt jd |dqS )
   r3   )r5   r_   randomrandr~   r   r@   r@   rA   r   c  s     zKTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>.<listcomp>r   c                 S   s&   g | ]}t jt jjd d d|dqS )r   )sizer3   )r5   r_   r   randintr   r@   r@   rA   r   f  s     )	MIXED_INT_DTYPESMIXED_FLOAT_DTYPESzipr4   rP   updatedictr   dtypes)r<   typadr   r   r   r   r>   r@   r@   rA   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sHt	|j|j
jksZt	d S )Nr   r   r   )r5   r   r   r9   Z	complex64
complex128r   r4   r   rP   r   r<   r   r   r>   r@   r@   rA   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 ksJtt ddtjgi|d}t|jd sttd S )Nr   r   r3   FTr   )	r   r!   r:   r;   r   rP   r5   r`   isnan)r<   string_dtyper>   rp   r?   r@   r@   rA   $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 )NFrU   r   ri   r   r   )Z
to_recordslistr4   namesrV   r   r:   assert_index_equalr   r   r5   r6   rM   reindexr;   )	r<   float_frameZrecrV   r>   r   rngdf3r?   r@   r@   rA   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s4td S )Nr   r3   rK   )	r   r5   r   boolzerosr   r4   bool_rP   rg   r@   r@   rA   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@tddd	d
dg}ddg}t jt|f|d}||d d < t|}|d jt jkstd S )Nc                 S   s   g | ]}d | qS )            r@   r~   ir@   r@   rA   r     s     zMTestDataFrameConstructors.test_constructor_overflow_int64.<locals>.<listcomp>rJ   r   r3   r   )l   Y2<   )l   FJLW]L*    )l   M:M^ -   )l   8Ma i  )l   r*R3_PvN r   )uidu8)Zscorer   r   )	r5   r_   r   r+   r   r4   rP   r   rM   )r<   r   rp   Zdata_scoresr4   r   Z	df_crawlsr@   r@   rA   test_constructor_overflow_int64  s     z9TestDataFrameConstructors.test_constructor_overflow_int64r   r   r3   A   l           l        l        c                 C   s:   |d }t |}|d jtks"t|d d |ks6td S r   )r   r4   rk   rP   r<   r   rW   rp   r@   r@   rA   test_constructor_int_overflow  s    z7TestDataFrameConstructors.test_constructor_int_overflowc                 C   s<   |d }t |}|d j|jks$t|d d |ks8td S r   r   r4   rP   r   r@   r@   rA   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sTtd S )Nd   c                 S   s   g | ]}d |dqS )r   r   r@   r   r@   r@   rA   r     s     zJTestDataFrameConstructors.test_constructor_ordereddict.<locals>.<listcomp>r   )	r   r   r   shuffler   r   r   r   rP   )r<   Znitemsnumsr?   r>   r@   r@   rA   test_constructor_ordereddict  s    
z6TestDataFrameConstructors.test_constructor_ordereddictc              	   C   s2  t jdd}t jdddd  }t||d}t|dks>tt|dksNtt |d |d tt	tj
gd |jg|jdd}t ||d  t||ddd	d
gd}t|t|kstd|kstt|d	  sttt dkstd}tjt|d  tddddddgd W 5 Q R X d S )N   Znperr   r   r      r   r   rV   r^   r   Zcol4r   r   <Mixing dicts with non-Series may lead to ambiguous ordering.rZ   r   r   r   r   r   ri   )r:   makeTimeSeriesr   rM   rP   rn   renamer   r5   Zconcatenater`   r   rV   r!   allra   rb   r   )r<   datetime_seriesdatetime_series_shortframeexprc   r@   r@   rA   test_constructor_dict  s.    z/TestDataFrameConstructors.test_constructor_dictc                 C   s,   t ddddi}t|jtddg d S )Nr   rJ   rI   1r   r  r   )r   r:   r   rV   r   r<   r  r@   r@   rA   test_constructor_dict_length1  s    z7TestDataFrameConstructors.test_constructor_dict_length1c                 C   s,   t dddg}ti |d}|j|ks(td S )Nr   rJ   rI   rU   )r   r   rV   rP   r<   ro   r  r@   r@   rA    test_constructor_dict_with_index  s    z:TestDataFrameConstructors.test_constructor_dict_with_indexc                 C   sN   t dddg}ti ||d}|j|ks*t|j|ks8tt|jdksJtd S )Nr   rJ   rI   r   r2   )r   r   rV   rP   r   rM   _seriesr  r@   r@   rA   ,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   ri   r   r   Texact)r   r:   r   rV   r   r  r@   r@   rA   $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 ks:t|ddd ksNtt|| d S )Nr   r   rU   )r   
_get_valuerP   r:   r;   )r<   Z
frame_noneZframe_none_listr@   r@   rA   test_constructor_dict_with_none  s
    z9TestDataFrameConstructors.test_constructor_dict_with_nonec              	   C   sZ   d}t jt|d tddi W 5 Q R X t jt|d tddidgd W 5 Q R X d S )N2If using all scalar values, you must pass an indexrZ   r   gffffff?r   ra   rb   r   r   r<   rc   r@   r@   rA   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<   r(  rp   r?   r@   r@   rA   %test_constructor_invalid_items_unused1  s    z?TestDataFrameConstructors.test_constructor_invalid_items_unusedrW   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 )NrJ   r2   r   r   r1   rI   r   c                    s"   i | ]} | t | d qS rU   r|   r~   r   colsro   r   r@   rA   
<dictcomp>>  s      zKTestDataFrameConstructors.test_constructor_dict_nan_key.<locals>.<dictcomp>ZaxisrD   r.   r3   r   rU   )r   r   sort_valuesr5   r6   r7   r:   r;   r<   rW   r   rp   r?   r@   r-  rA   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   rI   r   r2   rJ   r1   r   c                    s"   i | ]} | t | d qS r+  r|   r,  r-  r@   rA   r/  Q  s      zQTestDataFrameConstructors.test_constructor_dict_nan_tuple_key.<locals>.<dictcomp>r0  rD   r.   r3   r   rU   )	r   r   r   r1  r5   r6   r7   r:   r;   r2  r@   r-  rA   #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   )r:   r  r   r   r;   )r<   r  r  r   r  r?   r@   r@   rA   %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 )NrJ   rI   r2   r   )r   r5   r`   r:   r;   r<   rp   r?   r@   r@   rA   )test_constructor_dict_nan_key_and_columnsi  s    $zCTestDataFrameConstructors.test_constructor_dict_nan_key_and_columnsc                 C   sp   dddg}t |}t||d}t|j  s6tdddg}t |}t||d}t|j  sltd S )NrI   r2   )r2   r2   r   )r   from_tuplesr   r!   r   r   r  rP   )r<   tuplesmir>   r@   r@   rA   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 )	NrJ   rI   r   rV   r.   r3   r   )Zlevelscodesr   )r   r   r   r:   r;   r<   r>   r?   r@   r@   rA   test_constructor_2d_index|  s    z3TestDataFrameConstructors.test_constructor_2d_indexc              	   C   sV  d}t jt|d ttdtdd W 5 Q R X d}t jt|d  tddd	ddd
gd W 5 Q R X d}t jt|d. ttdddddgt	dddd W 5 Q R X t
dddgg}d}t jt|d tdgtdd|d W 5 Q R X t
dddg}d}t jt|d tdgtdd|d W 5 Q R X t jtdd" ttdddd gd!gd W 5 Q R X d"}t jt|d& ttjd#dddd gd!gd W 5 Q R X d$}t jt|d& ttjd#dddgd!d#gd W 5 Q R X d%}t jt|d  ttd&td&d'fd(d W 5 Q R X d)}t jt|d td*d+d	 W 5 Q R X d S ),N)Empty data passed with indices specified.rZ   r   r   r   r  r   r   r   r   r  z:Shape of passed values is \(4, 3\), indices imply \(3, 3\)r0   )r1   r2   r   r   baz
2000-01-01r2   rG   rD  r1   r   rD   z:Shape of passed values is \(1, 3\), indices imply \(1, 4\)rV   r   r   z:Shape of passed values is \(3, 1\), indices imply \(1, 4\)Must pass 2-d inputr2   r2   r2   r   ri   r   rJ   :Shape of passed values is \(2, 3\), indices imply \(1, 3\)rI   :Shape of passed values is \(2, 3\), indices imply \(2, 2\)z,2 columns passed, passed data had 10 columnsr      )r   Ztwosr$  FT)ra   rb   r   r   r5   r   r   r6   r7   r    r_   r   r   r   r   )r<   rc   r=   r@   r@   rA   test_constructor_error_msgs  sF     $
  &**$z5TestDataFrameConstructors.test_constructor_error_msgsc                 C   s|   |dd t dD |dd t dD d}t|}tdd | D }t|| || }t|}t|| d S )Nc                 s   s   | ]}|d | fV  qdS )g      $@Nr@   r}   r@   r@   rA   r     s     zKTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<genexpr>r   c                 s   s   | ]}|d | fV  qdS )g      4@Nr@   r}   r@   r@   rA   r     s     r
  c                 S   s   i | ]\}}|t | qS r@   )r   items)r~   colvalr@   r@   rA   r/    s      zLTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<dictcomp>)r   r   rS  r:   r;   )r<   Zdict_subclassr   r>   Zrefdfr@   r@   rA   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   ri   rU   )r5   r`   r   rV   rS  r   r   r   to_dictr   r   r:   r;   )r<   r   r   kvdctr  r?   r@   r@   rA   test_constructor_defaultdict  s    
z6TestDataFrameConstructors.test_constructor_defaultdictc                 C   sL   t ddddgg}tdgdgdgdgddddd	gd
}t|j| d S )N      @r   r   r   )r   r   r   r   r   r   r   r   r   )r5   r_   r   r:   assert_numpy_array_equalr   r<   r?   r>   r@   r@   rA   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s4t|d jtjksHt|d jtjks\tt |}t|d
kstt|d jtjkst|d jtjkstd S )NrJ   rI   r  r  r   3)r  r   r`  r  r3   r2   ri   r   )r   r   rM   rP   r4   r5   r'   r   )r<   	test_datar  r@   r@   rA   test_constructor_dict_cast  s    z4TestDataFrameConstructors.test_constructor_dict_castc              	   C   s^   t ttdtdt ttdtjdd}tj	t
dd t|td W 5 Q R X d S )NrQ     r  zcould not convert stringrZ   r3   )r   r   r   r:   ZmakeStringIndexr5   r   randnra   rb   r   r   r   )r<   ra  r@   r@   rA   test_constructor_dict_cast2  s
    z5TestDataFrameConstructors.test_constructor_dict_cast2c                 C   s2   ddt jdi}t|}t|d d ts.td S )NZCol1zA String)ZRow1Row2rf  )r5   r`   r   r   r   rP   )r<   r   r>   r@   r@   rA   !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s8td S )NrJ   rI   r   r   r   )r   r   r   rP   )r<   dmr@   r@   rA   "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)rJ   rI   r2   )r1   r   rD   r   c                 S   s   i | ]\}}|t |qS r@   )r   )r~   rX  rY  r@   r@   rA   r/  
  s      zMTestDataFrameConstructors.test_constructor_dict_of_tuples.<locals>.<dictcomp>FZcheck_dtype)r   rS  r:   r;   r<   r   rp   r?   r@   r@   rA   test_constructor_dict_of_tuples  s    
z9TestDataFrameConstructors.test_constructor_dict_of_tuplesc                 C   sF   t dt ddd}t|}tdddgdddgd}t|| d S )	Nr2   rD   r   r   rJ   rI   r1   r   r   r   r:   r;   rk  r@   r@   rA   test_constructor_dict_of_ranges  s    z9TestDataFrameConstructors.test_constructor_dict_of_rangesc                 C   sL   t tdttdd}t|}tdddgdddgd}t|| d S )Nr2   r   r   rJ   rI   )iterr   reversedr   r:   r;   rk  r@   r@   rA   "test_constructor_dict_of_iterators  s    z<TestDataFrameConstructors.test_constructor_dict_of_iteratorsc                 C   s\   dd t dD dd tt dD d}t|}tdddgdddgd}t|| d S )Nc                 s   s   | ]
}|V  qd S r   r@   r   r@   r@   rA   r     s     zPTestDataFrameConstructors.test_constructor_dict_of_generators.<locals>.<genexpr>r2   r   r   rJ   rI   )r   rp  r   r:   r;   rk  r@   r@   rA   #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   rJ   rI   )r   r   r   jru  r   rD   r   r1         	   ))r   r   r9  )r   r   c                 S   s   g | ]}|d  qS rJ   r@   r}   r@   r@   rA   r   -  s     zNTestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   s   g | ]}|d  qS r   r@   r}   r@   r@   rA   r   -  s     rU   g     ^@o   )r   rs  rt  rv  zc                 S   s   g | ]}|d  qS rz  r@   r}   r@   r@   rA   r   8  s     c                 S   s   g | ]}|d  qS r{  r@   r}   r@   r@   rA   r   8  s     F)Ztupleize_colsrD  )sortedrS  r   r   r@  TrV   r:   r;   insertr   r   r   )r<   r   Z_dr>   r?   r@   r@   rA    test_constructor_dict_multiindex$  s2    


  z:TestDataFrameConstructors.test_constructor_dict_multiindexc           	   	      s   ddddg  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 )Nz
1984-02-19z
1988-11-06z
1989-12-03z
1990-03-15c                    s    fddt D S )Nc                    s"   i | ]\}}| |d | iqS rI   r@   r~   r   sr   r@   rA   r/  D  s      ziTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<dictcomp>)	enumerater  Zdates_as_strr  rA   create_dataC  s    zUTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S   s   t | dS )Nz%Y-%m-%d)r   strptimer   r@   r@   rA   r   G  r   zRTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>r   r   rJ   rI   r2   rI   r1   rD   c                 S   s   g | ]}t |qS r@   )r   )r~   rT   r@   r@   rA   r   Q  s     zTTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<listcomp>rU   )r5   ru   r   r   r:   r;   )	r<   r  Zdata_datetime64Zdata_datetimeZdata_Timestampr?   Zresult_datetime64Zresult_datetimeZresult_Timestampr@   r  rA   &test_constructor_dict_datetime64_index?  s&    

z@TestDataFrameConstructors.test_constructor_dict_datetime64_indexz
klass,namec                 C   s   t | dS Nr)  )r5   timedelta64r  r@   r@   rA   r   ^  r   r  c                 C   s
   t | dS )N)days)r	   r  r@   r@   rA   r   _  r   Zpytimedeltac                 C   s
   t | dS r  r   r  r@   r@   rA   r   `  r   zTimedelta[ns]c                 C   s   t | ddS )Nr)  r  )r   Zas_unitr  r@   r@   rA   r   a  r   zTimedelta[s]c              	      s   ddddg} 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 )NrJ   rI   r2   r1   c                    s"   i | ]\}}| |d | iqS r  r@   r  klassr@   rA   r/  h  s      zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<dictcomp>r   r  rD   c                 S   s   g | ]}t |d qS )r)  r  )r~   tdr@   r@   rA   r   q  s     zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<listcomp>rU   )r  r   r:   r;   )r<   r  r^   Z	td_as_intr   r?   rp   r@   r  rA   'test_constructor_dict_timedelta64_index[  s    
zATestDataFrameConstructors.test_constructor_dict_timedelta64_indexc                 C   s   t jdddgdd}t jdddgdd}t||d	}|d
 j|jksJt|d j|jks^tt|t |t d	}|d
 j|jkst|d j|jkstd S )Nz2012-01rr   z2012-04r{   freqz
2012-02-01z
2012-03-01r)  r   r   r   )pdZPeriodIndexr   r4   rP   r9   rk   rm   r   r@   r@   rA   test_constructor_period_dictx  s    "z6TestDataFrameConstructors.test_constructor_period_dictc                 C   sN   |\}}t d|idgd}|d j|ks,tt dgdg|d}t|| d S )Nr   r   rU   rL  )r   r4   rP   r:   r;   )r<   Zea_scalar_and_dtypeZ	ea_scalarZea_dtyper>   r?   r@   r@   rA   &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rH   c                 C   sl   t ddgddg|d}|d j|ks(t|d j|ks:ttj|gd |d}t ||d}t|| d S )	Nr   rJ   r   r   rL  rI   r3   r   )r   r4   rP   r  r_   r:   r;   )r<   r   r4   r>   r=   r?   r@   r@   rA   &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 |< q8q.t||d}t
|| i }|jD ](}|jD ]}||||	|i |< qqzt||dj}t
|| d S )Nz1/1/2000r   rK  r   r   rU   )r  period_ranger   r5   r   rd  r   rV   r"  
setdefaultr:   r;   r  )r<   r   r>   r   rT  rowrp   r@   r@   rA   "test_nested_dict_frame_constructor  s    



z<TestDataFrameConstructors.test_nested_dict_frame_constructorc              	   C   sn  |dt d}t|dddgddgd}t|jdks6tt|jd	ksHtt|d
dgddd	gd}t|jd	ksttt|jdkst|tjk	rd}tj	t
|d" t|dddgddgtjd W 5 Q R X d S t|dddgddgtjd}|jjtjkstd}tj	t|d t|dddgdgd W 5 Q R X d}tj	t|d t|ddgddgd W 5 Q R X tj	tdd  t|ddddgdgd W 5 Q R X 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|dddgd}tj|jttddd t|d}t|jdksJtt|d}t|jdksjtd S )Nr?  r3   r   ri   r   rJ   rI   rD  r2   )r2   rY   rZ   r   rV   r4   rO  rP  rM  rN  Tr  rU   r   )r   r2   r   )r2   r   )r   r   rM   rV   rP   r   r5   r   ra   rb   r   r.   r   r4   r   r:   r   r   r   )r<   r   matr  rc   r@   r@   rA   _check_basic_constructor  sL    
&     $z2TestDataFrameConstructors._check_basic_constructorc                 C   s8   |  tj tddgddgdgd}t|dks4td S )Nr   r   r   rJ   r   r   rI   )r  r5   r   r   rM   rP   r  r@   r@   rA   test_constructor_ndarray  s    z2TestDataFrameConstructors.test_constructor_ndarrayc                 C   s   |  tj tjdtd}d|d< d|d< t|ddd	gd
dgd}d|d d
 ksVtd|d	 d ksjttjdtd}t|ddd	gd
dgd}tt||k std S )Nr?  r3   r   r   r   rJ   rI   r   ri   r   rJ   rI   rD  )	r  r   
masked_allr   r   rP   r5   r  asarray)r<   r  r  r@   r@   rA   test_constructor_maskedarray  s    z6TestDataFrameConstructors.test_constructor_maskedarrayc              
   C   s  t jdtd}t|dddgddgd}t|jdks8tt|jd	ksJtt	t
||k sdtt|dddgddgtjd
}|jjtjkstt |}d|d< d|d< t|dddgddgd}d|d d kstd|d d kstt jddd}t|dddgddgd}t|jdks&tt|jd	ks:tt|j	 sNtd}tjt|dF t 2 tjdtdd t|dddgddgtjd
 W 5 Q R X W 5 Q R X t |}d|d< d|d< t|dddgddgd}d|d dd kstd|d dd kstt jdtd}t|dddgddgd}t|jdksPtt|jd	ksdtt	t
||k stt|dddgddgtd
}|jjtkstt |}d|d< d|d< t|dddgddgd}|d d dkst|d d dks
td S )Nr?  r3   r   ri   r   rJ   rI   rD  r2   r  r   r  re   z8datetime64\[ns\] values and dtype=int64 is not supportedrZ   ignorezelementwise comparison failed)categorymessager\   TF)r   r  r   r   rM   rV   rP   r   r5   r  r  r'   r   r4   r   r!   ra   rb   rv   warningscatch_warningsfilterwarningsDeprecationWarningr.   r   r   rk   )r<   r  r  Zmat2rc   r@   r@   rA   %test_constructor_maskedarray_nonfloat  s\    

0

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)rI   rI   r3   r   ri   rJ   rI   rD  r  r  r   )
r   r  r   Zharden_maskr   r5   r`   r:   r;   r   )r<   Zmat_hardrp   r?   r@   r@   rA   %test_constructor_maskedarray_hardenedN  s$    z?TestDataFrameConstructors.test_constructor_maskedarray_hardenedc              	   C   s\   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 5 Q R X d S )	Nr   )r   <f8)Zpricer  r3   F)maskzPass \{name: data\[name\]rZ   )r5   r   r_   r   r   r   Z	mrecarrayra   rb   rv   r   r   r<   r   r@   r@   rA   %test_constructor_maskedrecarray_dtyped  s     z?TestDataFrameConstructors.test_constructor_maskedrecarray_dtypec                 C   s   t g d}|jjdkstd S )NrU   r   )r   r   shaperP   rg   r@   r@   rA   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td S r   )r   r   r4   rP   )r<   r   rV   r   r4   r?   r>   r@   r@   rA   test_constructor_dtyper  s    z0TestDataFrameConstructors.test_constructor_dtypezdata,input_dtype,expected_dtypeTFbooleanr   r   ZFloat64ZInt64r   stringc                 C   s(   t d|i|d}|d j| ks$td S )Nr   r3   r  )r<   r   Zinput_dtypeZexpected_dtyper>   r@   r@   rA   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s6t|d
 jtjksJt|d jtjks^t|d jtjksrt|d jtj	kstd S )NrJ   Tr   y              @r   )r   r   r   complexrk   r   rU   r   r   r   r  rk   )
r   r5   r6   r4   r.   rP   r   r'   r   r   )r<   r   r>   r@   r@   rA   !test_constructor_scalar_inference  s    z;TestDataFrameConstructors.test_constructor_scalar_inferencec              	   C   sh   t tjddd}t |d jdgd d}t|| tjt	dd t ddd W 5 Q R X d S )Nr   Tr   r   zmust pass an indexrZ   F)
r   r5   r   rd  r   r:   r;   ra   rb   r   )r<   r>   r  r@   r@   rA   #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s4td S Nr3   )r   r:   r;   r5   r.   r   r4   rP   )r<   r   r>   Z	df_castedr@   r@   rA   test_constructor_DataFrame  s    z4TestDataFrameConstructors.test_constructor_DataFramec                 C   s*   t t  dd}t g dd}t|| d S )Nrk   r3   r   )r<   actualr?   r@   r@   rA    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s2tt jd}t|}|jjdksVt|jjdksfttddgt dd}|jjdksttddgd}|jjd	ksttt dd
}|jjdkstt j	ddgt
ddd}d}tjt|d t|ddgdgtd W 5 Q R X tt|j}t|| tt jdtdt jdt jddt dd
}t|jdkstt|jjt jkstd S )Nr   r   rD  rI   r   ri   )r   rI   r   )r   rI   rU   )r   r   r   r   r3   rJ   z(could not convert string to float: 'foo'rZ   rV   r   r4   r  )r5   r   rd  r   r6   r   ndimrP   r  r_   rk   r7   ra   rb   r   r   r  r:   r;   r   r   r'   rM   r   r4   )r<   r   r=   rh  r  rc   r@   r@   rA   test_constructor_more  s2     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 )NrU   r   ri   r   c                   s   s   dE d H  d S r   r@   r@   r@   r@   rA   	empty_gen  s    zHTestDataFrameConstructors.test_constructor_empty_list.<locals>.empty_genr   )r<   r>   r?   r  r@   r@   rA   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,t|d jtjks@tt dtd	i}d
d td	D }t |}t	|| d S )NrJ   r   rI   r   numr8   r;  r   r   c                 S   s   g | ]}t |qS r@   r5   r_   r}   r@   r@   rA   r     s     zLTestDataFrameConstructors.test_constructor_list_of_lists.<locals>.<listcomp>)
r   r   rP   r4   r5   r   r6   r   r:   r;   )r<   r>   r?   r   rp   r@   r@   rA   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sbt	t
|d j| d S )NrJ   rI   r3   r   )rI   rJ   )r   r5   r_   rk   r   r  r:   r;   r  rP   r]  r   )r<   serr=   r>   r?   r@   r@   rA   .test_nested_pandasarray_matches_nested_ndarray  s    zHTestDataFrameConstructors.test_nested_pandasarray_matches_nested_ndarrayc                 C   sj   t dt dg}tddddgdddd	gg|d
}t|}tddddgdddd	gg|d
}t|| d S )NabcdZcdefrJ   rI   r2   r1   r   rD   rw  r   )r   r   r   Zfrom_arraysr:   r;   )r<   r   rp   rB  r?   r@   r@   rA   2test_constructor_list_like_data_nested_list_column  s
     
 zLTestDataFrameConstructors.test_constructor_list_like_data_nested_list_columnc              	   C   sR   t dt dg}d}tjt|d& tddddgdd	d
dgg|d W 5 Q R X d S )Nr   cdez#3 columns passed, passed data had 4rZ   rJ   rI   r2   r1   r   rD   rw  r   r   ra   rb   r   r   r<   r   rc   r@   r@   rA   0test_constructor_wrong_length_nested_list_column  s    zJTestDataFrameConstructors.test_constructor_wrong_length_nested_list_columnc              	   C   sR   t dt dg}d}tjt|d& tddddgdd	d
dgg|d W 5 Q R X d S )Nr  r  zall arrays must be same lengthrZ   rJ   rI   r2   r1   r   rD   rw  r   r  r  r@   r@   rA   2test_constructor_unequal_length_nested_list_column  s    zLTestDataFrameConstructors.test_constructor_unequal_length_nested_list_columnr   
2021-01-01r   c                 C   s<   t |dddgdgd}t dtdgd i}t|| d S )Nr   rJ   rI   r   r   r  r2   )r   r   r:   r;   rk  r@   r@   rA   &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                   @   s0   e Zd ZddddZdd ZedddZdS )	zPTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainerNreturnc                 S   s
   || _ d S r   )_lst)r<   lstr@   r@   rA   __init__0  s    zYTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__init__c                 S   s   | j |S r   )r  __getitem__)r<   nr@   r@   rA   r  3  s    z\TestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__getitem__c                 S   s
   | j  S r   )r  __len__)r<   r@   r@   rA   r  6  s    zXTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__len__)__name__
__module____qualname__r  r  r   r  r@   r@   r@   rA   DummyContainer/  s   r  rJ   r   rI   r   r  r8   r   Frj  )r   Sequencer   r:   r;   )r<   r  Zlst_containersr   rp   r?   r@   r@   rA   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   Frj  )r   r_   r   r   r:   r;   r=  r@   r@   rA   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   r:   r;   r=  r@   r@   rA   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  r=  r@   r@   rA   test_constructor_list_of_rangesP  s    z9TestDataFrameConstructors.test_constructor_list_of_rangesc                 C   s<   G dd d}t dddggd }t | }t|| d S )Nc                   @   s   e Zd ZedddZdS )zATestDataFrameConstructors.test_constructor_iterable.<locals>.Iterr  c                 s   s   t dD ]}dddgV  qd S )Nr   rJ   rI   r2   )r   )r<   r   r@   r@   rA   __iter__X  s    zJTestDataFrameConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)r  r  r  r
   r  r@   r@   r@   rA   IterW  s   r  rJ   rI   r2   r   r   )r<   r  r?   rp   r@   r@   rA   test_constructor_iterableU  s    
z3TestDataFrameConstructors.test_constructor_iterablec                 C   s0   t ttd}t ttd}t|| d S r  r   ro  r   r   r:   r;   r=  r@   r@   rA   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  r=  r@   r@   rA   "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   s   | ]
}|V  qd S r   r@   r   r@   r@   rA   r   m  s     zGTestDataFrameConstructors.test_constructor_generator.<locals>.<genexpr>r   c                 s   s   | ]
}|V  qd S r   r@   r   r@   r@   rA   r   n  s     c                 s   s   | ]}|d gV  qdS )r   Nr@   r   r@   r@   rA   r   t  s     r   rK   Frj  )r   r   r   r:   r;   )r<   Zgen1Zgen2r?   rp   genr@   r@   rA   test_constructor_generatorj  s    z4TestDataFrameConstructors.test_constructor_generatorc                 C   s*   t i g}t tdg d}t|| d S )NrJ   r   )r   r   r:   r;   r=  r@   r@   rA   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   rJ   )r   rI   )r   rI   )r   r   r   r   rJ   rI   r   )r   r   r   r   )r   rV   )r   r   r:   r;   )r<   Znested1Znested2r   rp   r?   r@   r@   rA   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 )NrI   rJ   r   r   r   r   )r<   r  r?   r   rp   r@   r@   rA   ,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 )NrI   r   rJ   r   r9  r   r   )r<   r  Zrow_oneZrow_twoZ	row_threer?   rp   r@   r@   rA   0test_constructor_ordered_dict_conflicting_orders  s    
"zJTestDataFrameConstructors.test_constructor_ordered_dict_conflicting_ordersc                 C   s^   dd t dD }t|}tdddgdddgdddgddd	d
gdddgd}t|| d S )Nc                 S   s$   g | ]}t |d ddgt|dqS )r   r   r   r  )r   r8   r   r@   r@   rA   r     s     z[TestDataFrameConstructors.test_constructor_list_of_series_aligned_index.<locals>.<listcomp>r2   r   rJ   rI   )r   r   r   r   r   r   0r  r   rD  rm  )r<   seriesrp   r?   r@   r@   rA   -test_constructor_list_of_series_aligned_index  s    zGTestDataFrameConstructors.test_constructor_list_of_series_aligned_indexc                 C   sJ   G dd dt }ddd}||g}|g}t|}t|}t|| d S )Nc                   @   s   e Zd ZdS )zTTestDataFrameConstructors.test_constructor_list_of_derived_dicts.<locals>.CustomDictNr  r  r  r@   r@   r@   rA   
CustomDict  s   r        ?r2   r   )r   r   r:   r;   )r<   r  r   Zdata_customr   Zresult_customrp   r@   r@   rA   &test_constructor_list_of_derived_dicts  s    

z@TestDataFrameConstructors.test_constructor_list_of_derived_dictsc              	   C   s@   t jdt jdd}tjtdd t| W 5 Q R X d S )Nr   rx  r  z%All arrays must be of the same lengthrZ   )r5   r   rd  ra   rb   r   r   r  r@   r@   rA   test_constructor_ragged  s    z1TestDataFrameConstructors.test_constructor_raggedc                 C   sF   t td}tddi|d}tddddgi|d}tj||dd d S )Nr2   r   r   rU   Frj  )r   r   r   r:   r;   )r<   ro   r>   r?   r@   r@   rA   test_constructor_scalar  s    z1TestDataFrameConstructors.test_constructor_scalarc                 C   s"   t |d |jdgd}|  d S )Nr   r   )r   rV   r   )r<   r   r>   r@   r@   rA    test_constructor_Series_copy_bug  s    z:TestDataFrameConstructors.test_constructor_Series_copy_bugc              	   C   s   i }dddd|d< t ddddgddd	d
gd|d< t|}|jjsHttjtdd tddgdddd W 5 Q R X 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 )NrJ   rI   r2   )r   r   rI  r   r1   r   ZquxrI  r   rU   ri   zambiguous orderingrZ   r   r   r   r  )
r   r   rV   Zis_monotonic_increasingrP   ra   rb   r   r:   r;   rk  r@   r@   rA   &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 )NrJ   rI   r2   r1   r2   r1   r   rk  r@   r@   rA    test_constructor_mixed_type_rows  s    z:TestDataFrameConstructors.test_constructor_mixed_type_rowsztuples,lists)r@   r@   r2   r1   rD   c                 C   s    t |}t |}t|| d S r   r   )r<   rA  listsrp   r?   r@   r@   rA   test_constructor_tuple  s    z0TestDataFrameConstructors.test_constructor_tuplec                 C   s4   t dddgi}t dtddgi}t|| d S )Nr   r  r  r   r   r:   r;   r=  r@   r@   rA   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abrJ   r2   rI   r1   r   )r   r}  r   r}  r   )r   r   r   r:   r;   )r<   Znamed_tuplerA  r?   rp   r@   r@   rA   $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   r2   rJ   r   r   )r   r   r   r:   r;   )r<   r  r   r?   rp   r@   r@   rA   $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   r2   rJ   )r   r   r  r  )r   r   r   r5   r`   r:   r;   )r<   r  r  r   r?   rp   r@   r@   rA   7test_constructor_list_of_dataclasses_with_varying_types  s    "zQTestDataFrameConstructors.test_constructor_list_of_dataclasses_with_varying_typesc              	   C   sV   t ddtfdtfg}d}tjtt|d t|dddddg W 5 Q R X d S )	Nr  r   r   z0asdict() should be called on dataclass instancesrZ   r   rJ   r  )r   r   ra   rb   rv   reescaper   )r<   r  rc   r@   r@   rA   1test_constructor_list_of_dataclasses_error_thrown*  s    zKTestDataFrameConstructors.test_constructor_list_of_dataclasses_error_thrownc              	   C   s~   ddddddddd	d
dddddddg}t dddgdddgdd	dgdddgd d dgd d dgd}t |}t|| d S )NrJ   r1   rw  r   )FirstSecondThirdFourthr   rI   r4  rx  )r  r  r  r  rD   r2   r0   ry     r7  )r  r  r  r  YYYXXX)r  r  r  r  r  r  r   )r<   r   r?   rp   r@   r@   rA   #test_constructor_list_of_dict_order3  s    
z=TestDataFrameConstructors.test_constructor_list_of_dict_orderc              	   C   sv  t dddgdddgdd}t|}|jd	 dks4t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 5 Q R X t g dtd}t|}|jd	 dkst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 )NrJ   rI   r2   r   r   r   r   r  r   r   rj   r7  rU   z<Shape of passed values is \(10, 1\), indices imply \(10, 2\)rZ   r   r^   r4   )r   	Unnamed 0r  r   )r   r   r   rP   r:   r   rV   r5   r   rd  r;   r   ra   rb   r   rk   r  )r<   r   r>   r=   r  r?   rc   s1r@   r@   rA   test_constructor_Series_namedG  s4    z7TestDataFrameConstructors.test_constructor_Series_namedc                 C   s   t tddd}t tddd}tt|dgd|  tt|dgd|  t|dgdjshtt|dgdjs|td S )Nr   r   rj   rJ   r   )r   r   r:   r;   r   to_framer   rP   )r<   s0r  r@   r@   rA   )test_constructor_Series_named_and_columnsm  s    zCTestDataFrameConstructors.test_constructor_Series_named_and_columnsc                 C   s   t dddgdddgdd}t dddgdddgd	}tddg}t||d	}t||}|jd
 dksjtt|| t||d	}t||}|jd
 d
kstt|j	| t|| d S )NrJ   rI   r2   r   r   r   r   r  rU   r   )
r   r   r   r   r   rP   r:   r;   r   rV   )r<   r  s2Zother_indexdf1Zexp1r   Zexp2r@   r@   rA   +test_constructor_Series_differently_indexed{  s    zETestDataFrameConstructors.test_constructor_Series_differently_indexedz#name_in1,name_in2,name_in3,name_out)ro   ro   ro   ro   )ro   ro   NN)ro   NNN)idx1idx2NN)r'  r'  r(  N)r'  r(  Zidx3N)NNNNc           
      C   s   t dddg|dt dddg|dt dddg|dg}dd t|d	d
dgD }t|}t dddddg|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   r   r   rj   r   ec                 S   s$   i | ]\}}|t d ddg|dqS )r   rJ   rI   rU   r|   )r~   r   r   r@   r@   rA   r/    s     zJTestDataFrameConstructors.test_constructor_index_names.<locals>.<dictcomp>r   r   r}  r   rJ   rI   )r   r   r}  rU   )r   r   r   r5   r`   r:   r;   )
r<   Zname_in1Zname_in2Zname_in3Zname_outindicesr  rp   Zexp_indr?   r@   r@   rA   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   r2   r   )r   rV   r   r   rN   r:   r   r   )r<   r   rV   r   rp   r@   r@   rA   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 5 Q R X d S )Nr   ri   r  r   zdoes not match index lengthrZ   )r   r   r:   r;   r   ra   rb   r   )r<   r   r>   rc   r@   r@   rA   %test_constructor_mix_series_nonseries  s     z?TestDataFrameConstructors.test_constructor_mix_series_nonseriesc              	   C   s>   d}t jt|d" ttjdgddggtjd W 5 Q R X d S )NrY   rZ   rJ   r   r3   )ra   rb   r   r   r5   r`   r.   r&  r@   r@   rA   %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 )Nrx  r   r   r   )rx  r   )r   r   r:   r;   Zfrom_records)r<   r>   ZedfZidfr@   r@   rA   "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   rJ   r  ZU5)r   rk   r8   r:   r;   r5   Zstr_Zunicode_r^  r@   r@   rA   (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   r4   r   )r<   Znullable_string_dtyper?   r>   r@   r@   rA   ,test_constructor_empty_with_string_extension  s    zFTestDataFrameConstructors.test_constructor_empty_with_string_extensionc              	   C   sX  t ddddgdddgd}t|t t|jd	|j|j t d
dddgdddg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 5 Q R X tjt|d t dddgd W 5 Q R X d}tjt|d t dddgddgt W 5 Q R X d S )N        rJ   rI   r2   r   r   r   r   r'   r   r.   r3   z*DataFrame constructor not properly called!rZ   r   zincompatible data and dtype)r   r:   r;   r5   r   r  r9   rV   r   r_   rk   ra   rb   r   rv   r   )r<   r>   rc   r@   r@   rA   test_constructor_single_value  s6      	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 )Nre   rJ   r   r   Z20010101  rI   r   )r   ri   r   r)  Er   rU   r.   ZABCDEr   r   r   r   r3   r'   rk   )r5   r4   int_r^   Zfloat_r   r   r   r   r6   r   r   r   r:   rn   r_   )r<   ZintnameZ	floatnameZdatetime64nameZ
objectnamer>   rp   r?   r@   r@   rA   test_constructor_with_datetimes
  s    

     





     





z9TestDataFrameConstructors.test_constructor_with_datetimesc                 C   s6   t dddd}dd |D }t|}|jdks2td S )NrJ  r)  r   startr  rG   c                 S   s   g | ]}|  qS r@   to_pydatetimer~   tsr@   r@   rA   r   T  s     zNTestDataFrameConstructors.test_constructor_with_datetimes1.<locals>.<listcomp>re   )r    r   r4   rP   )r<   ind	datetimesZ
datetime_sr@   r@   rA    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 )NrJ  r)  r   r;  c                 S   s   g | ]}|  qS r@   r=  r?  r@   r@   rA   r   [  s     zNTestDataFrameConstructors.test_constructor_with_datetimes2.<locals>.<listcomp>c                 S   s   g | ]}|  qS r@   )r   r?  r@   r@   rA   r   \  s     rB  r   datesdatetime64[ns]rk   rU   )r    r   r   r   r5   r4   r:   rn   )r<   rA  rB  rD  r>   rp   r?   r@   r@   rA    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@tt|j	t
ddi td|ig}|jd |ksvtt|j	t
ddi d S )	Nr    rJ   zEnd Dater   rU   r   datetime64[ns, US/Eastern])pytztimezoneZlocalizer   r   iatrP   r:   rn   r   r   )r<   rH   rT   r>   r@   r@   rA    test_constructor_with_datetimes3f  s    
 
 
z:TestDataFrameConstructors.test_constructor_with_datetimes3c                 C   s   t ddd}td|i}|jd jd ks,tt dddd}td|i}t|jd jdks^tt dddd}td|i}t|jd jdkstd S )	N20130101r2   rK  rW   r   UTCrF   r  )r    r   rK  rH   rP   r8   )r<   drr>   r@   r@   rA    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  rG   r  rH   r   TZdropr    r   Z	to_seriesZreset_indexr:   r;   )r<   r   r?   r>   r@   r@   rA    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 )
NrQ  r   rR  r  rS  rG   r  r   TrT  rU  )r<   r   Zi_no_tzr>   r?   r@   r@   rA    test_constructor_with_datetimes6  s
    z:TestDataFrameConstructors.test_constructor_with_datetimes6r=   rr   c                 C   s*   t |j}ttdg}t|| d S )NrE  )r   r   r   r5   r4   r:   rn   )r<   r=   rp   r?   r@   r@   rA   %test_constructor_datetimes_with_nulls  s    
z?TestDataFrameConstructors.test_constructor_datetimes_with_nullsorderKr   r   Funithr  msusrs   c              	   C   s   d| d}t jdddgdddgg||d	}t|}t|d
}|dkrztjtdd || W 5 Q R X |d}n|j|d}t|| d S )Nzdatetime64[]z
2015-01-01z
2015-01-02z
2015-01-03z
2017-01-01z
2017-01-02z
2017-02-03r4   rZ  re   )r{   r)  r^  rz   Cannot castrZ   zdatetime64[s]r3   )	r5   r_   r   r9   ra   rb   rv   r:   r;   )r<   rZ  r]  r4   nar>   r?   r@   r@   rA   !test_constructor_datetimes_non_ns  s     z;TestDataFrameConstructors.test_constructor_datetimes_non_nsc           	      C   s   d| d}t jt ddt ddgt ddt ddgg||d}t|}|d	k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[ra  rJ   r)  rI   r1   r   rb  )r)  r^  rz   r  zm8[r3   )r5   r_   r  r   r4   r   r:   r;   )	r<   rZ  r]  r4   rd  r>   Zexp_unit	exp_dtyper?   r@   r@   rA   !test_constructor_timedelta_non_ns  s(    	z;TestDataFrameConstructors.test_constructor_timedelta_non_nsc              	   C   s2  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st	t ddg}|jjd
 tdkst	t ddg}|jjd
 tdkst	t dddgi}|jjd
 tdkst	t dddgi}|jjd
 tdksFt	t dditdd}|jjd
 tdksvt	t dditdd}|jjd
 tdkst	t ddddgddddgt
ddd tdD ddddg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   )r5   r6   r}   r@   r@   rA   r     s     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-   r3   )r5   r_   r6   r}   r@   r@   rA   r     s     r-   r   l        l       r   r.   rJ   rI   r   r   r'   r2   rU   r1   rw  g333333?gffffff@gffffff@g333333@r  c                 S   s   g | ]}t d ddqS )  rJ   )r   r   r@   r@   rA   r     s     r\  )r   r   r   r   r)  rk   rE  Zabcde)r   r   r   r   r5   r4   r:   rn   r   rP   r   )r<   r>   rp   r?   r@   r@   rA   %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(t|d dk r<td S )NTr   r   r   )r   r  rP   )r<   r   copr@   r@   rA   test_constructor_frame_copy-  s    z5TestDataFrameConstructors.test_constructor_frame_copyc                 C   s@   |  }t|}|j|jk	s ttt||_t	|| d S r   )
r   r   rN   rP   r5   r6   rM   rV   r:   r;   )r<   r   origrj  r@   r@   rA   #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 rPtn|j d dk sPtt|dd}d|d< |j d dk rtnz|j  }t|}|jjd jjstd|d< |j	d dkstt|dd}|jjd jjrtd	|d< |j	d d	kstd S )
Nr   Tr   rD   r   r  r   Fi  )
r   r   r   r  rP   rN   r   r   r   r   )r<   r   rQ   r   r=   r>   r@   r@   rA   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 rLtd S )Nr   Tr   r   r   r   )r  r   r   rV   r  rP   )r<   r   r  r>   r@   r@   rA   test_constructor_series_copy\  s    z6TestDataFrameConstructors.test_constructor_series_copyr>   rU   g?g@r   rw  r5  r   c              	   C   s   t t|jD ]}|jd d |f  qtt|jt|j }t|dkr|tjt	dd |j
d d tjf  W 5 Q R X nft|dkrt|jd d |d f |j
d d tjf  n*t|jd d |f |j
d d tjf  d S )Nr   z^nan$rZ   rJ   )r   rM   r   r   r5   r6   r!   ra   rb   KeyErrorr   r`   r:   rn   r;   )r<   r>   r   Zindexerr@   r@   rA   test_constructor_with_nasf  s     0z3TestDataFrameConstructors.test_constructor_with_nasc                 C   s:   t dtjdgi}|d jtjks&t|d d r6td S )Nr   FrJ   )r   r5   r`   r4   r   rP   )r<   r   r@   r@   rA   &test_constructor_lists_to_object_dtype  s    z@TestDataFrameConstructors.test_constructor_lists_to_object_dtypec                 C   s\   t dddg}t|dd}t|d}t||jd}t||||d}t|| d S )	Nr   ri   r   r   rJ   r  r3   r  )	r   r5   r_   r7   Zbroadcast_tor   r4   r:   r;   )r<   catr=   rp   r?   r@   r@   rA   *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  r3   r]   r   r   rj   )r   r   r   r:   rn   r!  )r<   r>   r?   r  rp   r@   r@   rA   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   r9   rk   r:   r;   )r<   rs  r>   r?   r@   r@   rA   -test_construct_from_1item_list_of_categorical  s    
zGTestDataFrameConstructors.test_construct_from_1item_list_of_categoricalc                 C   sD   t ttdttdg}t dddgdddgg}t|| d S )Nr   Zabdr   r   r   r   r   r   r   r:   r;   rF  r@   r@   rA   (test_construct_from_list_of_categoricals  s    zBTestDataFrameConstructors.test_construct_from_list_of_categoricalsc                 C   s@   t ttdtdg}t dddgdddgg}t|| d S )	Nr   defr   r   r   r   r)  frw  rF  r@   r@   rA   %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abdefgrw  rF  r@   r@   rA   0test_construct_from_listlikes_mismatched_lengths  s    zJTestDataFrameConstructors.test_construct_from_listlikes_mismatched_lengthsc                 C   s   ddddg}t |d}t |dd}t|| ddddg}t |d}t |dd}t|| td	dd
}t ttjtjtjgdddgd}||_t	d|i}t	dt dddgddi|d}t
|| d S )NrJ   rI   r2   r  r3   r   r   r   Z20000101rK  )r   
categoriesr   rU   )r   r9   r:   rn   r    r   r5   r`   rV   r   r;   )r<   rS  r  resrV   r?   r>   r@   r@   rA   #test_constructor_categorical_series  s     z=TestDataFrameConstructors.test_constructor_categorical_seriesr4   c                 C   s,   t dddgidg|d}|jj|ks(td S )Nr   rJ   rI   r   r3  )r   r   r4   rP   )r<   r4   r   r@   r@   rA   %test_check_dtype_empty_numeric_column  s    
z?TestDataFrameConstructors.test_check_dtype_empty_numeric_columnc                 C   sF   t dddgidg|d}|r0|tjkr0t| |jjjdksBtd S )Nr   rJ   rI   r   r3  rk   )	r   r:   BYTES_DTYPESr  &mark_array_manager_not_yet_implementedr   r4   r^   rP   )r<   requestr4   rQ   r   r@   r@   rA   $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   rk   r!  r   r:   rn   r   r=  r@   r@   rA   test_to_frame_with_falsey_names  s
    z9TestDataFrameConstructors.test_to_frame_with_falsey_namesr(   r  c                 C   sb   t ddddddgi|pdd}t td	dg|d
}t|| t dtd	i|d}t|| d S )Nr   r   rJ   rI   r2   r1   r.   r3   r   r3  )r   r   r:   r;   )r<   r4   r?   rp   r@   r@   rA   test_constructor_range_dtype	  s
    z6TestDataFrameConstructors.test_constructor_range_dtypec                 C   s\   G dd dt }tdddgdddgg}t||dddg|dddgg}t|| d S )	Nc                   @   s   e Zd ZdS )zETestDataFrameConstructors.test_frame_from_list_subclass.<locals>.ListNr  r@   r@   r@   rA   List	  s   r  rJ   rI   r2   r1   r   rD   )r   r   r:   r;   )r<   r  r?   rp   r@   r@   rA   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?   rp   r@   r@   rA   %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dddgtt|gd}t|| d S )Nr2   rU   r   r   rJ   rI   )r   todayr   r   r   r   r:   r;   )r<   rY  tuprp   r?   r@   r@   rA   *test_datetime_date_tuple_columns_from_dict,	  s
    "zDTestDataFrameConstructors.test_datetime_date_tuple_columns_from_dictc              	   C   s   t dddgtdddgd}t dd	dd
dgtdddddgd}t||g}ttdddtjtjgdddddggdddddgd}t|| d S )N'   rD   r1   ZfemaleZmaleunknownrU   rI            rz  rz   g      c@g     @n@g     b@r   r   )r   r   r   r5   r_   r`   r:   r;   )r<   r  r$  rp   r?   r@   r@   rA   /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orderedrU   )r   r   r   Zvalue_countsheadtailr   r   r   r5   r`   r:   r;   )r<   r  ser1ser2rp   rV   r?   r@   r@   rA   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sXt|d d |d d ksttt|d
 }t|d tst|d |d d kstd S )NrG  ry  r   rx  rc  r   )DateM8[us])Forecastingr  r3   r  r  rJ   )r   r5   r_   r   rP   r   r   r   )r<   rD  r=   r>   r  r@   r@   rA   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:td S )Nc                   @   s   e Zd ZdS )zOTestDataFrameConstructors.test_from_datetime_subclass.<locals>.DatetimeSubclassNr  r@   r@   r@   rA   DatetimeSubclassj	  s   r  r   i  rJ   rE  )r   r   r4   rP   )r<   r  r   r@   r@   rA   test_from_datetime_subclassh	  s    z5TestDataFrameConstructors.test_from_datetime_subclassc              	   C   s@   t dddd}d}tjt|d t|tdd W 5 Q R X d S )	NrC   r2   rE   rF   z@Shape of passed values|Passed arrays should have the same lengthrZ   r1   rU   )r    ra   rb   r   r   r   )r<   rR   rc   r@   r@   rA   (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sNt	d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50rR  r  r  ri   re   )
r    r5   r  r   r   rd  rM   Z
issubdtyper4   rP   )r<   r   rD  r>   r@   r@   rA   !test_frame_ctor_datetime64_columnw	  s    
z;TestDataFrameConstructors.test_frame_ctor_datetime64_columnc                 C   s   ddddgddddgg}t tjdddd |D d}t|jtsHtt|jtrXtt tjdd|d	}t|jts~td S )
Nr   r   r   r   r1   c                 S   s   g | ]}t |qS r@   r  r}   r@   r@   rA   r   	  s     zYTestDataFrameConstructors.test_dataframe_constructor_infer_multiindex.<locals>.<listcomp>rU   r   )	r   r5   r   rd  r   rV   r   rP   r   )r<   Zindex_listsmultir@   r@   rA   +test_dataframe_constructor_infer_multiindex~	  s    zETestDataFrameConstructors.test_dataframe_constructor_infer_multiindex
input_valsr  r   rQ  HrW  rS  c                 C   s6   t d|i|d}t d|id|i}t|| d S )Nr   r3   )r   r9   r:   r;   )r<   r  r   rp   r?   r@   r@   rA   test_constructor_list_str	  s    z3TestDataFrameConstructors.test_constructor_list_strc                 C   s<   t dddd gi|d}t dddd gitd}t|| d S )Nr   r   r   r3   z1.0z2.0)r   rk   r:   r;   )r<   r   rp   r?   r@   r@   rA   test_constructor_list_str_na	  s    z6TestDataFrameConstructors.test_constructor_list_str_nar   c           	         s  |r"|s"|t jt j kr"t| tjddg|d tjddg|djjdkrVd S t	jddg|d
 }t d|dd	d
 dtd fdd}|s|  djd< djd< |s|d t	jddgjdjd d df< jjd jkst|s |s |d |r jjdkrn d  jddksPtd jddkstn4 d  jdkstd jdkstd |d kstn|s҈d dkstd S )NrJ   rI   r3   r2   r1   )SUr   r   r   r   c                 S   s0   t | tjr| jS t | jtjr(| jjS td S r   )r   r5   Zndarraybaser4   Z_ndarrayrv   r   r@   r@   rA   get_base	  s
    z<TestDataFrameConstructors.test_dict_nocopy.<locals>.get_baseFZc_onlyc                    sv   t fddjjD dks"t| r*d S t  fddjjD dksNtt fddjjD dksrtd S )Nc                 3   s   | ]}| kV  qd S r   r@   r}   )r   r@   rA   r   	  s     zRTestDataFrameConstructors.test_dict_nocopy.<locals>.check_views.<locals>.<genexpr>rJ   c                 3   s(   | ] }t |jtjr| kV  qd S r   r   r4   r5   r}   )r   r  r@   rA   r   	  s   c                 3   s(   | ] }t |jtjr| kV  qd S r   r  r}   )r   r  r@   rA   r   	  s   )sumrN   r   rP   r  r   r   r   r>   r  r@   rA   check_views	  s    "	z?TestDataFrameConstructors.test_dict_nocopy.<locals>.check_viewsr   r   rK   Tr   .   r{   rs   )F)r:   STRING_DTYPESr  r  r  r5   r_   r4   ry   r  r   r   r   r   r   rP   type)	r<   r  r   Zany_numeric_ea_dtypeZany_numpy_dtyperQ   r   Zc_origr  r@   r  rA   test_dict_nocopy	  sF    
	

"z*TestDataFrameConstructors.test_dict_nocopyc                 C   s2   t tddddgd}t dgd}t|| d S )NrJ   r   rj   r   r   r  r=  r@   r@   rA   'test_from_series_with_name_with_columns
  s    zATestDataFrameConstructors.test_from_series_with_name_with_columnsc                 C   sd   t dddgdddggdddgdd	d
ggd}t dddgdddggtdddgd}t|| d S )NrJ   rI   r2   r1   r   rD   r   r   r   r   r   )r   r   )r   r   )r   r   )r   r   r@  r:   r;   r=  r@   r@   rA   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s8t|j	|j
k sLt||k  s`tt jdddd	g}|jtdd}t|}|jdkst|j	|j
k st||k  sttj||||f j}t|}t||||d
}	t||	 d S )Nz
2016-04-05r2   rK  rJ   r   rJ   r2   r1   r   rD   r  )r  r  rL   r9   rk   r7   r   r  rP   r   r4   r  ZIntervalIndexZfrom_breaksr5   Zr_r  r:   r;   )
r<   pir   r>   iiZdata2r   Zdata3r   r?   r@   r@   rA   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   s0   d}t jt|d t||d W 5 Q R X d S )Nz,Per-column arrays must each be 1-dimensionalrZ   r   r%  )r<   Zcol_aZcol_brc   r@   r@   rA   test_error_from_2darray.
  s    	z1TestDataFrameConstructors.test_error_from_2darrayc                 C   s   t dddgdddgdd}t|d j|d jr6t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dddgtd}t	|| d S )NrJ   rI   r2   r   r   r   F)rV   r   r   r   r   r  rV   r4   )
r   r5   r   Z_valuesrP   r   r`   rk   r:   r;   rF  r@   r@   rA   &test_from_dict_with_missing_copy_false;
  s    
	z@TestDataFrameConstructors.test_from_dict_with_missing_copy_falsec              	   C   s8   d}t jt|d ttg ddgd W 5 Q R X d S )NrH  rZ   r   r   r;  )ra   rb   r   r   r5   r_   r&  r@   r@   rA   1test_construction_empty_array_multi_column_raisesL
  s    zKTestDataFrameConstructors.test_construction_empty_array_multi_column_raises)r  r  r  rB   rS   rX   rd   rh   rq   rx   ra   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   r5   r_   rk   r  r)   r*   r+   r  r  r  r  r  r  r!  r#  r'  r`   r*  r   r3  r8  r<  r>  rC  rG  rR  rV  r[  r_  rb  re  rg  ri  rl  rn  rq  rr  r  r  r  r  r  r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r   r   r   r4   r   r  r  ZBooleanDtypeZFloat64DtypeZ
Int64DtypeZStringDtyper  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r  r  r  r  r   r  r  r  r  r  r
  r  r  r  r  r   r#  r&  r+  r,  r.  r/  r0  r1  r4  r6  r:  rC  rF  rL  rP  rV  rX  r   rf   ru   rr   rY  re  rg  ri  rk  rm  rn  ro  r   rq  rr  rt  ru  rv  rx  r{  r|  r  r:   ZALL_NUMERIC_DTYPESZDATETIME64_DTYPESZTIMEDELTA64_DTYPESZBOOL_DTYPESr  r  r  ZOBJECT_DTYPESr  r  Zarm_slowr  r  r   r%   r#   r$   r  r  r  r  r  r  r  r  r  r  r    r  r  r  r  r  r  r  r  r  r@   r@   r@   rA   r/   M   s  
!


	



	





&	



4	



	
	

8G
"

	

'
	

	



2		&
 G;
(.8  4
	 			

	c"r/   c                   @   sJ   e Zd Zdd Zdd Zejddddgdgd	d	d
gdggdd ZdS )&TestDataFrameConstructorIndexInferencec                 C   s|   t jdddd}ttj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/2012r{   r  z1/1/1980z	12/1/2001)r  r$  )r  r  r   r5   r   rd  rM   r   r:   r   rV   )r<   Zrng1r  Zrng2r$  r>   r  r@   r@   rA   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 5 Q R X tjt|d t|||d W 5 Q R X tjt|d t|||d W 5 Q R X d S )NrC   r2   rK  rU   rN  z
US/Centralr   r3   )r   r   ri   )ri   r   r   )r   ri   r   z0Cannot join tz-naive with tz-aware DatetimeIndexrZ   )r   ri   r   r)  )r   ri   r)  )r)  r   ri   )r    r   r   rl   r   r   r   rV   rk   r:   r   ra   rb   rv   )r<   rR   r  r  Zser3Zser4r%  Z	exp_indexr   Z
exp_index3r   Zdf4Z
exp_index4rc   r@   r@   rA   /test_frame_from_dict_with_mixed_tzaware_indexes_
  sH        zVTestDataFrameConstructorIndexInference.test_frame_from_dict_with_mixed_tzaware_indexeszkey_val, col_vals, col_typer`  4utf8r2   r1   r,   c              
   C   s   t d}tj|j||| t|| d}t	|ddgi|d}t	dt
jgdt
jgg|d}|jd d df t|jd d df< t|| d S )NZpyarrow)r  rJ   rI   r   )ra   Zimportorskipr  r   ZArrowExtensionArrayr_   
dictionaryr,   getattrr   r5   r`   r   r9   rk   r:   r;   )r<   Zkey_valZcol_valsZcol_typepar.  rp   r?   r@   r@   rA   %test_dict_data_arrow_column_expansion
  s    	
 &zLTestDataFrameConstructorIndexInference.test_dict_data_arrow_column_expansionN)	r  r  r  r  r  ra   r  r  r  r@   r@   r@   rA   r  S
  s   ,r  c                   @   s   e Zd Zdd ZdS ))TestDataFrameConstructorWithDtypeCoercionc              	   C   s  t jdd}d}tjt|d t|dd W 5 Q R X t| dd}|jdk	 sZt
t j|d< d}tjt|d t|dd W 5 Q R X tjt|d t|d	 dd W 5 Q R X d}tjt|d t|d W 5 Q R X tjt|d t|d	 d W 5 Q R X d S )
Nr   r   z)Trying to coerce float values to integersrZ   r\   r3   r   rY   r   )r5   r   rd  ra   rb   r   r   roundr   r  rP   r`   r   r   r9   )r<   r=   rc   r>   r@   r@   rA   "test_floating_values_integer_dtype
  s"    
zLTestDataFrameConstructorWithDtypeCoercion.test_floating_values_integer_dtypeN)r  r  r  r  r@   r@   r@   rA   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 )'&TestDataFrameConstructorWithDatetimeTZrH   r  zdateutil/US/Easternc           
      C   s   t dddd}||}td|d|d}td|j}|d	 j|ksHtd
d |D }dd |D }td|i}||d< ||d< ||d< |j}tt	dt|dt	dt|dgddddgd}	t
||	 d S )N2011/1/12012/1/1W-FRIr  r   r  rU   rs   ri   c                 S   s   g | ]}|  qS r@   r=  r?  r@   r@   rA   r   
  s     zeTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypes.<locals>.<listcomp>c                 S   s   g | ]}|  qS r@   r=  r?  r@   r@   rA   r   
  s     rO  dr_tzdatetimes_naivedatetimes_with_tzrE  r  )r    rl   r   r   tzinfor4   rP   r   r   r5   r:   rn   )
r<   rH   rO  r  r>   Ztz_expectedr  r  rp   r?   r@   r@   rA   *test_construction_preserves_tzaware_dtypes
  s*    

	zQTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypespydtTFc              	   C   sf  |}t d|d}|r| }d}tjt|d td|gidd W 5 Q R X d}tjt|d td|idgdd	 W 5 Q R X tjt|d t|gdd W 5 Q R X tjt|d ttj|gt	ddd W 5 Q R X tjt|d t|dgdgdd
 W 5 Q R X tjt|d tt
|ggdd W 5 Q R X tjt|d t|ggdgdd W 5 Q R X d S )N2019r  sCannot convert timezone-aware data to timezone-naive dtype. Use pd.Series\(values\).dt.tz_localize\(None\) instead.rZ   r   rE  r3   /Cannot unbox tzaware Timestamp to tznaive dtyper  r  r3  )r   r>  ra   rb   r   r   rv   r5   r_   rk   r   )r<   Ztz_aware_fixturer  rH   r@  rc   Zmsg2r@   r@   rA   'test_constructor_data_aware_dtype_naive
  s*    "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sBtd|d
 jd
ksTtt|d
 t|d
d t|d t|dd d S )NrM  r2   r  rF   r   rj   Z20130110rK  r  r   zM8[ns, US/Easternri   )	r   r    r   r4   rP   r^   r:   rn   r   )r<   ro   rO  r>   r@   r@   rA   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 )	NrM  r2   r  r   )rG   rH   r^   rj   rF   r   )r    r   r:   rn   r   )r<   r(  r   r@   r@   rA   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   rK  rU   r   r   )r    r   r   r   )r<   rO  r  r@   r@   rA   +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<td S )	Nr  r  r  r  r   r  rU   ri   )r    r   r   r!   r  rP   )r<   rO  r@  r   r@   r@   rA   +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:00r2   r  r  )r<  rG   r  rH   Z
timestampsr   r  z20130101T10:01:00z20130101T10:02:00)r    r   r   r:   r;   )r<   rO  rp   r?   r@   r@   rA   test_frame_timeseries_column*  s    


	zCTestDataFrameConstructorWithDatetimeTZ.test_frame_timeseries_columnc                 C   sj   ddg}ddddddd	d
}t |dddg|d}t ddtjtjfg|tdddgd}t|| d S )NNevadaOhio333333@333333@)r7    r  333333?@)rh  r7  r  )r  r  r7  r  i  r   )r  r  )r  r  rD  )r   r5   r`   r   r:   r;   )r<   r   poprp   r?   r@   r@   rA   test_nested_dict_construction9  s    
zDTestDataFrameConstructorWithDatetimeTZ.test_nested_dict_constructionc                 C   sd   t dddd}|jtdd}t|}|jdks8t|j|j	k
 sLt||k
 
 s`td S )Nz2016-04-05 04:30r2   rN  rF   rJ   r   r  )r    rL   r9   rk   r7   r   r  rP   r   r4   r  )r<   rR   r   r>   r@   r@   rA   test_from_tzaware_object_arrayH  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|dddgd}dddg}|j|k	 st
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+0100r3   r   ri   r   r   rE  rH  zdatetime64[ns, CET])r5   r_   r   r  rr   rk   r  r   r   r  rP   )r<   r=   r~  Zexpected_dtypesr@   r@   rA   $test_from_tzaware_mixed_object_arrayQ  s,    



zKTestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_mixed_object_arrayc                 C   s:   t dd}t|dd}t|d}t|| d S )Nr   )r   rI   zdatetime64[ns, UTC]r3   )r5   r6   r7   r   r9   r:   r;   )r<   Z
array_dim2r>   r?   r@   r@   rA   test_from_2d_ndarray_with_dtypep  s    zFTestDataFrameConstructorWithDatetimeTZ.test_from_2d_ndarray_with_dtyper   c              	   C   sh   |dddh}d|j  d}tjt|d td|i W 5 Q R X tjt|d t| W 5 Q R X d S )NrJ   rI   r2   'z' type is unorderedrZ   r   )r  ra   rb   rv   r   r   )r<   r   r   rc   r@   r@   rA   !test_construction_from_set_raisesx  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:td S )	Nr   r0   rE  r3   r1   r2   c                 s   s   | ]}t |tV  qd S r   )r   r"   )r~   r=   r@   r@   rA   r     s     zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelike.<locals>.<genexpr>)r5   r6   r7   r   r  rN   r   rP   r   r@   r@   rA   +test_construction_from_ndarray_datetimelike  s    zRTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelikec              	   C   s   t jdd}tdgj}d}tjt|d t	|dg|d W 5 Q R X tddd	g}tjt|d t	|dd
gd W 5 Q R X d S )Nr   rI   r   z'len\(arrays\) must match len\(columns\)rZ   r   r3  r   r\  r   r   )
r5   r   rd  r  r_   r4   ra   rb   r   r   )r<   r=   r4   rc   Zarr2r@   r@   rA   >test_construction_from_ndarray_with_eadtype_mismatched_columns  s    zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_with_eadtype_mismatched_columnsc              	   C   sn   dddgdddgg}t jtdd t|d	d
hd W 5 Q R X t jtdd t|d	d
dhd W 5 Q R X d S )NrJ   rI   r2   r1   r   rD   zindex cannot be a setrZ   r   r   rU   zcolumns cannot be a setr   r   r%  r  r@   r@   rA   "test_columns_indexes_raise_on_sets  s
    zITestDataFrameConstructorWithDatetimeTZ.test_columns_indexes_raise_on_setsN)r  r  r  ra   r  r  r  r  r  r  r  r  r  r  r  r  r  set	frozensetr  r  r  r  r@   r@   r@   rA   r  
  s$   

!	

r  c                 C   s"   t | tr| jd S | jd S d S )Nr   r   )r   r   r   r  r@   r@   rA   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   s   |j S r   paramr<   r  r@   r@   rA   box  s    zTestFromScalar.boxc                    s   dt di tkrdg d< |d kr4tjf S |tkrbtkrR fddS  fddS n$tkrx fddS  fd	dS d S )
NrV   rI   r   r   c                    s   | | df |S )NrK   r@   r   kwargsextrarw   r@   rA   r     s
    z,TestFromScalar.constructor.<locals>.<lambda>c                    s   d| if |S Nr   r@   r  r  r@   rA   r     r   c                    s   | | gf |S r   r@   r  r  r@   rA   r     r   c                    s   d| | gif |S r  r@   r  r  r@   rA   r     s
   
 )r   r   	functoolspartialr   r   )r<   rw   r  r@   r  rA   r     s    
zTestFromScalar.constructorr4   re   rt   c                 C   s8   |t j|d}t|j|ks"tt| s4td S r  )r  rr   r5   r  r   rP   r!   )r<   r4   r   r   r@   r@   rA   test_from_nat_scalar  s    z#TestFromScalar.test_from_nat_scalarc                 C   s(   t d}||dd}t||ks$td S )NrJ   rt   r3   r   r  rP   )r<   r   r  r   r@   r@   rA   *test_from_timedelta_scalar_preserves_nanos  s    z9TestFromScalar.test_from_timedelta_scalar_preserves_nanosc                 C   s,   |t d }||dd}t||ks(td S )NrJ   re   r3   r  )r<   r   Zfixed_now_tsr@  r   r@   r@   rA   *test_from_timestamp_scalar_preserves_nanos  s    z9TestFromScalar.test_from_timestamp_scalar_preserves_nanosc                 C   s4   t d}| }||td}tt|tjs0td S )NrJ   r3   )r   Zto_timedelta64rk   r   r  r5   r  rP   )r<   r   r  Ztd64r   r@   r@   rA   #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kr.d}nd}dd|g}tjt|d	 |||d
 W 5 Q R X |dd}tjt|d	 |||d
 W 5 Q R X d S )Nrr   rs   rt   re   z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]z?dtype timedelta64\[ns\] cannot be converted to datetime64\[ns\]|rc  rZ   r3   r1   )r5   ru   r  joinra   rb   rv   )r<   r   r  r(  r4   Zmsg1rc   r@   r@   rA   (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kr*t|d}d}||}t|}t|trJ|jn
|jjd }t	|t
ksft|jj|ksvt||kstd S )N'  rJ   r  r)  M8[s]r   )r   r5   ru   r  r   r   r4   r   r   r  r   rP   asm8r<   r   r  r(  rf  rp   itemr4   r@   r@   rA   #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ks8tt|t	rH|j
n
|jjd }|tks`td S Nr)  r   )r5   ru   iinfor.   maxr  r  rP   r   r   r4   r   r   rk   )r<   r   r(  rp   r  r4   r@   r@   rA   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kr6t|d}d}||}t|}t|trV|jn
|jjd }t	|t
ksrt|jj|kst||kstd S )Nr  rJ   i  zm8[us]r)  zm8[s]r   )r   r5   r  r  r   r   r4   r   r   r  r   rP   r  r  r@   r@   rA   $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||ks4tt|trD|j	n
|j
jd }|tks\td S r  )r5   r  r.   r  r  r  rP   r   r   r4   r   r   rk   )r<   r   r  r(  rp   r  r4   r@   r@   rA    test_out_of_s_bounds_timedelta64  s    z/TestFromScalar.test_out_of_s_bounds_timedelta64c              	   C   sd   d}t d|d}|d ks(|tkr2|tkr2d}t}nd}t}tj||d ||dd W 5 Q R X d S )	Nr  r  r  r  r  rZ   re   r3   )r   r   r   rv   r   ra   rb   )r<   r   r  rw   rH   r@  rc   errr@   r@   rA   test_tzaware_data_tznaive_dtype(  s    z.TestFromScalar.test_tzaware_data_tznaive_dtype)r  r  r  ra   fixturer   r   r  r   r  r  r  r  r	  r
  r5   ru   r  r  Zxfailr   r  r  r	   r  r  r  r@   r@   r@   rA   r    s2   




r  c                   @   sZ   e Zd Zejddgddd Zejdd Zdd	 Zd
d Zdd Z	dd Z
dd ZdS )TestAllowNonNanoTFr  c                 C   s   |j S r   r  r  r@   r@   rA   as_td?  s    zTestAllowNonNano.as_tdc                 C   sL   t dt jd}|r8||d  }tj||jdS tj||jdS d S )Nr   r  r   r3   )	r5   r6   r9   r.   r   r&   Z_simple_newr4   r"   )r<   r   r   r@   r@   rA   r=   C  s
    zTestAllowNonNano.arrc                 C   s   t |}|j|jkstd S r   )r   r4   rP   )r<   r=   ro   r@   r@   rA   test_index_allow_non_nanoL  s    z*TestAllowNonNano.test_index_allow_non_nanoc                 C   s,   |rt |}nt|}|j|jks(td S r   )r  ZTimedeltaIndexr   r4   rP   )r<   r=   r   ro   r@   r@   rA   test_dti_tdi_allow_non_nanoP  s    z,TestAllowNonNano.test_dti_tdi_allow_non_nanoc                 C   s   t |}|j|jkstd S r   )r   r4   rP   )r<   r=   r  r@   r@   rA   test_series_allow_non_nanoW  s    z+TestAllowNonNano.test_series_allow_non_nanoc                 C   s    t |}|jd |jkstd S r   r   r   r4   rP   r   r@   r@   rA   test_frame_allow_non_nano[  s    z*TestAllowNonNano.test_frame_allow_non_nanoc                 C   s$   t d|i}|jd |jks td S r   r$  r   r@   r@   rA   #test_frame_from_dict_allow_non_nano_  s    z4TestAllowNonNano.test_frame_from_dict_allow_non_nanoN)r  r  r  ra   r  r   r=   r!  r"  r#  r%  r&  r@   r@   r@   rA   r  ;  s   

r  )Hr_   collectionsr   r   r   r   dataclassesr   r   r   r	   r  r   r  typingr
   r  numpyr5   r   Znumpy.mar   ra   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_testingr:   Zpandas.arraysr"   r#   r$   r%   r&   r   r   r/   r  r  r  r  r  r  r@   r@   r@   rA   <module>   sx   D
                    K  a 