U
    f/e2                    @   s  d dl mZ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	Z	d dl
Zd dlmZ d dlm  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)m*Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z1 d dl2m3Z3m4Z4m5Z5m6Z6 d	d
dgZ7ddddddddgZ8G dd dZ9G dd dZ:G dd dZ;dd Z<G dd dZ=dS )    )OrderedDictabc)datedatetime	timedeltaN)np_version_under1p19)is_integer_dtype)DatetimeTZDtypeIntervalDtypePandasDtypePeriodDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexInterval
MultiIndexPeriod
RangeIndexSeries	Timedelta	Timestamp
date_rangeisna)DatetimeArrayIntervalArrayPeriodArraySparseArrayZfloat16Zfloat32float64uint8Zuint16Zuint32uint64Zint8Zint16int32int64c                   @   s  e Z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 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d(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zejd2d3 Zd4d5 Zejjed6d7d8d9 Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE Zej	dFe j!dGge"dHe !d$dI gdJge j!dKge"dHe !dLgd$dI  d$ ggdMdN Z#dOdP Z$dQdR Z%dSdT Z&dUdV Z'dWdX Z(dYdZ Z)d[d\ Z*d]d^ Z+ej	d_d$e j,d`dagdbdc Z-ej	ddd$e j,d`e.degdfdg Z/ej	dde j,d`e.degdhdi Z0djdk Z1dldm Z2dndo Z3dpdq Z4drds Z5dtdu Z6dvdw Z7dxdy Z8dzd{ Z9d|d} Z:d~d Z;dd Z<dd Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEej	deFdeGdfeHd#ddeIddfeJdddeKddfgdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSejjTdd ZUdd ZVej	dd`eWeXdddge"e jYfd`d`ddgde Zdfd`eWeXdddge[e Zdfi d`ddgd`e jYfdd"ieWeXdeWde[e Zdfgdd Z\ej	dddd`gde]j^fddd`gde]j_fd"d$d`gde]j`fdddgde]jaffddƄ ZbddȄ Zcddʄ Zddd̄ Zedd΄ ZfddЄ Zgdd҄ ZhddԄ Ziddք Zjdd؄ Zkddڄ Zldd܄ Zmddބ Zndd Zodd Zpdd Zqdd Zrdd Zsdd Ztej	deuevgdd Zwej	deuevgdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zej	dd'g fd'g fdd'd'gfdg 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d Zdd Zdd Zdd Zdd Zej	ddddd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/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zej	d=e !d`d`d`d`e d`ge !d`d`e d`ge d>gd`gge d>ge]jggd`ge d>ggd`ge]jgge]jge d>gge]jgd`gggd?d@ Zej	dAdBdCdDdEgej	dFdGdHdIdJdKdLdMdNgdOdP Zej	dAdBdCdDdEgej	dFdQdRdSdTdUdVdWgdXdY ZdZd[ Zd\d] Zejd^d_ Zejd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds Zej	dFejej ej ej ej ej ej dtdu Zejej	dFejej ej dvdw Zdxdy Zejjej	dFd`dzd{gd|d} Zd~d Zej	deeWded"e j,e j,e j,geeHd#d"eHd"dgee]jÐ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 Zej	dd"d$gddgeWe̐dd$ddeWe̐dd$dddeHd#ddggdd Z͐dd Zej	dddgejdd Zϐdd ZАdd Zѐdd Zd`S (  TestDataFrameConstructorsc                 C   st   t dt jgddgg}t|dd}|jj|jks6tt|jd sHtt	|d ddd}|jd }t
|| d S )	N         i8dtyper   r%   r   r*   name)nparraynanr   valuesr*   AssertionErrorr   ilocr   tmassert_series_equal)selfarrdfZserexpected r:   H/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/frame/test_constructors.py-test_construct_ndarray_with_nas_and_int_dtypeG   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   nowr*   r.   r2   r6   r8   r:   r:   r;   %test_construct_from_list_of_datetimesS   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-   
US/Pacificobjectr)   )
r   tz_localizer   r.   r/   tolistr*   r2   r4   r5   )r6   Znaiveidxr9   resultr:   r:   r;   +test_constructor_from_tzaware_datetimeindexW   s    
zETestDataFrameConstructors.test_constructor_from_tzaware_datetimeindexc              	   C   sh   t dd}t j|gtd}|tkr0|dd}dddg}tjt	|d ||d	d W 5 Q R X d S )
NNaTnsr)   r%   |z+Could not convert object to NumPy timedeltaz=Invalid type for timedelta scalar: <class 'numpy.datetime64'>matchm8[ns])
r.   
datetime64r/   rD   r   reshapejoinpytestraises
ValueError)r6   frame_or_seriesZnatr7   msgr:   r:   r;   ,test_array_of_dt64_nat_with_td64dtype_raisesd   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[   r=   rO      r(   r)   r'   r&   r   c                 S   s   g | ]}t |qS r:   r   .0xr:   r:   r;   
<listcomp>   s     zXTestDataFrameConstructors.test_datetimelike_values_with_object_dtype.<locals>.<listcomp>)r   r   r.   arangeviewrQ   r   rD   _mgrarraysr*   r2   
isinstanceravelr   r   )r6   rY   rV   r*   Zscalar_typer7   objZsersr:   r:   r;   *test_datetimelike_values_with_object_dtypet   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   r%   rB   r   columns)r   ranger   r4   assert_frame_equal)r6   r`   yrH   r9   r:   r:   r;   )test_series_with_name_not_matching_column   s    zCTestDataFrameConstructors.test_series_with_name_not_matching_columnconstructorc                   C   s   t  S Nr   r:   r:   r:   r;   <lambda>       z"TestDataFrameConstructors.<lambda>c                   C   s   t d S rr   rs   r:   r:   r:   r;   rt      ru   c                   C   s   t i S rr   rs   r:   r:   r:   r;   rt      ru   c                   C   s   t dS )Nr:   rs   r:   r:   r:   r;   rt      ru   c                   C   s   t g S rr   rs   r:   r:   r:   r;   rt      ru   c                   C   s   t dd dD S )Nc                 s   s   | ]
}|V  qd S rr   r:   r_   _r:   r:   r;   	<genexpr>   s     5TestDataFrameConstructors.<lambda>.<locals>.<genexpr>r:   rs   r:   r:   r:   r;   rt      ru   c                   C   s   t tdS Nr   r   rm   r:   r:   r:   r;   rt      ru   c                   C   s
   t d dS Ndatars   r:   r:   r:   r;   rt      ru   c                   C   s
   t i dS r|   rs   r:   r:   r:   r;   rt      ru   c                   C   s
   t ddS )Nr:   r}   rs   r:   r:   r:   r;   rt      ru   c                   C   s
   t g dS r|   rs   r:   r:   r:   r;   rt      ru   c                   C   s   t dd dD dS )Nc                 s   s   | ]
}|V  qd S rr   r:   rv   r:   r:   r;   rx      s     ry   r:   r}   rs   r:   r:   r:   r;   rt      ru   c                   C   s   t tddS )Nr   r}   r{   r:   r:   r:   r;   rt      ru   c                 C   s@   t  }| }t|jdkstt|jdks0tt|| d S rz   )r   lenindexr2   rl   r4   rn   )r6   rq   r9   rH   r:   r:   r;   test_empty_constructor   s
    z0TestDataFrameConstructors.test_empty_constructorz)emptylike,expected_index,expected_columnsr%   r   r&   c                 c   s   | ]
}|V  qd S rr   r:   rv   r:   r:   r;   rx      s     z#TestDataFrameConstructors.<genexpr>r:   c                 C   s$   t ||d}t |}t|| d S )Nr   rl   r   r4   rn   )r6   Z	emptylikeZexpected_indexZexpected_columnsr9   rH   r:   r:   r;   test_emptylike_constructor   s    	z4TestDataFrameConstructors.test_emptylike_constructorc                 C   s8   t  \}}t||d}t|}|d jtjks4td S )Nr   foo)r4   ZgetMixedTypeDictr   r*   r.   object_r2   )r6   Zfloat_string_framer   r~   Zindexed_frameZunindexed_framer:   r:   r;   test_constructor_mixed   s    z0TestDataFrameConstructors.test_constructor_mixedc              	   C   s   d}t jt|d tddddgitjd}W 5 Q R X |d jtksHttt	d}t	d
 |d< d	d
dg}tjt|d t	d|d< W 5 Q R X t	d
 |d< d S )NBeither all columns will be cast to that dtype, or a TypeError willrM   abcr)   )   r&   r   rL   z3Wrong number of items passed 2, placement implies 1z5Expected a 1D array, got an array with shape \(4, 2\)testZfoo2)r4   assert_produces_warningFutureWarningr   r.   r   r*   rD   r2   onesrF   rR   rS   rT   rU   )r6   rW   r   r8   r:   r:   r;   test_constructor_cast_failure   s    "z7TestDataFrameConstructors.test_constructor_cast_failurec                 C   sD   t dgdgdgd}t |tdd}d|d< |d d	 dks@td S )
N      ?       @      @)col1col2col3T)r*   copyg      i@r   r   )r   floatr2   )r6   Zorig_dfZnew_dfr:   r:   r;   test_constructor_dtype_copy   s    z5TestDataFrameConstructors.test_constructor_dtype_copyc                 C   sB   t ddgg}t ||d jd}d|d d< |jd dks>td S )Nr%   r&   r   r)   c   r   r   )r   r*   r1   r2   r6   r8   Zshould_be_viewr:   r:   r;   ,test_constructor_dtype_nocast_view_dataframe   s    zFTestDataFrameConstructors.test_constructor_dtype_nocast_view_dataframec                 C   sD   t ddgg}t |j|d jd}d|d d< |jd dks@td S )Nr%   r&   r   r)   a   r   r   r1   r*   r2   r   r:   r:   r;   +test_constructor_dtype_nocast_view_2d_array   s    zETestDataFrameConstructors.test_constructor_dtype_nocast_view_2d_arrayc                 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 )Nr%   2r   r)   r%   r   r+   )r   rD   locr2   r?   r:   r:   r;    test_constructor_dtype_list_data   s    z:TestDataFrameConstructors.test_constructor_dtype_list_datazNumPy change.reasonc              	   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\)rM   Ar%   r&   zshape=\(2, 2, 1\))r   r.   emptyrS   rT   rU   )r6   r   r   r:   r:   r;   "test_constructor_list_of_2d_raises  s    
z<TestDataFrameConstructors.test_constructor_list_of_2d_raisesc                 C   sR   ddd}ddd}|d}|| |ddddd	}|| |d
}|| d S )Nc                 S   s   | dkrt }dd |D }n| dkr6t}dd |D }t||D ]\}}|j|ks@tq@|d krdi }|dd t||D  t|S )Nintc                 S   s"   g | ]}t jt jd |dqS )
   r)   )r.   r/   randomrandr_   dr:   r:   r;   ra     s     zjTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>._make_mixed_dtypes_df.<locals>.<listcomp>r   c                 S   s&   g | ]}t jt jjd d d|dqS )r   )sizer)   )r.   r/   r   randintr   r:   r:   r;   ra     s    c                 S   s   i | ]\}}||qS r:   r:   )r_   r   r   r:   r:   r;   
<dictcomp>$  s      zjTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>._make_mixed_dtypes_df.<locals>.<dictcomp>)MIXED_INT_DTYPESMIXED_FLOAT_DTYPESzipr*   r2   updater   )typaddtypesre   r   r   r:   r:   r;   _make_mixed_dtypes_df  s    zVTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>._make_mixed_dtypes_dfc                 S   s8   |d krt t }|D ]}|| kr| j| |kstqd S rr   )r   r   r   r2   )r8   r   r   r:   r:   r;   _check_mixed_dtypes'  s
    zTTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>._check_mixed_dtypesr   r%   r   bar)r   rA   Cr   )N)Nr:   )r6   r   r   r8   r:   r:   r;   test_constructor_mixed_dtypes  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   )r.   r   r   astypeZ	complex64
complex128r   r*   r   r2   r   r6   r   r   r8   r:   r:   r;   test_constructor_complex_dtypes:  s
    z9TestDataFrameConstructors.test_constructor_complex_dtypesc                 C   sx   t ddd gi|d}| }t dddgi}t|| |jd d ksJtt ddtjgi|d}t|jd sttd S )Nr   r`   r)   FTr   )	r   r   r4   rn   r3   r2   r.   r0   isnan)r6   string_dtyper8   rH   r9   r:   r:   r;   $test_constructor_dtype_str_na_valuesC  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 )NFr   r   rA   r   rk   )Z
to_recordslistr*   namesr   r   r4   assert_index_equalrl   r   r.   rb   r   reindexrn   )	r6   float_frameZrecr   r8   df2rngdf3r9   r:   r:   r;   test_constructor_recN  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   r)   r+   )	r   r.   r   boolzerosr1   r*   bool_r2   r?   r:   r:   r;   test_constructor_boola  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:   r;   ra   g  s     zMTestDataFrameConstructors.test_constructor_overflow_int64.<locals>.<listcomp>r%   r   r)   r   )l   Y2<   )l   FJLW]L*    )l   M:M^ -   )l   8Ma i  )l   r*R3_PvN r   )uidu8)Zscorer   r   )	r.   r/   rm   r!   r   r*   r2   r   r   )r6   r1   rH   Zdata_scoresr*   r~   Z	df_crawlsr:   r:   r;   test_constructor_overflow_int64e  s     z9TestDataFrameConstructors.test_constructor_overflow_int64r1   r   r)   A   l           l        l        c                 C   s:   |d }t |}|d jtks"t|d d |ks6td S rz   )r   r*   rD   r2   )r6   r1   valuerH   r:   r:   r;   test_constructor_int_overflowz  s    z7TestDataFrameConstructors.test_constructor_int_overflowc                 C   s`   dd l }d}tt|}|| dd |D }ttt|dgg| }|t|jks\td S )Nr   d   c                 S   s   g | ]}d |dqS )r   r   r:   r   r:   r:   r;   ra     s     zJTestDataFrameConstructors.test_constructor_ordereddict.<locals>.<listcomp>)	r   r   rm   shuffler   r   r   rl   r2   )r6   r   Znitemsnumsr9   r8   r:   r:   r;   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nperrj   r   r      r   r   r   r-   r   Zcol4rk   r   <Mixing dicts with non-Series may lead to ambiguous ordering.rM   r   r   r   r   r   rA   )r4   makeTimeSeriesr   r   r2   r5   renamer   r.   Zconcatenater0   r1   r   r   allrS   rT   rU   )r6   datetime_seriesdatetime_series_shortframeexprW   r:   r:   r;   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   r%   r&   1r   r   r   )r   r4   r   r   r   r6   r   r:   r:   r;   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   r%   r&   r   )r   r   r   r2   r6   rG   r   r:   r:   r;    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   r%   r&   r   r'   )r   r   r   r2   rl   r   _seriesr   r:   r:   r;   ,test_constructor_dict_with_index_and_columns  s
    zFTestDataFrameConstructors.test_constructor_dict_with_index_and_columnsc                 C   s0   t g g dddgd}tj|jtddd d S )Nr   r   rA   rk   r   Texact)r   r4   r   r   r   r   r:   r:   r;   $test_constructor_dict_of_empty_lists  s    z>TestDataFrameConstructors.test_constructor_dict_of_empty_listsc                 C   s^   t dd idgd}t dd gidgd}|ddd ks:t|ddd ksNtt|| d S )Nr   r   r   )r   
_get_valuer2   r4   rn   )r6   Z
frame_noneZframe_none_listr:   r:   r;   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 indexrM   r   gffffff?rk   )rS   rT   rU   r   )r6   rW   r:   r:   r;   test_constructor_dict_errors  s
    z6TestDataFrameConstructors.test_constructor_dict_errorsscalarNDc                 C   s.   t d|idgd}t dgd}t|| d S )Nr   r   rk   r   )r6   r  rH   r9   r:   r:   r;   %test_constructor_invalid_items_unused  s    z?TestDataFrameConstructors.test_constructor_invalid_items_unusedr   r0   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 )Nr%   r'   r   r   r   r&   rj   c                    s"   i | ]} | t | d qS r   r]   r_   r   colsrG   r1   r:   r;   r     s      zKTestDataFrameConstructors.test_constructor_dict_nan_key.<locals>.<dictcomp>Zaxisr\   r#   r)   r   r   )rm   r   sort_valuesr.   rb   rQ   r4   rn   r6   r   r~   rH   r9   r:   r
  r;   test_constructor_dict_nan_key  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   r&   r   r'   r%   r   rj   c                    s"   i | ]} | t | d qS r  r]   r	  r
  r:   r;   r     s      zQTestDataFrameConstructors.test_constructor_dict_nan_tuple_key.<locals>.<dictcomp>r  r\   r#   r)   r   r   )	r   rm   r   r  r.   rb   rQ   r4   rn   r  r:   r
  r;   #test_constructor_dict_nan_tuple_key  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~   rl   )r4   r   r   r   rn   )r6   r   r   r   r   r9   r:   r:   r;   %test_constructor_dict_order_insertion  s    

z?TestDataFrameConstructors.test_constructor_dict_order_insertionc                 C   sR   t tjddgdddgitjdgd}t ddgddggtjdgd}t|| d S )Nr%   r&   r'   rk   )r   r.   r0   r4   rn   r6   rH   r9   r:   r:   r;   )test_constructor_dict_nan_key_and_columns   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r&   r'   )r'   r'   r   )r   from_tuplesr   r   r1   rg   r   r2   )r6   tuplesmir8   r:   r:   r;   test_constructor_multi_index&  s    



z6TestDataFrameConstructors.test_constructor_multi_indexc                 C   s   t dggdggddgd}t ddgtj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 )	Nr%   r&   rl   r   r#   r)   r   )levelscodesr   )r   pdZ
Int64Indexr   r4   rn   r6   r8   r9   r:   r:   r;   test_constructor_2d_index3  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 ),Nz)Empty data passed with indices specified.rM   r   r   rk   r   r   r   r   r   r   z:Shape of passed values is \(4, 3\), indices imply \(3, 3\)   )r   r'   r   r   baz
2000-01-01r'   periodsr   r   rj   r\   z:Shape of passed values is \(1, 3\), indices imply \(1, 4\)r   rl   r~   z:Shape of passed values is \(3, 1\), indices imply \(1, 4\)Must pass 2-d inputr'   r'   r'   r   rA   r   r%   :Shape of passed values is \(2, 3\), indices imply \(1, 3\)r&   :Shape of passed values is \(2, 3\), indices imply \(2, 2\)z,2 columns passed, passed data had 10 columnsr      )r   Ztwosr  FT)rS   rT   rU   r   r.   r   r   rb   rQ   r   r/   rm   r   r   r   )r6   rW   r7   r:   r:   r;   test_constructor_error_msgsF  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:   r;   rx   }  s     zKTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<genexpr>r   c                 s   s   | ]}|d | fV  qdS )g      4@Nr:   r^   r:   r:   r;   rx   ~  s     r   c                 S   s   i | ]\}}|t | qS r:   )dictitems)r_   colvalr:   r:   r;   r     s      zLTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<dictcomp>)rm   r   r3  r4   rn   )r6   Zdict_subclassr~   r8   Zrefdfr:   r:   r;   test_constructor_subclass_dictz  s    z8TestDataFrameConstructors.test_constructor_subclass_dictc           	      C   sx   ddl m} i }tj|d d d< | D ]&\}}|t}||  |||< q*t|}|j	|j
d}t|| d S )Nr   )defaultdictrA   r   r   )collectionsr7  r.   r0   r3  r2  r   Zto_dictr   r   r   r4   rn   )	r6   r   r7  r~   kvdctr   r9   r:   r:   r;   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   rk   )r.   r/   r   r4   Zassert_numpy_array_equalr1   r6   r9   r8   r:   r:   r;   test_constructor_dict_block  s    
z5TestDataFrameConstructors.test_constructor_dict_blockc                 C   s   dddddddd}t |td	}t|d
k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 )Nr%   r&   r   r   r   3)r   r   r@  r   r)   r'   rA   r   )r   r   r   r2   r*   r.   r   r   )r6   	test_datar   r:   r:   r;   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}d}tjt	|d t
|td}W 5 Q R X t|dksnt|d jtjkst|d jtjkstd S )	Nr0     r   r   rM   r)   r   rA   )r2  r   rm   r4   ZmakeStringIndexr.   r   randnr   r   r   r   r   r2   r*   r   r   )r6   rA  rW   r   r:   r:   r;   test_constructor_dict_cast2  s    z5TestDataFrameConstructors.test_constructor_dict_cast2c                 C   s2   ddt jdi}t|}t|d d ts.td S )NZCol1zA String)ZRow1Row2rF  )r.   r0   r   rf   r   r2   )r6   r   r8   r:   r:   r;   !test_constructor_dict_dont_upcast  s    z;TestDataFrameConstructors.test_constructor_dict_dont_upcastc                 C   s<   t ddgddggddgddgd}t|d d ts8td S )Nr%   r&   r   r   r   )r   rf   r   r2   )r6   dmr:   r:   r;   "test_constructor_dict_dont_upcast2  s    "z<TestDataFrameConstructors.test_constructor_dict_dont_upcast2c                 C   s<   ddd}t |}t dd | D }tj||dd d S )N)r%   r&   r'   )r   rj   r\   r   c                 S   s   i | ]\}}|t |qS r:   )r   r_   r9  r:  r:   r:   r;   r     s      zMTestDataFrameConstructors.test_constructor_dict_of_tuples.<locals>.<dictcomp>Fcheck_dtype)r   r3  r4   rn   r6   r~   rH   r9   r:   r:   r;   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 )	Nr'   r\   r   r   r%   r&   r   rj   rm   r   r4   rn   rM  r:   r:   r;   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 )Nr'   r   r   r%   r&   )iterrm   reversedr   r4   rn   rM  r:   r:   r;   "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 rr   r:   r   r:   r:   r;   rx     s     zPTestDataFrameConstructors.test_constructor_dict_of_generators.<locals>.<genexpr>r'   r   r   r%   r&   )rm   rR  r   r4   rn   rM  r:   r:   r;   #test_constructor_dict_of_generators  s    *z=TestDataFrameConstructors.test_constructor_dict_of_generatorsc                 C   s  dd }ddddddd	dd
dddd}t | }t|}tdd |D tdd |D dj}t|j|_||| 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}||| d S )Nc                 S   s   t j| |dddddS )NT)rL  check_index_typecheck_column_typeZcheck_names)r4   rn   )rH   r9   r:   r:   r;   check  s    zITestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.checkr   r%   r&   )r   r   r   jrZ  r   r\   rj   r         	   ))r   r   r  )r   r   c                 S   s   g | ]}|d  qS r%   r:   r^   r:   r:   r;   ra     s     zNTestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   s   g | ]}|d  qS r   r:   r^   r:   r:   r;   ra     s     r   g     ^@o   )ro   rX  rY  r[  zc                 S   s   g | ]}|d  qS r_  r:   r^   r:   r:   r;   ra     s     c                 S   s   g | ]}|d  qS r`  r:   r^   r:   r:   r;   ra     s     F)Ztupleize_colsr   )sortedr3  r   r   r  Tr   insertr   r   rl   )r6   rW  r   Z_dr8   r9   r:   r:   r;    test_constructor_dict_multiindex  s.    


 
 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 r&   r:   r_   r   srq   r:   r;   r     s      ziTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<dictcomp>	enumeraterj  Zdates_as_strrj  r;   create_data  s    zUTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S   s   t | dS )Nz%Y-%m-%d)r   strptimer`   r:   r:   r;   rt     ru   zRTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>r   r   r%   r&   r'   r&   r   r\   c                 S   s   g | ]}t |qS r:   )r   )r_   dtr:   r:   r;   ra     s     zTTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<listcomp>r   )r.   rP   r   r   r4   rn   )	r6   rn  Zdata_datetime64Zdata_datetimeZdata_Timestampr9   Zresult_datetime64Zresult_datetimeZresult_Timestampr:   rm  r;   &test_constructor_dict_datetime64_index  s&    

z@TestDataFrameConstructors.test_constructor_dict_datetime64_indexc           	   	      s   ddddg  fdd}|dd }|d	d }|d
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 |}t |}t|| t|| t|| d S )Nr%   r&   r'   r   c                    s    fddt D S )Nc                    s"   i | ]\}}| |d | iqS rg  r:   rh  rj  r:   r;   r   $  s      zjTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.create_data.<locals>.<dictcomp>rk  rj  Z	td_as_intrj  r;   rn  #  s    zVTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.create_datac                 S   s   t | dS Nr  )r.   timedelta64rp  r:   r:   r;   rt   &  ru   zSTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<lambda>c                 S   s
   t | dS )N)days)r   rp  r:   r:   r;   rt   '  ru   c                 S   s
   t | dS ru  r   rp  r:   r:   r;   rt   (  ru   r   rq  r\   c                 S   s   g | ]}t |d qS )r  rx  )r_   tdr:   r:   r;   ra   1  s     zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<listcomp>r   r   )	r6   rn  Zdata_timedelta64Zdata_timedeltaZdata_Timedeltar9   Zresult_timedelta64Zresult_timedeltaZresult_Timedeltar:   rt  r;   '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-01rJ   z2012-04r[   freqz
2012-02-01z
2012-03-01r  r   r   r   )r#  ZPeriodIndexr   r*   r2   r   rD   rF   r   r:   r:   r;   test_constructor_period_dict;  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   r   r+  )r   r*   r2   r4   rn   )r6   Zea_scalar_and_dtypeZ	ea_scalarZea_dtyper8   r9   r:   r:   r;   &test_constructor_dict_extension_scalarH  s
    z@TestDataFrameConstructors.test_constructor_dict_extension_scalarz
data,dtypez2020-01rj   )leftrightr#   r  z
2011-01-01
US/Easterntzc                 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   r%   r   r   r+  r&   r)   r   )r   r*   r2   r#  r/   r4   rn   )r6   r~   r*   r8   r7   r9   r:   r:   r;   &test_constructor_extension_scalar_dataQ  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/2000rj   r)  r   rk   r   )r#  period_ranger   r.   r   rD  rl   r   r  
setdefaultr4   rn   rd  )r6   r   r8   r~   r4  rowrH   r:   r:   r;   "test_nested_dict_frame_constructorh  s    



z<TestDataFrameConstructors.test_nested_dict_frame_constructorc              	   C   sj  |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|dddgddgtjd}|tjkr|j	j
tjkstn8|   st|j	j
tjkstt|j	 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sFtt|d}t|jdksftd S )Nr  r)   r   rA   r   r%   r&   r   r'   )r'   rl   r   r*   r.  rM   r/  r,  r-  Tr   r   rk   )r   r'   r   )r'   r   )r   r   r   r   r2   rl   r.   r#   r   r1   r*   r   r   r   rS   rT   rU   r4   r   r   rm   )r6   r   matr   rW   r:   r:   r;   _check_basic_constructor|  s@    
  $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   r%   r   r   r&   )r  r.   r   r   r   r2   r   r:   r:   r;   test_constructor_ndarray  s    z2TestDataFrameConstructors.test_constructor_ndarrayc                 C   s   |  tj tjdtd}d|d< d|d< t|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  r)   r   r   r   r%   r&   r   rA   r   r%   r&   r   )	r  ma
masked_allr   r   r2   r.   r   asarray)r6   r  r   r:   r:   r;   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 |jjtjkstt |}d|d< d|d< t|dddgddgd}d|d dd kst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sdtt|jd	ksxt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st|d d dkstd S )Nr  r)   r   rA   r   r%   r&   r   r'   r  r   r  r=   z'datetime64\[ns\] values and dtype=int64rM   ignorezelementwise comparison failed)categorymessager(   TF)r  r  r   r   r   r   r2   rl   r.   r   r  r   r1   r*   r   r   r4   r   r   warningscatch_warningsfilterwarningsDeprecationWarningr#   rc   r   rD   )r6   r  r   Zmat2rW   r:   r:   r;   %test_constructor_maskedarray_nonfloat  sh    

   

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)r&   r&   r)   r   rA   r%   r&   r   r   r  r   )
r  r  r   Zharden_maskr   r.   r0   r4   rn   r   )r6   Zmat_hardrH   r9   r:   r:   r;   %test_constructor_maskedarray_hardened  s$    z?TestDataFrameConstructors.test_constructor_maskedarray_hardenedc              	      s   t jjt jjdddgddgd d  tj tt	 t
 td}W 5 Q R X t
t jdtddd	gd
}t|| t
 fdd jjD td}t|| d S )Nrj   )r   <f8)pricer  r)   Fmaskrj   r&   r   r  rk   c                    s   i | ]}| | qS r:   r:   )r_   r-   r}   r:   r;   r   ;  s      zSTestDataFrameConstructors.test_constructor_maskedrecarray_dtype.<locals>.<dictcomp>)r.   r  r/   r   rc   mrecordsZ	mrecarrayr4   r   r   r   r   rn   r*   r   )r6   rH   r9   Zaltr:   r}   r;   %test_constructor_maskedrecarray_dtype+  s     z?TestDataFrameConstructors.test_constructor_maskedrecarray_dtypec              
   C   s  t jtjddd}dtddgfdtddgfd	td
dgfg}|d d  D ]*\}}|d| tjj|ddgdf qR|dtj	df |dtjjddgddf t
|dD ]}t| \}}tj||d}dd |D }tt t|}	W 5 Q R X t||d}
||	|
 tt t||d d d d}	W 5 Q R X t||d d d d}
||	|
 tt t|ddgd}	W 5 Q R X t||ddgd}
||	|
 qd S )NT)rU  rV  r         ?r   r   r%   r&   strr   defZmasked1_Fr  r  rg  Zmasked_noner   g      @r'   )r   c                 S   s(   i | ] \}}|t |d r | n|qS )filled)hasattrr  rJ  r:   r:   r;   r   X  s      zHTestDataFrameConstructors.test_constructor_mrecarray.<locals>.<dictcomp>rk   r   r   r   )	functoolspartialr4   rn   r.   r/   appendr  Zmasked_arrayr  	itertoolscombinationsr   r  Z
fromarraysr   r   r   )r6   Zassert_fr_equalre   r-   r7   combr   r~   ZmrecsrH   r9   r:   r:   r;   test_constructor_mrecarray>  s>      
 
z4TestDataFrameConstructors.test_constructor_mrecarrayc                 C   s   t g d}|jjdkstd S )Nr   r   )r   r1   shaper2   r?   r:   r:   r;   test_constructor_corner_shapen  s    
z7TestDataFrameConstructors.test_constructor_corner_shapez%data, index, columns, dtype, expectedr   r   r   r   r   r   r   c                 C   s"   t ||||}|jj|kstd S rr   r   )r6   r~   r   rl   r*   r9   r8   r:   r:   r;   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   r)   )r   r*   r2   )r6   r~   Zinput_dtypeZexpected_dtyper8   r:   r:   r;   0test_constructor_dtype_nullable_extension_arrays  s    zJTestDataFrameConstructors.test_constructor_dtype_nullable_extension_arraysc                 C   s   dddddd}t |tdd}|d	 jtjk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 )Nr%   Tr   y              @r   )r   r   r   complexrD   r   r   r   r   r   r  rD   )
r   r.   rb   r*   r#   r2   r   r   r   r   )r6   r~   r8   r:   r:   r;   !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 indexrM   F)
r   r.   r   rD  r1   r4   rn   rS   rT   rU   )r6   r8   r   r:   r:   r;   #test_constructor_arrays_and_scalars  s
    z=TestDataFrameConstructors.test_constructor_arrays_and_scalarsc                 C   s8   t |}t|| t |tjd}|jjtjks4td S Nr)   )r   r4   rn   r.   r#   r1   r*   r2   )r6   r   r8   Z	df_castedr:   r:   r;   test_constructor_DataFrame  s    z4TestDataFrameConstructors.test_constructor_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   r   r&   r   rA   )r   r&   rk   r   r&   r   )r   r   r   r   r)   r%   z(could not convert string to float: 'foo'rM   r   rl   r*   r   )r.   r   rD  r   rb   r1   ndimr2   r  r/   rD   rQ   rS   rT   rU   r   r   r4   rn   r   r   r   r   rl   r*   )r6   r   r7   rH  r  rW   r:   r:   r;   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 )Nr   r   rA   rk   c                   s   s   d S rr   r:   r:   r:   r:   r;   	empty_gen  s    zHTestDataFrameConstructors.test_constructor_empty_list.<locals>.empty_genr   )r6   r8   r9   r  r:   r:   r;   test_constructor_empty_list  s    
z5TestDataFrameConstructors.test_constructor_empty_listc                 C   s|   t ddgddggddgd}t|d s,t|d jtjks@tt dtd	i}d
d td	D }t |}t	|| d S )Nr%   r   r&   r   numr  r  r   r   c                 S   s   g | ]}t |qS r:   r.   r/   r^   r:   r:   r;   ra     s     zLTestDataFrameConstructors.test_constructor_list_of_lists.<locals>.<listcomp>)
r   r   r2   r*   r.   r   rb   rm   r4   rn   )r6   r8   r9   r~   rH   r:   r:   r;   test_constructor_list_of_lists  s    z8TestDataFrameConstructors.test_constructor_list_of_listsc                 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cdefr%   r&   r'   r   rj   r\   r\  rk   )r   r   r   Zfrom_arraysr4   rn   )r6   re   rH   r  r9   r:   r:   r;   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 4rM   r%   r&   r'   r   rj   r\   r\  rk   r   rS   rT   rU   r   r6   re   rW   r:   r:   r;   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 lengthrM   r%   r&   r'   r   rj   r\   r\  rk   r  r  r:   r:   r;   2test_constructor_unequal_length_nested_list_column   s    zLTestDataFrameConstructors.test_constructor_unequal_length_nested_list_columnc                 C   sj   G dd dt j}|ddg|ddgg}ddg}t||d	}tddgddgg|d	}tj||d
d d S )Nc                   @   s$   e Zd Zdd Zdd Zdd ZdS )zPTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainerc                 S   s
   || _ d S rr   )_lst)r6   lstr:   r:   r;   __init__  s    zYTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__init__c                 S   s   | j |S rr   )r  __getitem__r6   nr:   r:   r;   r    s    z\TestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__getitem__c                 S   s
   | j  S rr   )r  __len__r  r:   r:   r;   r    s    zXTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__len__N)__name__
__module____qualname__r  r  r  r:   r:   r:   r;   DummyContainer  s   r  r%   r   r&   r   r  r  rk   FrK  )r   Sequencer   r4   rn   )r6   r  Zlst_containersrl   rH   r9   r:   r:   r;   test_constructor_sequence_like	  s    
z8TestDataFrameConstructors.test_constructor_sequence_likec                 C   s   dd l }td| dtdi}tdttdi}tj||dd tttdttdg}t| dtd| dtdg}tj||dd d S )Nr   r   r   r   FrK  )r/   r   rm   r   r4   rn   )r6   r/   rH   r9   r:   r:   r;   test_constructor_stdlib_array  s    $z7TestDataFrameConstructors.test_constructor_stdlib_arrayc                 C   s,   t td}t ttd}t|| d S Nr   r   rm   r   r4   rn   r  r:   r:   r;   test_constructor_range*  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:   r;   test_constructor_list_of_ranges0  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dd ZdS )zATestDataFrameConstructors.test_constructor_iterable.<locals>.Iterc                 s   s   t dD ]}dddgV  qd S )Nr   r%   r&   r'   )rm   )r6   r   r:   r:   r;   __iter__8  s    zJTestDataFrameConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)r  r  r  r  r:   r:   r:   r;   Iter7  s   r  r%   r&   r'   r   r   )r6   r  r9   rH   r:   r:   r;   test_constructor_iterable5  s    
z3TestDataFrameConstructors.test_constructor_iterablec                 C   s0   t ttd}t ttd}t|| d S r  r   rQ  rm   r   r4   rn   r  r:   r:   r;   test_constructor_iterator@  s    z3TestDataFrameConstructors.test_constructor_iteratorc                 C   sH   t ttdttdg}t ttdttdg}t|| d S r  r  r  r:   r:   r;   "test_constructor_list_of_iteratorsE  s    z<TestDataFrameConstructors.test_constructor_list_of_iteratorsc                 C   s   dd t dD }dd t dD }ttt dtt dg}t||g}t|| dd t dD }t|}tt ddd}tj||dd	 d S )
Nc                 s   s   | ]
}|V  qd S rr   r:   r   r:   r:   r;   rx   M  s     zGTestDataFrameConstructors.test_constructor_generator.<locals>.<genexpr>r   c                 s   s   | ]
}|V  qd S rr   r:   r   r:   r:   r;   rx   N  s     c                 s   s   | ]}|d gV  qdS )r   Nr:   r   r:   r:   r;   rx   T  s     r   r+   FrK  )rm   r   r   r4   rn   )r6   Zgen1Zgen2r9   rH   genr:   r:   r;   test_constructor_generatorJ  s    z4TestDataFrameConstructors.test_constructor_generatorc                 C   s&   t i g}t dgd}t|| d S )Nr   r   r   r  r:   r:   r;   test_constructor_list_of_dictsY  s    
z8TestDataFrameConstructors.test_constructor_list_of_dicts	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 )Nr&   r%   r   r   rk   r   )r6   r  r9   r~   rH   r:   r:   r;   ,test_constructor_ordered_dict_preserve_order_  s    


zFTestDataFrameConstructors.test_constructor_ordered_dict_preserve_orderc                 C   s   | }d|d< d|d< | }d|d< d|d< ddd}t ddgddggddgd}t ||g}t|| t ddgddgddggddgd}t |||g}t|| d S )Nr&   r   r%   r   r  rk   r   )r6   r  Zrow_oneZrow_twoZ	row_threer9   rH   r:   r:   r;   0test_constructor_ordered_dict_conflicting_ordersr  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   r  r   r:   r:   r;   ra     s     z[TestDataFrameConstructors.test_constructor_list_of_series_aligned_index.<locals>.<listcomp>r'   r   r%   r&   )r   r   r   r   r   r   0r   r   r   rO  )r6   seriesrH   r9   r:   r:   r;   -test_constructor_list_of_series_aligned_index  s    zGTestDataFrameConstructors.test_constructor_list_of_series_aligned_indexc                 C   sJ   G dd dt }ddd}||g}|g}t|}t|}t|| d S )Nc                   @   s   e Zd ZdS )zTTestDataFrameConstructors.test_constructor_list_of_derived_dicts.<locals>.CustomDictNr  r  r  r:   r:   r:   r;   
CustomDict  s   r  r  r'   r   )r2  r   r4   rn   )r6   r  r   Zdata_customr~   Zresult_customrH   r:   r:   r;   &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   r]  r   z%All arrays must be of the same lengthrM   )r.   r   rD  rS   rT   rU   r   )r6   r~   r:   r:   r;   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 )Nr'   r   r   r   FrK  )r   rm   r   r4   rn   )r6   rG   r8   r9   r:   r:   r;   test_constructor_scalar  s    z1TestDataFrameConstructors.test_constructor_scalarc                 C   s"   t |d |jdgd}|  d S )Nr   r   )r   r   r   r6   r   r8   r:   r:   r;    test_constructor_Series_copy_bug  s    z:TestDataFrameConstructors.test_constructor_Series_copy_bugc              	   C   s   i }dddd|d< t 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 )Nr%   r&   r'   )r   r   r'  r   r   r   Zquxr'  r   r   rA   zambiguous orderingrM   r   r   r   r   )
r   r   r   Zis_monotonicr2   rS   rT   rU   r4   rn   rM  r:   r:   r;   &test_constructor_mixed_dict_and_Series  s     ""z@TestDataFrameConstructors.test_constructor_mixed_dict_and_Seriesc                 C   s8   ddgdg}t |}t ddgddgg}t|| d S )Nr%   r&   r'   r   r'   r   r   rM  r:   r:   r;    test_constructor_mixed_type_rows  s    z:TestDataFrameConstructors.test_constructor_mixed_type_rowsztuples,lists)r:   r:   r'   r   r\   c                 C   s    t |}t |}t|| d S rr   r   )r6   r  listsrH   r9   r:   r:   r;   test_constructor_tuple  s    z0TestDataFrameConstructors.test_constructor_tuplec                 C   s4   t dddgi}t dtddgi}t|| d S )Nr   r  r  r   r   r4   rn   r  r:   r:   r;   test_constructor_list_of_tuples  s    z9TestDataFrameConstructors.test_constructor_list_of_tuplesc                 C   s   ddl m} |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 )Nr   )
namedtupleZPandasabr%   r'   r&   r   r   )ro   rb  ro   rb  rk   )r8  r  r   r   r4   rn   )r6   r  Znamed_tupler  r9   rH   r:   r:   r;   $test_constructor_list_of_namedtuples  s    z>TestDataFrameConstructors.test_constructor_list_of_namedtuplesc                 C   sd   ddl m} |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 )	Nr   make_dataclassPointr`   ro   r'   r%   r`   ro   )dataclassesr  r   r   r4   rn   )r6   r  r  r~   r9   rH   r:   r:   r;   $test_constructor_list_of_dataclasses  s    z>TestDataFrameConstructors.test_constructor_list_of_dataclassesc                 C   s   ddl m} |ddtfdtfg}|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  r`   ro   HLinex0x1r'   r%   )r`   ro   r  r  )r  r  r   r   r.   r0   r4   rn   )r6   r  r  r  r~   r9   rH   r:   r:   r;   7test_constructor_list_of_dataclasses_with_varying_types  s    "zQTestDataFrameConstructors.test_constructor_list_of_dataclasses_with_varying_typesc              	   C   sb   ddl m} |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  r`   ro   z0asdict() should be called on dataclass instancesrM   r%   r  )	r  r  r   rS   rT   	TypeErrorreescaper   )r6   r  r  rW   r:   r:   r;   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 )Nr%   r   r\  r   )FirstSecondThirdFourthrj   r&   r  r]  )r
  r	  r  r  r\   r'   r&  r^     r  )r
  r	  r  r  YYYXXX)r	  r
  r  r  r  r  r   )r6   r~   r9   rH   r:   r:   r;   #test_constructor_list_of_dict_order  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 )Nr%   r&   r'   r   r   r   r`   r   r   r   rB   r  r   z<Shape of passed values is \(10, 1\), indices imply \(10, 2\)rM   rk   r-   r*   )r`   	Unnamed 0r  r   )r   r   rl   r2   r4   r   r   r.   r   rD  rn   rm   rS   rT   rU   rD   rd  )r6   r   r8   r7   ri  r9   rW   s1r:   r:   r;   test_constructor_Series_named&  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 )Nrj   r   rB   r%   rk   )r   rm   r4   rn   r   to_framer   r2   )r6   s0r  r:   r:   r;   )test_constructor_Series_named_and_columnsL  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 )Nr%   r&   r'   r   r   r   r`   r   r   r   )
r   r   r   r   rl   r2   r4   rn   r   r   )r6   r  s2Zother_indexZdf1Zexp1r   Zexp2r:   r:   r;   +test_constructor_Series_differently_indexedZ  s    zETestDataFrameConstructors.test_constructor_Series_differently_indexedz#name_in1,name_in2,name_in3,name_out)rG   rG   rG   rG   )rG   rG   NN)rG   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   rB   r   ec                 S   s$   i | ]\}}|t d ddg|dqS )r   r%   r&   r   r]   )r_   r   r   r:   r:   r;   r     s     zJTestDataFrameConstructors.test_constructor_index_names.<locals>.<dictcomp>r`   ro   rb  r   r%   r&   )r`   ro   rb  r   )r   r   r   r.   r0   r4   rn   )
r6   Zname_in1Zname_in2Zname_in3Zname_outindicesr  rH   Zexp_indr9   r:   r:   r;   test_constructor_index_namesn  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 )Nrj   r'   r   )r   r   rl   r   rd   r4   r   r   )r6   r   r   rl   rH   r:   r:   r;   test_constructor_manager_resize  s
    z9TestDataFrameConstructors.test_constructor_manager_resizec              	   C   s   t |d t|d dddgd}t||jd d ddgf  d}tjt|d( t |d t|d d d d W 5 Q R X d S )Nr   rA   r   rk   zdoes not match index lengthrM   )r   r   r4   rn   r   rS   rT   rU   )r6   r   r8   rW   r:   r:   r;   %test_constructor_mix_series_nonseries  s     z?TestDataFrameConstructors.test_constructor_mix_series_nonseriesc                 C   sB   t tjdgddggtjd}t tjdgddgg}t|| d S )Nr%   r   r)   )r   r.   r0   r#   r4   rn   r$  r:   r:   r;   %test_constructor_miscast_na_int_dtype  s    z?TestDataFrameConstructors.test_constructor_miscast_na_int_dtypec                 C   s^   t ddggddgd}t ddgg}ddg|_t|| t jdgddgd}t|| d S )Nr]  rj   r   rk   )r]  rj   )r   rl   r4   rn   Zfrom_records)r6   r8   ZedfZidfr:   r:   r;   "test_constructor_column_duplicates  s    
z<TestDataFrameConstructors.test_constructor_column_duplicatesc                 C   s   t ddgddgtd}t ddgddgtd}t|| t ddgddgtjd}t|| t ddgddgtjd}t|| t ddgddgdd}t|| d S )Nr   r%   r  ZU5)r   rD   r  r4   rn   r.   Zstr_Zunicode_r>  r:   r:   r;   (test_constructor_empty_with_string_dtype  s    zBTestDataFrameConstructors.test_constructor_empty_with_string_dtypec                 C   s.   t g dg|d}t dg|d}t|| d S )NZc1r  rl   r*   r   )r6   Znullable_string_dtyper9   r8   r:   r:   r;   ,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        r%   r&   r'   r   r   r   r   r   r   r#   r)   z*DataFrame constructor not properly called!rM   rk   zincompatible data and dtype)r   r4   rn   r.   r   r  r   r   rl   r/   rD   rS   rT   rU   r  r   )r6   r8   rW   r:   r:   r;   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 )Nr=   r%   r   r   Z20010101  r&   r   )r   rA   r   r  Er   r   r#   ZABCDEr   r   r   r   r)   r   rD   )r.   r*   int_r-   Zfloat_r   r   r   r   rb   r   r   r   r4   r5   r/   )r6   ZintnameZ	floatnameZdatetime64nameZ
objectnamer8   rH   r9   r:   r:   r;   test_constructor_with_datetimes  s    

     





     





z9TestDataFrameConstructors.test_constructor_with_datetimesc                 C   s6   t dddd}dd |D }t|}|jdks2td S )Nr(  r  r   startr|  r*  c                 S   s   g | ]}|  qS r:   to_pydatetimer_   tsr:   r:   r;   ra   3  s     zNTestDataFrameConstructors.test_constructor_with_datetimes1.<locals>.<listcomp>r=   )r   r   r*   r2   )r6   ind	datetimesZ
datetime_sr:   r:   r;    test_constructor_with_datetimes1/  s    z:TestDataFrameConstructors.test_constructor_with_datetimes1c                 C   sv   t dddd}dd |D }dd |D }t|dgd	}||d
< |j}ttdtdgdd
gd}t|| d S )Nr(  r  r   r-  c                 S   s   g | ]}|  qS r:   r/  r1  r:   r:   r;   ra   :  s     zNTestDataFrameConstructors.test_constructor_with_datetimes2.<locals>.<listcomp>c                 S   s   g | ]}|  qS r:   )r   r1  r:   r:   r;   ra   ;  s     r4  rk   datesdatetime64[ns]rD   r   )r   r   r   r   r.   r*   r4   r5   )r6   r3  r4  r6  r8   rH   r9   r:   r:   r;    test_constructor_with_datetimes27  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    r%   zEnd Dater   r   r   datetime64[ns, US/Eastern])pytztimezoneZlocalizer   r   iatr2   r4   r5   r   r   )r6   r  rr  r8   r:   r:   r;    test_constructor_with_datetimes3E  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20130101r'   r)  r   r   UTCr*  r  r  )r   r   r=  r  r2   r  )r6   drr8   r:   r:   r;    test_constructor_with_datetimes4W  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/2011rj   10sr  r*  r|  r  r   TZdropr   r   Z	to_seriesZreset_indexr4   rn   )r6   r   r9   r8   r:   r:   r;    test_constructor_with_datetimes5d  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 )
NrD  rj   rE  r  rF  r*  r|  r   TrG  rH  )r6   r   Zi_no_tzr8   r9   r:   r:   r;    test_constructor_with_datetimes6q  s
    z:TestDataFrameConstructors.test_constructor_with_datetimes6r7   rJ   c                 C   s*   t |j}ttdg}t|| d S )Nr7  )r   r   r   r.   r*   r4   r5   )r6   r7   rH   r9   r:   r:   r;   %test_constructor_datetimes_with_nullsy  s    
z?TestDataFrameConstructors.test_constructor_datetimes_with_nullsorderKr   r   Fr*   zdatetime64[M]zdatetime64[D]zdatetime64[h]zdatetime64[m]zdatetime64[s]zdatetime64[ms]zdatetime64[us]r7  c                 C   s\   t jdddgdddgg||d}t|}tdddgdddgg}|j|d}t|| d S )	Nz
2015-01-01z
2015-01-02z
2015-01-03z
2017-01-01z
2017-01-02z
2017-02-03r*   rM  r)   )r.   r/   r   r   r4   rn   r6   rM  r*   nar8   r9   r:   r:   r;   !test_constructor_datetimes_non_ns  s    z;TestDataFrameConstructors.test_constructor_datetimes_non_nsztimedelta64[D]ztimedelta64[h]ztimedelta64[m]ztimedelta64[s]ztimedelta64[ms]ztimedelta64[us]timedelta64[ns]c                 C   s   t jt ddt ddgt ddt ddgg||d}t|d}ttddtddgtddtddgg}t|| d S )Nr%   r  r&   r   rj   rP  rT  )r.   r/   rv  r   r   r   r4   rn   rQ  r:   r:   r;   !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 )rj   )r.   rb   r^   r:   r:   r;   ra     s     zSTestDataFrameConstructors.test_constructor_for_list_with_dtypes.<locals>.<listcomp>rj   r   c                 S   s    g | ]}t jt d ddqS )rj   r"   r)   )r.   r/   rb   r^   r:   r:   r;   ra     s     r"   r   l        l       r   r#   r%   r&   r   r   r   r'   r   r   r\  g333333?gffffff@gffffff@g333333@r  c                 S   s   g | ]}t d ddqS )  r%   )r   r   r:   r:   r;   ra     s     r=  )r   r   r   r   r  rD   r7  Zabcde)r   rm   r   r   r.   r*   r4   r5   r3   r2   r   )r6   r8   rH   r9   r:   r:   r;   %test_constructor_for_list_with_dtypes  sR    


	
z?TestDataFrameConstructors.test_constructor_for_list_with_dtypesc                 C   s@   t |dd}d|d< |d dk s(t|d dk r<td S )NTr   rj   r   )r   r   r2   )r6   r   Zcopr:   r:   r;   test_constructor_frame_copy  s    z5TestDataFrameConstructors.test_constructor_frame_copyc                 C   s\   t |j}d|jd< |jd dk s*tt |jdd}d|jd< |jd dk rXtd S )Nrj   TrX  r\   )r   r1   r   r2   r  r:   r:   r;   test_constructor_ndarray_copy  s    


z7TestDataFrameConstructors.test_constructor_ndarray_copyc                 C   sB   |j }td|d idd}d|d d d < |d dk r>td S )Nr   TrX  rj   )r   r   r   r2   )r6   r   r  r8   r:   r:   r;   test_constructor_series_copy  s    z6TestDataFrameConstructors.test_constructor_series_copyc                 C   s   dd }t dddgdddggdtjgd	}|| t dddgdddggd
dtjgd}|| t ddddgddddggtjd
dtjgd}|| t ddddgddddggtjd
dtjgd}|| t ddddgddddggtjdddgd}|| d S )Nc              	   S   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$rM   r%   )rm   r   rl   r3   r.   rb   r   rS   rT   KeyErrorr   r0   r4   r5   rn   )r8   r   Zindexerr:   r:   r;   rW  '  s     0zBTestDataFrameConstructors.test_constructor_with_nas.<locals>.checkr%   r&   r'   r   rj   r\   r   g?g@rk   r   r\  r'  r   )r   r.   r0   )r6   rW  r8   r:   r:   r;   test_constructor_with_nas#  s    "$, *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   Fr%   )r   r.   r0   r*   r   r2   )r6   r   r:   r:   r;   &test_constructor_lists_to_object_dtypeJ  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   rA   r   r   r%   r  r)   rq  )	r   r.   r/   rQ   Zbroadcast_tor   r*   r4   rn   )r6   catr7   rH   r9   r:   r:   r;   *test_constructor_ndarray_categorical_dtypeP  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  r)   r,   r   r   rB   )r   r   r   r4   r5   r  )r6   r8   r9   ri  rH   r:   r:   r;   test_constructor_categoricalZ  s    z6TestDataFrameConstructors.test_constructor_categoricalc              	   C   sX   d}t jt|d tttdg}W 5 Q R X tdttdddi}t || d S )N%will be changed to match the behaviorrM   r   r   r  r)   r4   r   r   r   r   r   r   rn   r6   rW   r8   r9   r:   r:   r;   -test_construct_from_1item_list_of_categoricalq  s
    zGTestDataFrameConstructors.test_construct_from_1item_list_of_categoricalc              	   C   sx   d}t jt|d" tttdttdg}W 5 Q R X tttdddttdddddd	gd
}t || d S )Nrb  rM   r   Zabdr  r)   r+   r   r%   rk   rc  rd  r:   r:   r;   (test_construct_from_list_of_categoricalsy  s    &zBTestDataFrameConstructors.test_construct_from_list_of_categoricalsc              	   C   sl   d}t jt|d tttdtdg}W 5 Q R X tttdddtdddd	gd
}t || d S )Nrb  rM   r   r  r  r)   r+   r   r%   rk   rc  rd  r:   r:   r;   %test_from_nested_listlike_mixed_types  s    " z?TestDataFrameConstructors.test_from_nested_listlike_mixed_typesc              
   C   sf   d ddg}d}tjt|d< tjt|d" ttt	dtt	dg W 5 Q R X W 5 Q R X d S )NrL   z:Shape of passed values is \(6, 2\), indices imply \(3, 2\)z;Passed arrays should have the same length as the rows Indexrb  rM   r   Zabdefg)
rR   rS   rT   rU   r4   r   r   r   r   r   )r6   rW   Zmsg2r:   r:   r;   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 )Nr%   r&   r'   r  r)   r   r   r   Z20000101r)  )r1   
categoriesr`   r   )r   r   r4   r5   r   r   r.   r0   r   r   rn   )r6   r3  r   resr   r9   r8   r:   r:   r;   #test_constructor_categorical_series  s     z=TestDataFrameConstructors.test_constructor_categorical_seriesc                 C   s,   t dddgidg|d}|jj|ks(td S )Nr   r%   r&   r   r%  )r   r   r*   r2   r6   r*   r~   r:   r:   r;   %test_check_dtype_empty_numeric_column  s    z?TestDataFrameConstructors.test_check_dtype_empty_numeric_columnc                 C   s.   t dddgidg|d}|jjjdks*td S )Nr   r%   r&   r   r%  rD   )r   r   r*   r-   r2   rl  r:   r:   r;   $test_check_dtype_empty_string_column  s    z>TestDataFrameConstructors.test_check_dtype_empty_string_columnc                 C   sL   t dtd j}t dti}t|| tt dtdj}t|| d S )Nr   r  )r   rD   r  r   r4   r5   r   r  r:   r:   r;   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   r%   r&   r'   r   r#   r)   rj   r%  )r   rm   r4   rn   )r6   r*   r9   rH   r:   r:   r;   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:   r;   List  s   rq  r%   r&   r'   r   rj   r\   )r   r   r4   rn   )r6   rq  r9   rH   r:   r:   r;   test_frame_from_list_subclass  s    $z7TestDataFrameConstructors.test_frame_from_list_subclassextension_arrZaabbcz1/1/2017z1/1/2018)r.  endr|  c                 C   s$   t t|}t |}t|| d S rr   r  )r6   rs  r9   rH   r:   r:   r;   %test_constructor_with_extension_array  s    z?TestDataFrameConstructors.test_constructor_with_extension_arrayc                 C   s^   t  }||f}t|ttdtddi|gd}tdddgtt|gd}t|| d S )Nr'   r   rk   r   r%   r&   )r   todayr   r   rm   r   r4   rn   )r6   r:  tuprH   r9   r:   r:   r;   *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tjdtjddgdddddggdddddgd}t|| d S )N'   r\   r   ZfemaleZmaleunknownr   r&            frZ   g     C@g      @r=  r   g      c@g     @n@g     b@rk   )r   r   r   r.   r/   r0   r4   rn   )r6   r  r  rH   r9   r:   r:   r;   /test_construct_with_two_categoricalindex_series	  s    zITestDataFrameConstructors.test_construct_with_two_categoricalindex_seriesc                 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 )Nr9  r^  r   r]  rC  r   )DateM8[us])Forecastingr  r)   r  r  r%   )r   r.   r/   r   r2   r   rf   r   )r6   r6  r7   r8   ri  r:   r:   r;   test_from_M8_structured	  s    "z1TestDataFrameConstructors.test_from_M8_structuredc                 C   s>   G dd dt }td|dddddgi}|j jdks:td S )Nc                   @   s   e Zd ZdS )zOTestDataFrameConstructors.test_from_datetime_subclass.<locals>.DatetimeSubclassNr  r:   r:   r:   r;   DatetimeSubclass&	  s   r  r   i  r%   r7  )r   r   r*   r2   )r6   r  r~   r:   r:   r;   test_from_datetime_subclass$	  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 )	Nz
2016-01-01r'   rC   rA  z@Shape of passed values|Passed arrays should have the same lengthrM   r   r   )r   rS   rT   rU   r   rm   )r6   dtirW   r:   r:   r;   (test_with_mismatched_index_length_raises,	  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:50rE  r{  r   rA   r=   )
r   r.   r  r   r   rD  r   Z
issubdtyper*   r2   )r6   r   r6  r8   r:   r:   r;   !test_frame_ctor_datetime64_column3	  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`   ro   r   c                 S   s   g | ]}t |qS r:   r  r^   r:   r:   r;   ra   ?	  s     zYTestDataFrameConstructors.test_dataframe_constructor_infer_multiindex.<locals>.<listcomp>r   rk   )	r   r.   r   rD  rf   r   r   r2   rl   )r6   Zindex_listsZmultir:   r:   r;   +test_dataframe_constructor_infer_multiindex:	  s    zETestDataFrameConstructors.test_dataframe_constructor_infer_multiindex
input_valsr   r   rD  HrJ  rF  c                 C   s6   t d|i|d}t d|id|i}t|| d S )Nr   r)   )r   r   r4   rn   )r6   r  r   rH   r9   r:   r:   r;   test_constructor_list_strG	  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   r)   z1.0z2.0)r   rD   r4   rn   )r6   r   rH   r9   r:   r:   r;   test_constructor_list_str_naZ	  s    z6TestDataFrameConstructors.test_constructor_list_str_nar   c                    sp  t jddg|d t jddg|djjdkr4d S tjddg|dt d|dd	d
  fdd}|s|  djd< djd< |stfddjj	D dkst
dd< |rX jjdkr d  jddkst
d jddksBt
n4 d  jdks(t
d jdksBt
jd dkslt
njd dkslt
d S )Nr%   r&   r)   r'   r   )SU)r   r   r   rX  c                 S   s0   t | tjr| jS t | jtjr(| jjS td S rr   )rf   r.   Zndarraybaser*   Z_ndarrayr  rh   r:   r:   r;   get_basel	  s
    z<TestDataFrameConstructors.test_dict_nocopy.<locals>.get_basec                      sn   t fddjjD dks"tt  fddjjD dksFtt fddjjD dksjtd S )Nc                 3   s   | ]}| kV  qd S rr   r:   r^   r   r:   r;   rx   w	  s     zRTestDataFrameConstructors.test_dict_nocopy.<locals>.check_views.<locals>.<genexpr>r%   c                 3   s(   | ] }t |jtjr| kV  qd S rr   rf   r*   r.   r^   )r   r  r:   r;   rx   y	  s   c                 3   s(   | ] }t |jtjr| kV  qd S rr   r  r^   )r   r  r:   r;   rx   	  s   )sumrd   re   r2   r:   r   r   r   r8   r  r:   r;   check_viewsu	  s    "	z?TestDataFrameConstructors.test_dict_nocopy.<locals>.check_viewsr   r   r+   c                 3   s   | ]}| kV  qd S rr   r:   r^   r  r:   r;   rx   	  s     z=TestDataFrameConstructors.test_dict_nocopy.<locals>.<genexpr>r[   rK   r  )r.   r/   r*   rY   r#  r   r3   r  rd   re   r2   type)r6   r   Zany_nullable_numeric_dtypeZany_numpy_dtyper  r:   r  r;   test_dict_nocopy`	  s.    	

"	z*TestDataFrameConstructors.test_dict_nocopyc                 C   s2   t tddddgd}t dgd}t|| d S )Nr%   r   rB   r   rk   r  r  r:   r:   r;   '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 )Nr%   r&   r'   r   rj   r\   r   r   r   r   rk   )r   r   )r   r   )r   r   )r   r   r  r4   rn   r  r:   r:   r;   test_nested_list_columns	  s     z2TestDataFrameConstructors.test_nested_list_columnsc           
      C   s  t jddd}|jtdd}t|}|jdk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-05r'   r)  r%   r   r%   r'   r   rj   r\   rq  )r#  r  _datar   rD   rQ   r   r  r2   r   r*   r   ZIntervalIndexZfrom_breaksr.   Zr_rd  r4   rn   )
r6   pir~   r8   iiZdata2r   Zdata3r   r9   r:   r:   r;   1test_from_2d_object_array_of_periods_or_intervals	  s     zKTestDataFrameConstructors.test_from_2d_object_array_of_periods_or_intervals)r  r  r  r<   r@   rI   rX   rS   markparametrizeri   rp   r   r   r   r   r   r   r   ry  Zskip_array_manager_invalid_testr   r   Zskipifr   r   r   r   r   r   r   r   r.   r/   rD   r   r   r   r   r   r   r   r  r  r0   r  r   r  r  r  r  r  r%  r1  r6  r<  r?  rB  rE  rG  rI  rN  rP  rS  rT  rf  rs  rz  r}  r~  r   r   r   r
   r   r	   r  r  r  r  r  r  r  r  Zslowr  r  r   rm   r   r*   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  r2  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,  r5  r8  r>  rC  rI  rK  r   r>   rP   rJ   rL  rS  rU  rW  rY  Z&skip_array_manager_not_yet_implementedrZ  r[  r]  r^  r`  ra  re  rf  rg  rh  rk  r4   ZALL_INT_DTYPESZALL_EA_INT_DTYPESZFLOAT_DTYPESZCOMPLEX_DTYPESZDATETIME64_DTYPESZTIMEDELTA64_DTYPESZBOOL_DTYPESrm  ZSTRING_DTYPESZBYTES_DTYPESZOBJECT_DTYPESrn  ro  Zarm_slowrp  rr  r   r   r   r   r  ru  rx  r  r  r  r  r  r  r   r  r  r  r  r  r  r:   r:   r:   r;   r$   F   s  
!

	

&	


&	



4"	

9J
/"

	

'
	




2&
 G;'


 			

	N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  t| dd W 5 Q R X t j|d< td  t|dd W 5 Q R X d S )Nr   rj   z!if they cannot be cast losslesslyrM   r(   r)   r   )	r.   r   rD  r4   r   r   r   roundr0   )r6   r7   rW   r:   r:   r;   "test_floating_values_integer_dtype	  s    
zLTestDataFrameConstructorWithDtypeCoercion.test_floating_values_integer_dtypeN)r  r  r  r  r:   r:   r:   r;   r  	  s   r  c                   @   s   e Zd Zejdddgdd Zejdddgd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zejdeegdd Zd d! Zd"S )#&TestDataFrameConstructorWithDatetimeTZr  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   r   rK   rA   c                 S   s   g | ]}|  qS r:   r/  r1  r:   r:   r;   ra   	  s     zeTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypes.<locals>.<listcomp>c                 S   s   g | ]}|  qS r:   r/  r1  r:   r:   r;   ra   	  s     rB  dr_tzdatetimes_naivedatetimes_with_tzr7  r  )r   rE   r   r	   tzinfor*   r2   r   r   r.   r4   r5   )
r6   r  rB  r  r8   Ztz_expectedr  r  rH   r9   r:   r:   r;   *test_construction_preserves_tzaware_dtypes	  s*    

	zQTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypespydtTFc           	   	   C   s  |}t d|d}|r| }t d}tt td|gidd}W 5 Q R X td|gi}t|| tjtdd td|idgdd}W 5 Q R X t|| tjtdd t|gdd}W 5 Q R X t|| tjtdd ttj|gt	ddd}W 5 Q R X t|| tt t|dgdgdd	}W 5 Q R X t|| tjtdd tt
|ggdd}W 5 Q R X t|| tjtdd t|ggdgdd
}W 5 Q R X t|| d S )N2019r  r   r7  r)   F)check_stacklevel)r   r*   r  r%  )r   r0  r4   r   r   r   rn   r.   r/   rD   r   Zassert_equal)	r6   Ztz_aware_fixturer  r  r2  ts_naiverH   r9   r8   r:   r:   r;   'test_constructor_data_aware_dtype_naive
  s6    "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 )Nr?  r'   r  rA  r   rB   Z20130110r)  r   r   zM8[ns, US/EasternrA   )	r   r   r   r*   r2   r-   r4   r5   r   )r6   rG   rB  r8   r:   r:   r;   test_from_dict2
  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 )	Nr?  r'   r  r   )r*  r  r-   rB   rA  r   )r   r   r4   r5   r   )r6   r  r   r:   r:   r;   test_from_indexA
  s    z6TestDataFrameConstructorWithDatetimeTZ.test_from_indexc                 C   sB   t ddd}t||d}td|d|d td|jd|d d S )Nz1/1/2012r   r)  r   r   r   )r   r   r   r1   )r6   rB  ri  r:   r:   r;   +test_frame_dict_constructor_datetime64_1680P
  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   r   rA   )r   r   r   r   r   r2   )r6   rB  r2  r   r:   r:   r;   +test_frame_datetime64_mixed_index_ctor_1681X
  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:00r'   rd  r  )r.  r*  r|  r  Z
timestampsrk   r  z20130101T10:01:00z20130101T10:02:00)r   r   r   r4   rn   )r6   rB  rH   r9   r:   r:   r;   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@)r)    r  333333?@)rV  r)  r  )r  r  r)  r  i  r   )r  r  )r  r  r   )r   r.   r0   r   r4   rn   )r6   rl   poprH   r9   r:   r:   r;   test_nested_dict_constructiono
  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:30r'   r@  rA  r%   r   r  )r   r  r   rD   rQ   r   r  r2   r   r*   r   )r6   r  r~   r8   r:   r:   r;   test_from_tzaware_object_array~
  s    zETestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_object_arrayc              	   C   s   t jtdtdtdgtdddtjtdddgtdd	dtjtd
d	dggtdj}t|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+0100r)   r   rA   r   rk   r7  r:  zdatetime64[ns, CET])r.   r/   r   r#  rJ   rD   rd  r   r   r   r2   )r6   r7   rj  Zexpected_dtypesr:   r:   r;   $test_from_tzaware_mixed_object_array
  s,    



zKTestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_mixed_object_arrayc                 C   s:   t dd}t|dd}t|d}t|| d S )Nr   r  zdatetime64[ns, UTC]r)   )r.   rb   rQ   r   r   r4   rn   )r6   Z
array_dim2r8   r9   r:   r:   r;   test_from_2d_ndarray_with_dtype
  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 )Nr%   r&   r'   'z' type is unorderedrM   r   )r  rS   rT   r  r   r   )r6   r   r1   rW   r:   r:   r;   !test_construction_from_set_raises
  s    zHTestDataFrameConstructorWithDatetimeTZ.test_construction_from_set_raisesc                 C   s>   t jdddddd}t|}tdd |jjD s:td S )	Nr   r&  r7  r)   r   r'   c                 s   s   | ]}t |tV  qd S rr   )rf   r   )r_   r7   r:   r:   r;   rx   
  s     zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelike.<locals>.<genexpr>)r.   rb   rQ   r   r   rd   re   r2   )r6   r7   r8   r:   r:   r;   +test_construction_from_ndarray_datetimelike
  s    zRTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelikeN)r  r  r  rS   r  r  r  r  r  r  r  r  r  r  r  r  r  set	frozensetr  r  r:   r:   r:   r;   r  	  s    

&	

r  c                 C   s"   t | tr| jd S | jd S d S )Nr   r   )rf   r   r3   r  r:   r:   r;   get1
  s    

r  c                   @   s   e Zd Zejeedgddd Zej	dddgdd	 Z
d
d Zdd Zdd Zej	dejejgdd Zej	deejgdd Zej	deejgdd Zdd ZdS )TestFromScalarN)paramsc                    s   |j }dtdi tkr$dg d< |d kr:tjf S |tkrhtkrX fddS  fddS n$tkr~ fddS  fd	dS d S )
Nr   r&   r   rl   c                    s   | | df |S )Nr+   r:   r`   kwargsextrarV   r:   r;   rt   
  s
    z,TestFromScalar.constructor.<locals>.<lambda>c                    s   d| if |S Nr   r:   r  r  r:   r;   rt   
  ru   c                    s   | | gf |S rr   r:   r  r  r:   r;   rt   
  ru   c                    s   d| | gif |S r  r:   r  r  r:   r;   rt   
  s
   
 )paramrm   r   r  r  r2  r   )r6   requestrV   Zboxr:   r  r;   rq   
  s    
zTestFromScalar.constructorr*   r=   rO   c                 C   s8   |t j|d}t|j|ks"tt| s4td S r  )r#  rJ   r.   r   r   r2   r   )r6   r*   rq   rh   r:   r:   r;   test_from_nat_scalar
  s    z#TestFromScalar.test_from_nat_scalarc                 C   s(   t d}||dd}t||ks$td S )Nr%   rO   r)   )r   r  r2   )r6   rq   ry  rh   r:   r:   r;   *test_from_timedelta_scalar_preserves_nanos
  s    z9TestFromScalar.test_from_timedelta_scalar_preserves_nanosc                 C   s0   t  td }||dd}t||ks,td S )Nr%   r=   r)   )r   r>   r   r  r2   )r6   rq   r2  rh   r:   r:   r;   *test_from_timestamp_scalar_preserves_nanos
  s    z9TestFromScalar.test_from_timestamp_scalar_preserves_nanosc                 C   s4   t d}| }||td}tt|tjs0td S )Nr%   r)   )r   Zto_timedelta64rD   rf   r  r.   rv  r2   )r6   rq   ry  Ztd64rh   r:   r:   r;   #test_from_timedelta64_scalar_object
  s    z2TestFromScalar.test_from_timedelta64_scalar_objectclsc           
   	   C   s   |j }|jj}|d tkr>|d tkr>tjjdd}|| |dd}t	j
dt	jdi| }d	}	|t	j
krxd
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 )NrV   rq   z4DataFrame incorrectly allows mismatched datetimeliker   rJ   rK   rO   r=   zCannot castrL   z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rM   r)   r   )nodeZcallspecr  r   r2  rS   r  ZxfailZ
add_markerr.   rP   rv  rR   rT   r  )
r6   rq   r  r  r  r  r  r  r*   rW   r:   r:   r;   (test_from_scalar_datetimelike_mismatched
  s*    



z7TestFromScalar.test_from_scalar_datetimelike_mismatchedc                 C   sB   t ddd}|tjkr"t|d}||}tt||ks>td S )N'  r%   r  )r   r.   rP   r  r  r2   r6   rq   r  r  rH   r:   r:   r;    test_from_out_of_bounds_datetime  s
    
z/TestFromScalar.test_from_out_of_bounds_datetimec                 C   sN   t dddt ddd }|tjkr.t|d}||}tt||ksJtd S )Nr  r%   i  r  )r   r.   rv  r  r  r2   r  r:   r:   r;   !test_from_out_of_bounds_timedelta"  s
    
z0TestFromScalar.test_from_out_of_bounds_timedeltac              	   C   sj   d}t d|d}t d}tjtddd ||dd}W 5 Q R X t|jdksTtt||ksftd S )	Nr  r  r  zData is timezone-awareF)rN   r  r=   r)   )r   r4   r   r   r.   r   r   r2   )r6   rq   r  r2  r  rH   r:   r:   r;   test_tzaware_data_tznaive_dtype+  s      z.TestFromScalar.test_tzaware_data_tznaive_dtype)r  r  r  rS   Zfixturer   r2  rq   r  r  r  r  r  r  r.   rP   rv  r  r   r  r   r  r  r:   r:   r:   r;   r  
  s   




r  )>r8  r   r   r   r   r   r  r  r  r  Znumpyr.   Znumpy.mar  Znumpy.ma.mrecordsr  rS   r;  Zpandas.compatr   Zpandas.util._test_decoratorsutilZ_test_decoratorsry  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   Zpandas._testingZ_testingr4   Zpandas.arraysr   r   r   r   r   r   r$   r  r  r  r  r:   r:   r:   r;   <module>   sj   @
                   % U