o
    i?                    @   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  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,m-Z- d dl.m/Z0 d dl1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8 g d	Z9g d
Z:G dd dZ;G dd dZ<G dd dZ=G dd dZ>dd Z?G dd dZ@G dd dZAdS )    )OrderedDictabc)datedatetime	timedeltaN)is_integer_dtype)DatetimeTZDtypeIntervalDtypePandasDtypePeriodDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexInterval
MultiIndexPeriod
RangeIndexSeries	Timedelta	Timestampcut
date_rangeisna)DatetimeArrayIntervalArrayPeriodArraySparseArrayTimedeltaArray)
Int64Index)float16float32float64)uint8uint16uint32uint64int8int16int32int64c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	e
jdddgdd Zdd Ze
jddd dd dd dd dd dd dd dd d d d!d d"d 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d0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zejd:d; Zejd<d= Zd>d? Zd@dA Ze
jdBdCi gdCd(dDdEdFgdGi ggdHdI ZdJdK ZdLdM ZdNdO Z dPdQ Z!dRdS Z"e
jdTe#j$dUge%dVe#$d*dW gdXge#j$dYge%dVe#$dZgd*dW  d* ggd[d\ Z&e
jdTe#j$d(ge#j'dVe#j$d(ge#j(dVe#j$d(ge#j)dVe#'d(ge#(d(ge#)d(ggd]d^ Z*d_d` Z+dadb Z,dcdd Z-dedf Z.dgdh Z/didj Z0dkdl Z1dmdn Z2e
jdod*e#j3dpdqgdrds Z4e
jdtd*e#j3dpe5dugdvdw Z6e
jdte#j3dpe5dugdxdy Z7dzd{ Z8d|d} Z9d~d Z:dd Z;dd Z<dd Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLe
jdeMdeNdfeOd)ddePddfeQdddeRddfgdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZe
jj[dd Z\dd Z]e
jddpe^e_dddge%e#j`fdpdpddgde#adfdpe^e_dddgebe#adšfi dpdDdEgdpe#j`fdd(ie^e_de^dƃebe#adšfgddȄ Zce
jdg dʢdedjefg d̢dedjffg d΢dedjgfg dТdedjhffddӄ ZiddՄ Zjddׄ Zkddل Zlddۄ Zmdd݄ Zndd߄ Zodd Zpdd Zqdd Zrdd Zsdd Zte
jdeQdggdeQdigdeQdgideQdigdd Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd  Z~e
jdeegdd Ze
jdeegdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Ze
jdd-g fd-g fdd-d-gfdg g gfg g fg g gfd(gd*gfd(gd*ggfg dg dfg dg dgfgdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Ze
jd,g d-d.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK Ze
jdLe#$dpdpdpdpe dpge#$dpdpe dpge#dMgdpgge#dMgedjggdpge#dMggdpgedjggedjge#dMggedjgdpgggdNdO Ze
jdPg dQe
jdRg dSdTdU Ze
jdPg dQe
jdRg dVdWdX ZdYdZ Zd[d\ Zd]d^ Zd_d` Ze
jdaeg dg dgd(e#j3gdbeg dg dgdcdde#j3gdeeg dfg dgge#j3dcdde#j3gdeeg dhg dgge#j3dcdde#j3gdeeg dhg dgge#j3d(d*d*gdegdidj Zdkdl Zdmdn Zdodp Zdqdr Zdsdt Zdudv Zdwdx Zdydz Ze
jdRejej ej ej ej ej ej d{d| Ze
jdRejej ej d}d~ ZĐdd Ze
jje
jdRg ddd Zǐdd Ze
jdee^ded(e#j3e#j3e#j3geeOd)d(eOd(dgeedj͐ddddgdd Zΐdd Zϐdd ZАdd Zѐdd ZҐdd ZӐdd ZԐdd ZՐdd Ze
jdd(d*gddge^eאdd*dde^eאdd*dddeOd)ddggdd Zؐdd Ze
jdddgdd Zڐdd Zېdd Zܐdd Ze
jdd(gd*gge#$d(gd*ggfe#$d(gd*ggd(gd*ggfe#$d(gd*gge#$d(gd*ggfgdd Zސdd Zߐdd ZdpS (  TestDataFrameConstructorsc                 C   s<   t ddd}t|td}t|t}t|| d S )N         dtype)nparangereshaper   strastypetmassert_frame_equal)selfarrdfexpected r=   _/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/frame/test_constructors.py,test_constructor_from_ndarray_with_str_dtypeI   s   zFTestDataFrameConstructors.test_constructor_from_ndarray_with_str_dtypec                 C   sv   t dddd}|jdd}t|}t|d d df |d d df d	}t|| |s7t|jjdks9J d S d S )
N
2016-01-01   
US/Pacificperiodstzr/      r      r   rG   )	r   _datar4   r   r7   r8   len_mgrblocks)r9   using_array_managerdtidtar;   r<   r=   r=   r>   &test_constructor_from_2d_datetimearrayQ   s   &z@TestDataFrameConstructors.test_constructor_from_2d_datetimearrayc                 C   sl   t dd}td|idgd}td|gi}t|| t|dgd}t|gdgd}t|| d S )Nz2019-11-03 01:00:00-0700zAmerica/Los_Angelesdtr   indexrG   )rQ   value)r   
tz_convertr   r7   r8   )r9   rQ   r;   r<   r=   r=   r>   )test_constructor_dict_with_tzaware_scalar\   s   zCTestDataFrameConstructors.test_constructor_dict_with_tzaware_scalarc                 C   s   t dt jgddgg}tt t|dd}W d    n1 s"w   Y  |jj|jks0J t	|j
d s9J tt t|d ddd}W d    n1 sRw   Y  |j
d }t|| d S )	NrG   rF   r/   i8r0   rH   r   r1   name)r2   arraynanr7   assert_produces_warningFutureWarningr   valuesr1   r   ilocr   assert_series_equal)r9   r:   r;   serr<   r=   r=   r>   -test_construct_ndarray_with_nas_and_int_dtypei   s   
zGTestDataFrameConstructors.test_construct_ndarray_with_nas_and_int_dtypec                 C   s0   t t t g}|d jtdksJ d S )Nr   M8[ns])r   r   nowr1   r2   r9   r;   r=   r=   r>   %test_construct_from_list_of_datetimesw   s   z?TestDataFrameConstructors.test_construct_from_list_of_datetimesc                 C   s\   t ddgdd}|d}ttj| dddd}|j|jks"J t|}t|| d S )Nz2013-1-1 13:00z2013-1-2 14:00BrY   rB   objectr0   )	r   tz_localizer   r2   rZ   tolistr1   r7   r`   )r9   naiveidxr<   resultr=   r=   r>   +test_constructor_from_tzaware_datetimeindex{   s   
zETestDataFrameConstructors.test_constructor_from_tzaware_datetimeindexc                 C   s~   t dd}t j|gtd}|tu r|dd}dddg}tjt	|d ||d	d W d    d S 1 s8w   Y  d S )
NNaTnsr0   rG   |z+Could not convert object to NumPy timedeltaz=Invalid type for timedelta scalar: <class 'numpy.datetime64'>matchm8[ns])
r2   
datetime64rZ   ri   r   r4   joinpytestraises
ValueError)r9   frame_or_seriesnatr:   msgr=   r=   r>   ,test_array_of_dt64_nat_with_td64dtype_raises   s   "zFTestDataFrameConstructors.test_array_of_dt64_nat_with_td64dtype_raiseskindmMc                 C   sx  |dkr	d}t }nd}t}tjddd|dd}|tu r'|d d d	f }||td}|jj	d	 j
tks8J t|jj	d	  d	 |sGJ |||td}|jj	d	 j
tksZJ t|jj	d	  d	 |siJ |||ttd}|jj	d	 j
tks~J t|jj	d	  d	 |sJ |tu rd
d |D }||td}|jj	d	 j
tksJ t|jj	d	  d	 |sJ d S d S )Nr   rc   ru   rA   rW   r0   r/   rF   r   c                 S      g | ]}t |qS r=   r   .0xr=   r=   r>   
<listcomp>       zXTestDataFrameConstructors.test_datetimelike_values_with_object_dtype.<locals>.<listcomp>)r   r   r2   r3   viewr4   r   ri   rK   arraysr1   
isinstanceravelr
   r   )r9   r   r{   r1   scalar_typer:   objsersr=   r=   r>   *test_datetimelike_values_with_object_dtype   s0   zDTestDataFrameConstructors.test_datetimelike_values_with_object_dtypec                 C   st   t tddd}t tddd}t|dgd}tg dgd}t|| t|dgd}tg dgd}t|| d S )N   rG   rh   r   columns)r   ranger   r7   r8   )r9   r   yrn   r<   r=   r=   r>   )test_series_with_name_not_matching_column   s   zCTestDataFrameConstructors.test_series_with_name_not_matching_columnconstructorc                   C   s   t  S Nr   r=   r=   r=   r>   <lambda>   s    z"TestDataFrameConstructors.<lambda>c                   C   s   t d S r   r   r=   r=   r=   r>   r          c                   C   s   t i S r   r   r=   r=   r=   r>   r      r   c                   C   s   t dS Nr=   r   r=   r=   r=   r>   r      r   c                   C   s   t g S r   r   r=   r=   r=   r>   r      r   c                   C   s   t dd dD S )Nc                 s       | ]}|V  qd S r   r=   r   _r=   r=   r>   	<genexpr>       5TestDataFrameConstructors.<lambda>.<locals>.<genexpr>r=   r   r=   r=   r=   r>   r      s    c                   C   s   t tdS Nr   r   r   r=   r=   r=   r>   r          c                   C   s
   t d dS Ndatar   r=   r=   r=   r>   r         
 c                   C   s
   t i dS r   r   r=   r=   r=   r>   r      r   c                   C   s
   t ddS )Nr=   r   r   r=   r=   r=   r>   r      r   c                   C   s
   t g dS r   r   r=   r=   r=   r>   r      r   c                   C   s   t dd dD dS )Nc                 s   r   r   r=   r   r=   r=   r>   r      r   r   r=   r   r   r=   r=   r=   r>   r      r   c                   C   s   t tddS )Nr   r   r   r=   r=   r=   r>   r      s    c                 C   s@   t  }| }t|jdksJ t|jdksJ t|| d S r   )r   rJ   rS   r   r7   r8   )r9   r   r<   rn   r=   r=   r>   test_empty_constructor   s
   z0TestDataFrameConstructors.test_empty_constructorz)emptylike,expected_index,expected_columnsrG   r   rF   c                 c   r   r   r=   r   r=   r=   r>   r      r   z#TestDataFrameConstructors.<genexpr>r=   c                 C   s$   t ||d}t |}t|| d S )NrS   r   r   r7   r8   )r9   	emptylikeexpected_indexexpected_columnsr<   rn   r=   r=   r>   test_emptylike_constructor   s   	z4TestDataFrameConstructors.test_emptylike_constructorc                 C   s8   t  \}}t||d}t|}|d jtjksJ d S )NrR   foo)r7   getMixedTypeDictr   r1   r2   object_)r9   float_string_framerS   r   indexed_frameunindexed_framer=   r=   r>   test_constructor_mixed   s   z0TestDataFrameConstructors.test_constructor_mixedc                 C   s   d}t jt|d tdg ditjd}W d    n1 sw   Y  |d jtks-J ttd}td	 |d< d}t
jt|d td|d	< W d    n1 sXw   Y  td	 |d
< d S )NBeither all columns will be cast to that dtype, or a TypeError willrs   ar   bcr0   )r.   rF   r   z5Expected a 1D array, got an array with shape \(4, 2\)testfoo2)r7   r\   r]   r   r2   r#   r1   ri   onesrk   rx   ry   rz   )r9   r}   r   r;   r=   r=   r>   test_constructor_cast_failure   s   z7TestDataFrameConstructors.test_constructor_cast_failurec                 C   sD   t dgdgdgd}t |tdd}d|d< |d d	 dks J d S )
N      ?       @      @)col1col2col3T)r1   copyg      i@r   r   )r   float)r9   orig_dfnew_dfr=   r=   r>   test_constructor_dtype_copy
  s   z5TestDataFrameConstructors.test_constructor_dtype_copyc                 C   sf   t ddgg}t ||d jd}|r"d|jd< |jd dks J d S d|d d< |jd dks1J d S )NrG   rF   r   r0   c   r   r   )r   r1   r_   r^   )r9   using_copy_on_writer;   should_be_viewr=   r=   r>   ,test_constructor_dtype_nocast_view_dataframe  s   
zFTestDataFrameConstructors.test_constructor_dtype_nocast_view_dataframec                 C   s   t ddgddggdd}|s+|s+t |j|d jd}d|d d< |jd	 dks)J d S t |j|d jd}|jjd jjs?J d S )
NrG   rF   r/   r.   r+   r0   r   a   r   )r   r^   r1   rK   r   flagsc_contiguous)r9   rM   r   r;   r   df2r=   r=   r>   +test_constructor_dtype_nocast_view_2d_array  s   zETestDataFrameConstructors.test_constructor_dtype_nocast_view_2d_arrayc                 C   s0   t jddgdd}t|}t |j|sJ d S )Nr   r   ri   r0   r2   rZ   r   shares_memoryr^   r9   r:   r;   r=   r=   r>   "test_1d_object_array_does_not_copy+  s   z<TestDataFrameConstructors.test_1d_object_array_does_not_copyc                 C   s8   t jddgddggdd}t|}t |j|sJ d S )Nr   r   r   dri   r0   r   r   r=   r=   r>   "test_2d_object_array_does_not_copy2  s   z<TestDataFrameConstructors.test_2d_object_array_does_not_copyc                 C   s@   t ddgd dggtd}|jd d u sJ |jd dksJ d S )NrG   2r   r0   rG   r   rH   )r   ri   locre   r=   r=   r>    test_constructor_dtype_list_data9  s   z:TestDataFrameConstructors.test_constructor_dtype_list_datac                 C   s   t  }td}tjtdd t |g W d    n1 sw   Y  tjtdd t |g W d    n1 s;w   Y  t dddgi}tjtdd t ||g W d    d S 1 saw   Y  d S )Nr   zshape=\(1, 0, 0\)rs   ArG   rF   zshape=\(2, 2, 1\))r   r2   emptyrx   ry   rz   )r9   r   r   r=   r=   r>   "test_constructor_list_of_2d_raises>  s   
"z<TestDataFrameConstructors.test_constructor_list_of_2d_raisesztyp, adr   r   barr   rg   Cintc                 C   s   |dkrt }dd |D }n|dkrt}dd |D }t||D ]\}}|j|ks+J q |dd t||D  t|}tt  }|D ]}||v rR|j| |ksRJ qCd S )Nr   c                 S   s"   g | ]}t jt jd |dqS )
   r0   )r2   rZ   randomrandr   r   r=   r=   r>   r   Z     " zKTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>.<listcomp>r   c                 S   s&   g | ]}t jt jjd d d|dqS )r   )sizer0   )r2   rZ   r   randintr   r=   r=   r>   r   ]  s   & c                 S   s   i | ]\}}||qS r=   r=   )r   r   r   r=   r=   r>   
<dictcomp>a      zKTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>.<dictcomp>)MIXED_INT_DTYPESMIXED_FLOAT_DTYPESzipr1   updater   dtypes)r9   typadr   r   r   r   r;   r=   r=   r>   test_constructor_mixed_dtypesL  s    z7TestDataFrameConstructors.test_constructor_mixed_dtypesc                 C   s^   t jdt j}t jdt j}t||d}|j|jjks$J |j|j	jks-J d S )Nr   r   r   )
r2   r   r   r6   	complex64
complex128r   r1   r   r   r9   r   r   r;   r=   r=   r>   test_constructor_complex_dtypesi  s
   z9TestDataFrameConstructors.test_constructor_complex_dtypesc                 C   sx   t ddd gi|d}| }t dddgi}t|| |jd d u s%J t ddtjgi|d}t|jd s:J d S )Nr   r   r0   FTr   )r   r   r7   r8   r_   r2   r[   isnan)r9   string_dtyper;   rn   r<   r=   r=   r>   $test_constructor_dtype_str_na_valuesr  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 )NFrR   r   rg   r   r   )
to_recordslistr1   namesrS   r   r7   assert_index_equalr   r   r2   r3   rJ   reindexr8   )	r9   float_framerecrS   r;   r   rngdf3r<   r=   r=   r>   test_constructor_rec}  s   z.TestDataFrameConstructors.test_constructor_recc                 C   s8   t tjdtdtjdtdd}|jjtjksJ d S )Nr   r0   rH   )r   r2   r   boolzerosr^   r1   bool_re   r=   r=   r>   test_constructor_bool  s   "z/TestDataFrameConstructors.test_constructor_boolc                 C   s   t jdd tddD t jd}td|i}|d jt jks J g d}dd	g}t jt|f|d}||d d < t|}|d
 jt jksFJ d S )Nc                 S   s   g | ]}d | qS )            r=   r   ir=   r=   r>   r     r   zMTestDataFrameConstructors.test_constructor_overflow_int64.<locals>.<listcomp>rG   r   r0   r   ))l   Y2<   )l   FJLW]L*    )l   M:M^ -   )l   8Ma i  )l   r*R3_PvN r  )uidu8)scorer  r  )r2   rZ   r   r'   r   r1   r  rJ   )r9   r^   rn   data_scoresr1   r   	df_crawlsr=   r=   r>   test_constructor_overflow_int64  s    z9TestDataFrameConstructors.test_constructor_overflow_int64r^   r  r0   A   l           l        l        c                 C   s:   |d }t |}|d jtksJ |d d |ksJ d S r   )r   r1   ri   r9   r^   rT   rn   r=   r=   r>   test_constructor_int_overflow  s   z7TestDataFrameConstructors.test_constructor_int_overflowc                 C   s<   |d }t |}|d j|jksJ |d d |ksJ d S r   r   r1   r  r=   r=   r>   test_constructor_numpy_uints  s   z6TestDataFrameConstructors.test_constructor_numpy_uintsc                 C   s`   dd l }d}tt|}|| dd |D }ttt|dgg| }|t|jks.J d S )Nr   d   c                 S   s   g | ]}d |dqS )r   r   r=   r  r=   r=   r>   r         zJTestDataFrameConstructors.test_constructor_ordereddict.<locals>.<listcomp>)r   r  r   shuffler   r   r   r   )r9   r   nitemsnumsr<   r;   r=   r=   r>   test_constructor_ordereddict  s   
z6TestDataFrameConstructors.test_constructor_ordereddictc                 C   sD  t jdd}t jdddd  }t||d}t|dksJ t|dks'J t |d |d tttj	gd |j
g|jdd}t ||d  t||dg d	d
}t|t|ksaJ d|vsgJ t|d  sqJ tt dkszJ d}tjt|d tdddg dd W d    d S 1 sw   Y  d S )N   nperr   r   r      r   r   rS   rY   )r   r   col4r   r   r   <Mixing dicts with non-Series may lead to ambiguous ordering.rs   r   r   r   r   r   rg   )r7   makeTimeSeriesr   rJ   r`   renamer   r2   concatenater[   r^   rS   r   allrx   ry   rz   )r9   datetime_seriesdatetime_series_shortframeexpr}   r=   r=   r>   test_constructor_dict  s0   "z/TestDataFrameConstructors.test_constructor_dictc                 C   s,   t ddddi}t|jtddg d S )Nr   rG   rF   1r   r9  r   )r   r7   r  rS   r   r9   r5  r=   r=   r>   test_constructor_dict_length1  s   z7TestDataFrameConstructors.test_constructor_dict_length1c                 C   s*   t g d}ti |d}|j|u sJ d S )Nr   rG   rF   rR   )r   r   rS   r9   rm   r5  r=   r=   r>    test_constructor_dict_with_index  s   z:TestDataFrameConstructors.test_constructor_dict_with_indexc                 C   sL   t g d}ti ||d}|j|u sJ |j|u sJ t|jdks$J d S )Nr<  r   r/   )r   r   rS   r   rJ   _seriesr=  r=   r=   r>   ,test_constructor_dict_with_index_and_columns
  s
   zFTestDataFrameConstructors.test_constructor_dict_with_index_and_columnsc                 C   s0   t g g dddgd}tj|jtddd d S )Nr.  r   rg   r   r   Texact)r   r7   r  rS   r   r:  r=   r=   r>   $test_constructor_dict_of_empty_lists  s   z>TestDataFrameConstructors.test_constructor_dict_of_empty_listsc                 C   s^   t dd idgd}t dd gidgd}|ddd u sJ |ddd u s'J t|| d S )Nr   r   rR   )r   
_get_valuer7   r8   )r9   
frame_noneframe_none_listr=   r=   r>   test_constructor_dict_with_none  s
   z9TestDataFrameConstructors.test_constructor_dict_with_nonec                 C   s   d}t jt|d tddi W d    n1 sw   Y  t jt|d tddidgd W d    d S 1 s;w   Y  d S )N2If using all scalar values, you must pass an indexrs   r   gffffff?r   rx   ry   rz   r   r9   r}   r=   r=   r>   test_constructor_dict_errors   s   "z6TestDataFrameConstructors.test_constructor_dict_errorsscalarNDc                 C   s.   t d|idgd}t dgd}t|| d S )Nr   r   r   r   )r9   rL  rn   r<   r=   r=   r>   %test_constructor_invalid_items_unused*  s   z?TestDataFrameConstructors.test_constructor_invalid_items_unusedrT   r[   c                    s   d|dg d|gddgddgddgg fdd	t dD }t|djddd
}ttjddddd d}t|| t|djddd
}t|| t| d}t|| d S )NrG   r/   r   r   r.   rF   r   c                    "   i | ]} | t | d qS rR   r   r   r   colsrm   r^   r=   r>   r   7  r   zKTestDataFrameConstructors.test_constructor_dict_nan_key.<locals>.<dictcomp>axisrA   r+   r0   r   rR   )r   r   sort_valuesr2   r3   r4   r7   r8   r9   rT   r   rn   r<   r=   rR  r>   test_constructor_dict_nan_key1  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   rF   r   r/   rG   r.   r   c                    rO  rP  r   rQ  rR  r=   r>   r   J  r   zQTestDataFrameConstructors.test_constructor_dict_nan_tuple_key.<locals>.<dictcomp>rT  rA   r+   r0   r   rR   )	r   r   r   rV  r2   r3   r4   r7   r8   rW  r=   rR  r>   #test_constructor_dict_nan_tuple_keyD  s   z=TestDataFrameConstructors.test_constructor_dict_nan_tuple_keyc                 C   sL   t jdd}t jdd}||d}t|d}t|tdd}t || d S )Nr&  r'  r*  r   r   r   bar   r   )r7   r/  r   r  r8   )r9   r3  r4  r   r5  r<   r=   r=   r>   %test_constructor_dict_order_insertionW  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 )NrG   rF   r/   r   )r   r2   r[   r7   r8   r9   rn   r<   r=   r=   r>   )test_constructor_dict_nan_key_and_columnsb  s   $zCTestDataFrameConstructors.test_constructor_dict_nan_key_and_columnsc                 C   sl   g d}t |}t||d}t|j  sJ g d}t |}t||d}t|j  s4J d S )N)rF   r/   r/   r/   re  r   )re  rd  re  )r   from_tuplesr   r   r^   r   r2  )r9   tuplesmir;   r=   r=   r>   test_constructor_multi_indexh  s   

z6TestDataFrameConstructors.test_constructor_multi_indexc                 C   s   t dggdggddgd}t ddgtddgddtdggdggdd}t|| t dggdggddggd}t ddgtddggddggdtdggdggdd}t|| d S )	NrG   rF   r   rS   r+   r0   r   )levelscodesr   )r   r    r   r7   r8   r9   r;   r<   r=   r=   r>   test_constructor_2d_indexu  s   z3TestDataFrameConstructors.test_constructor_2d_indexc                 C   s  d}t jt|d ttdtdd W d    n1 sw   Y  d}t jt|d tddd	g d
d W d    n1 sDw   Y  d}t jt|d ttddg dt	dddd W d    n1 spw   Y  t
g dg}d}t jt|d tdgtdd|d W d    n1 sw   Y  t
g d}d}t jt|d tdgtdd|d W d    n1 sw   Y  t jtdd ttdg ddgd W d    n1 sw   Y  d}t jt|d ttjddg ddgd W d    n	1 sw   Y  d}t jt|d ttjddd d!gddgd W d    n	1 s>w   Y  d"}t jt|d ttd#td#d$fd%d W d    n	1 sew   Y  d&}t jt|d td'd(d	 W d    d S 1 sw   Y  d S ))N)Empty data passed with indices specified.rs   r   r   r   r-  r   r   r   r   r.  z:Shape of passed values is \(4, 3\), indices imply \(3, 3\)r-   )r.   r/   r   r   baz
2000-01-01r/   rD   rj  r.   r   rA   z:Shape of passed values is \(1, 3\), indices imply \(1, 4\)r.   rS   r   r   z:Shape of passed values is \(3, 1\), indices imply \(1, 4\)Must pass 2-d inputr/   r/   r/   r   rG   :Shape of passed values is \(2, 3\), indices imply \(1, 3\)rF   :Shape of passed values is \(2, 3\), indices imply \(2, 2\)r   rg   z,2 columns passed, passed data had 10 columnsr      )r   twosrH  FT)rx   ry   rz   r   r2   r   r  r3   r4   r   rZ   r   r  r   r   )r9   r}   r:   r=   r=   r>   test_constructor_error_msgs  sZ   
 "$z5TestDataFrameConstructors.test_constructor_error_msgsc                 C   s|   |dd t dD |dd t dD d}t|}tdd | D }t|| || }t|}t|| d S )Nc                 s       | ]	}|d | fV  qdS )g      $@Nr=   r   r=   r=   r>   r         zKTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<genexpr>r   c                 s   r}  )g      4@Nr=   r   r=   r=   r>   r     r~  r)  c                 S   s   i | ]\}}|t | qS r=   )dictitems)r   colvalr=   r=   r>   r     s    zLTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<dictcomp>)r   r   r  r7   r8   )r9   dict_subclassr   r;   refdfr=   r=   r>   test_constructor_subclass_dict  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   )defaultdictrg   r   rR   )collectionsr  r2   r[   r  r  r   to_dictr   r  rS   r7   r8   )	r9   r  r  r   kvdctr5  r<   r=   r=   r>   test_constructor_defaultdict  s   
z6TestDataFrameConstructors.test_constructor_defaultdictc                 C   sD   t g dg}tdgdgdgdgdg dd}t|j| d S )N)      @r   r   r   r  r   r   r   )r   r   r   r   r   )r2   rZ   r   r7   assert_numpy_array_equalr^   r9   r<   r;   r=   r=   r>   test_constructor_dict_block  s   z5TestDataFrameConstructors.test_constructor_dict_blockc                 C   s   dddddddd}t |td	}t|d
ksJ |d jtjks$J |d jtjks.J t |}t|d
ks:J |d jtjksDJ |d jtjksNJ d S )NrG   rF   r8  r9  r   3)r9  r   r  r.  r0   r/   rg   r   )r   r   rJ   r1   r2   r#   r   )r9   	test_datar5  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 d    n1 s4w   Y  t|dksAJ |d jtjksKJ |d jtjksUJ d S )	Nrz     r.  r   rs   r0   r   rg   )r  r   r   r7   makeStringIndexr2   r   randnr\   r]   r   r   rJ   r1   r   r#   )r9   r  r}   r5  r=   r=   r>   test_constructor_dict_cast2  s   z5TestDataFrameConstructors.test_constructor_dict_cast2c                 C   s2   ddt jdi}t|}t|d d tsJ d S )NCol1zA String)Row1Row2r  )r2   r[   r   r   r   )r9   r   r;   r=   r=   r>   !test_constructor_dict_dont_upcast  s   z;TestDataFrameConstructors.test_constructor_dict_dont_upcastc                 C   s<   t ddgddggddgddgd}t|d d tsJ d S )NrG   rF   r   r   r   )r   r   r   )r9   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rG   rF   r/   rt  r   c                 S   s   i | ]	\}}|t |qS r=   )r  r   r  r  r=   r=   r>   r   	  s    zMTestDataFrameConstructors.test_constructor_dict_of_tuples.<locals>.<dictcomp>Fcheck_dtype)r   r  r7   r8   r9   r   rn   r<   r=   r=   r>   test_constructor_dict_of_tuples  s   
z9TestDataFrameConstructors.test_constructor_dict_of_tuplesc                 C   sB   t dt ddd}t|}tg dg dd}t|| d S )Nr/   rA   r   r<  )r/   r.   r   r   r   r7   r8   r  r=   r=   r>   test_constructor_dict_of_ranges  s   z9TestDataFrameConstructors.test_constructor_dict_of_rangesc                 C   sH   t tdttdd}t|}tg dg dd}t|| d S )Nr/   r   r<  rF   rG   r   )iterr   reversedr   r7   r8   r  r=   r=   r>   "test_constructor_dict_of_iterators  s   z<TestDataFrameConstructors.test_constructor_dict_of_iteratorsc                 C   sX   dd t dD dd tt dD d}t|}tg dg dd}t|| d S )Nc                 s   r   r   r=   r  r=   r=   r>   r     r   zPTestDataFrameConstructors.test_constructor_dict_of_generators.<locals>.<genexpr>r/   r   r<  r  )r   r  r   r7   r8   r  r=   r=   r>   #test_constructor_dict_of_generators  s   *z=TestDataFrameConstructors.test_constructor_dict_of_generatorsc                 C   s  dddddddddd	d
dd}t | }t|}tdd |D tdd |D dj}t|j|_t|| ddddd|d< |	dd|d f tdd |D t
dd |D dddj}t
|jdd|_t|}|j|j|jd}t|| d S )Nr   rG   rF   )r  r  r  jr  r  rA   r   r.         	   ))r   r   r^  )r   r   c                 S      g | ]}|d  qS rG   r=   r   r=   r=   r>   r   ,  r   zNTestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   r  r   r=   r   r=   r=   r>   r   ,  r   rR   g     ^@o   )r   r  r  r  zc                 S   r  r  r=   r   r=   r=   r>   r   7  r   c                 S   r  r  r=   r   r=   r=   r>   r   7  r   F)tupleize_colsrj  )sortedr  r   r   rf  TrS   r7   r8   insertr   r  r   )r9   r   _dr;   r<   r=   r=   r>    test_constructor_dict_multiindex#  s6   


 z:TestDataFrameConstructors.test_constructor_dict_multiindexc           	   	      s   g d  fdd}|t j}|dd }|t}tdd d d dd dd d dd d d	d dd d d d
dgdd  D d}t|}t|}t|}t|| t|| t|| d S )N)z
1984-02-19z
1988-11-06z
1989-12-03z
1990-03-15c                        fddt D S )Nc                    "   i | ]\}}| |d | iqS rF   r=   r   r  sr   r=   r>   r   C  r   ziTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<dictcomp>	enumerater  dates_as_strr  r>   create_dataB     zUTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S      t | dS )Nz%Y-%m-%d)r   strptimer   r=   r=   r>   r   F  r   zRTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>r   r   rG   rF   r/   rF   r.   rA   c                 S   r   r=   )r   )r   rQ   r=   r=   r>   r   P  r   zTTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<listcomp>rR   )r2   rv   r   r   r7   r8   )	r9   r  data_datetime64data_datetimedata_Timestampr<   result_datetime64result_datetimeresult_Timestampr=   r  r>   &test_constructor_dict_datetime64_index>  s&   

z@TestDataFrameConstructors.test_constructor_dict_datetime64_indexc           	   	      s   g d  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 )NrG   rF   r/   r.   c                    r  )Nc                    r  r  r=   r  r  r=   r>   r   _  r   zjTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.create_data.<locals>.<dictcomp>r  r  	td_as_intr  r>   r  ^  r  zVTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.create_datac                 S   r  NrM  )r2   timedelta64r  r=   r=   r>   r   a  r   zSTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<lambda>c                 S   s
   t | dS )N)days)r   r  r=   r=   r>   r   b  r   c                 S   s
   t | dS r  r   r  r=   r=   r>   r   c  r   r   r  rF   r.   rA   c                 S   s   g | ]}t |d qS )rM  r  )r   tdr=   r=   r>   r   l  r   zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<listcomp>rR   r   )	r9   r  data_timedelta64data_timedeltadata_Timedeltar<   result_timedelta64result_timedeltaresult_Timedeltar=   r  r>   'test_constructor_dict_timedelta64_indexZ  s&   
zATestDataFrameConstructors.test_constructor_dict_timedelta64_indexc                 C   s   t jg ddd}t jg ddd}t||d}|d j|jks#J |d j|jks-J t|t |t d}|d j|jksHJ |d j|jksRJ d S )	N)z2012-01rp   z2012-04r   freq)z
2012-02-01z
2012-03-01rp   rM  r   r   r   )pdPeriodIndexr   r1   r6   ri   rk   r   r=   r=   r>   test_constructor_period_dictv  s   "z6TestDataFrameConstructors.test_constructor_period_dictc                 C   sN   |\}}t d|idgd}|d j|ksJ t dgdg|d}t|| d S )Nr   r   rR   ru  )r   r1   r7   r8   )r9   ea_scalar_and_dtype	ea_scalarea_dtyper;   r<   r=   r=   r>   &test_constructor_dict_extension_scalar  s
   z@TestDataFrameConstructors.test_constructor_dict_extension_scalarz
data,dtypez2020-01r   )leftrightr+   r  z
2011-01-01
US/EasternrE   c                 C   sl   t ddgddg|d}|d j|ksJ |d j|ksJ tj|gd |d}t ||d}t|| d S )	Nr   rG   r   r   ru  rF   r0   r   )r   r1   r  rZ   r7   r8   )r9   r   r1   r;   r:   r<   r=   r=   r>   &test_constructor_extension_scalar_data  s   z@TestDataFrameConstructors.test_constructor_extension_scalar_datac                 C   s   t jddd}ttjdd|d}i }|jD ]}|jD ]}||||	|i |< qqt||d}t
|| i }|jD ]}|jD ]}||||	|i |< qBq=t||dj}t
|| d S )Nz1/1/2000r   rs  r   r   rR   )r  period_ranger   r2   r   r  r   rS   rD  
setdefaultr7   r8   r  )r9   r  r;   r   r  rowrn   r=   r=   r>   "test_nested_dict_frame_constructor  s    



z<TestDataFrameConstructors.test_nested_dict_frame_constructorc                 C   s  |dt d}t|g dddgd}t|jdksJ t|jdks#J t|dd	gg d
d}t|jdks8J t|jdksAJ |tju rHd nt}t	| t|g dddgtj
d}W d    n1 sgw   Y  |tju r{|jjtj
kszJ n|   sJ |jjtjksJ t|j sJ d}tjt|d t|g ddgd W d    n1 sw   Y  d}tjt|d t|d	dgddgd W d    n1 sw   Y  tjtdd t|dg ddgd W d    n1 sw   Y  t|}tj|jttddd tj|jttddd t|ddgd}tj|jttddd t|g dd}tj|jttddd t|d}t|jdksYJ t|d}t|jdksiJ d S )Nrd  r0   r   rG   rF   rj  r/   )r/   r   r  r   rS   r1   rx  rs   ry  rg   rv  rw  TrA  rR   r   )r   r/   r   )r/   r   )r   r   rJ   rS   r   r2   r   r]   r7   r\   r+   r^   r1   r   r2  r#   rx   ry   rz   r  r   r   )r9   r   matr5  warnr}   r=   r=   r>   _check_basic_constructor  sP   
z2TestDataFrameConstructors._check_basic_constructorc                 C   s8   |  tj tddgddgdgd}t|dksJ d S )Nr   r   r   rG   r   r   rF   )r  r2   r   r   rJ   r:  r=   r=   r>   test_constructor_ndarray  s   z2TestDataFrameConstructors.test_constructor_ndarrayc                 C   s   |  tj tjdtd}d|d< d|d< t|g ddd	gd
}d|d d ks*J d|d d	 ks4J tjdtd}t|g ddd	gd
}tt||k sSJ d S )Nrd  r0   r   r   r   rG   rF   r   rG   rF   rj  r   r   )r  ma
masked_allr   r   r2   r2  asarray)r9   r  r5  r=   r=   r>   test_constructor_maskedarray  s   z6TestDataFrameConstructors.test_constructor_maskedarrayc              	   C   s0  t jdtd}t|g dddgd}t|jdksJ t|jdks$J tt	||k s1J t|g dddgtj
d}|jjtj
ksGJ t |}d|d	< d|d
< t|g dddgd}d|d d ksiJ d|d d kssJ t jddd}t|g dddgd}t|jdksJ t|jdksJ t|j sJ d}tjt|d1 t  tjdtdd t|g dddgtjd}W d    n1 sw   Y  W d    n1 sw   Y  |jjtjksJ t |}d|d	< d|d
< t|g dddgd}d|d dd ksJ d|d dd ksJ t jdtd}t|g dddgd}t|jdks;J t|jdksEJ tt	||k sSJ t|g dddgtd}|jjtkshJ t |}d|d	< d|d
< t|g dddgd}|d d du sJ |d d du sJ d S )Nrd  r0   r   rG   rF   rj  r/   r  r   r  r   r   rc   z'datetime64\[ns\] values and dtype=int64rs   ignorezelementwise comparison failed)categorymessagerW   TF)r  r  r   r   rJ   rS   r   r2   r2  r  r#   r^   r1   r   r   r7   r\   r]   warningscatch_warningsfilterwarningsDeprecationWarningr+   r   r  ri   )r9   r  r5  mat2r}   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)rF   rF   r0   r   rg   rG   rF   rj  r.  r  r   )
r  r  r   harden_maskr   r2   r[   r7   r8   r   )r9   mat_hardrn   r<   r=   r=   r>   %test_constructor_maskedarray_hardenedT  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 d    n1 s/w   Y  t
t jdtddd	gd
}t|| t
 fdd jjD td}t|| d S )Nr   )r   <f8)pricer  r0   Fmaskr   rF   r   r  r   c                    s   i | ]}| | qS r=   r=   )r   rY   r   r=   r>   r   z  r   zSTestDataFrameConstructors.test_constructor_maskedrecarray_dtype.<locals>.<dictcomp>)r2   r  rZ   r  r   mrecords	mrecarrayr7   r\   r]   r   r   r8   r1   r  )r9   rn   r<   altr=   r   r>   %test_constructor_maskedrecarray_dtypej  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 q)|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 d    n1 sw   Y  t||d}
||	|
 tt t||d d d d}	W d    n1 sw   Y  t||d d d d}
||	|
 tt t|ddgd}	W d    n1 sw   Y  t||ddgd}
||	|
 q_d S )NT)check_index_typecheck_column_typer         ?r   r   rG   rF   r5   r   defmasked1_Fr  r  r  masked_noner   g      @r/   )r  c                 S   s(   i | ]\}}|t |d r| n|qS )filled)hasattrr  r  r=   r=   r>   r     s   ( zHTestDataFrameConstructors.test_constructor_mrecarray.<locals>.<dictcomp>r   r   rR   rj  )	functoolspartialr7   r8   r2   rZ   appendr  masked_arrayr  	itertoolscombinationsr   r  
fromarraysr\   r]   r   )r9   assert_fr_equalr   rY   r:   combr  r   mrecsrn   r<   r=   r=   r>   test_constructor_mrecarray}  sB   


z4TestDataFrameConstructors.test_constructor_mrecarrayc                 C   s   t g d}|jjdksJ d S )NrR   r   )r   r^   shapere   r=   r=   r>   test_constructor_corner_shape  s   
z7TestDataFrameConstructors.test_constructor_corner_shapez%data, index, columns, dtype, expectedr   r   r   r#   r   c                 C   s"   t ||||}|jj|ksJ d S r   )r   r^   r1   )r9   r   rS   r   r1   r<   r;   r=   r=   r>   test_constructor_dtype  s   z0TestDataFrameConstructors.test_constructor_dtypezdata,input_dtype,expected_dtype)TFNbooleanr   r   NFloat64)rG   rF   NInt64r   stringc                 C   s(   t d|i|d}|d j| ksJ d S )Nr   r0   r  )r9   r   input_dtypeexpected_dtyper;   r=   r=   r>   0test_constructor_dtype_nullable_extension_arrays  s   zJTestDataFrameConstructors.test_constructor_dtype_nullable_extension_arraysc                 C   s   dddddd}t |tdd}|d	 jtjksJ |d
 jtjks%J |d jtjks/J |d jtjks9J |d jtjksCJ d S )NrG   Tr   y              @r   )r   r  r   complexri   r   rR   r   r  r   r2  ri   )	r   r2   r3   r1   r+   r  r#   r   r   )r9   r   r;   r=   r=   r>   !test_constructor_scalar_inference  s   z;TestDataFrameConstructors.test_constructor_scalar_inferencec                 C   s~   t tjddd}t |d jdgd d}t|| tjt	dd t ddd W d    d S 1 s8w   Y  d S )Nr   Tr   r   zmust pass an indexrs   F)
r   r2   r   r  r^   r7   r8   rx   ry   rz   )r9   r;   r6  r=   r=   r>   #test_constructor_arrays_and_scalars  s   "z=TestDataFrameConstructors.test_constructor_arrays_and_scalarsc                 C   s8   t |}t|| t |tjd}|jjtjksJ d S Nr0   )r   r7   r8   r2   r+   r^   r1   )r9   r  r;   	df_castedr=   r=   r>   test_constructor_DataFrame  s   z4TestDataFrameConstructors.test_constructor_DataFramec                 C   s*   t t  dd}t g dd}t|| d S )Nri   r0   r   )r9   actualr<   r=   r=   r>    test_constructor_empty_dataframe  s   z:TestDataFrameConstructors.test_constructor_empty_dataframec                 C   s  t jd}t|dgt dd}|jjdksJ t jd}t|}|jjdks+J |jjdks3J tddgt dd}|jjdksFJ tddgd}|jjd	ksUJ tt dd
}|jjdkseJ t jddgt	d
dd}d}tjt|d t|ddgdgtd W d    n1 sw   Y  tt|j}t|| tt jdtdt jdt jddt dd
}t|jdksJ |jjt jksJ d S )Nr   r   rj  rF   r   rg   )r   rF   r   )r   rF   rR   )r   r   r   r   r0   rG   z(could not convert string to float: 'foo'rs   rS   r   r1   r.  )r2   r   r  r   r3   r^   ndimr'  rZ   ri   r4   rx   ry   rz   r   r?  r7   r8   r   r   r#   rJ   r   r1   )r9   r  r:   r  r  r}   r=   r=   r>   test_constructor_more  s4   z/TestDataFrameConstructors.test_constructor_morec                 C   sx   t g g d}t g d}t|| t g ddgd}t i ddgd}t|| dd }t | ddgd}t|| d S )NrR   r   rg   r   c                   s   s    dE d H  d S r   r=   r=   r=   r=   r>   	empty_gen  s   zHTestDataFrameConstructors.test_constructor_empty_list.<locals>.empty_genr   )r9   r;   r<   r=  r=   r=   r>   test_constructor_empty_list  s   
z5TestDataFrameConstructors.test_constructor_empty_listc                 C   s|   t ddgddggddgd}t|d sJ |d jtjks J t dtd	i}d
d td	D }t |}t|| d S )NrG   r   rF   r   numr5   r`  r   r   c                 S      g | ]}t |qS r=   r2   rZ   r   r=   r=   r>   r   .  r   zLTestDataFrameConstructors.test_constructor_list_of_lists.<locals>.<listcomp>)	r   r   r1   r2   r   r3   r   r7   r8   )r9   r;   r<   r   rn   r=   r=   r>   test_constructor_list_of_lists%  s   z8TestDataFrameConstructors.test_constructor_list_of_listsc                 C   sx   t ddg}tjd d gtd}||d< |d |d< t|}tt|}t|| |jdks1J t	|d j
| d S )NrG   rF   r0   r   )rF   rG   )r   r2   rZ   ri   r   r  r7   r8   r'  r  r^   )r9   ra   r:   r;   r<   r=   r=   r>   .test_nested_pandasarray_matches_nested_ndarray2  s   zHTestDataFrameConstructors.test_nested_pandasarray_matches_nested_ndarrayc                 C   sZ   t dt dg}tg dg dg|d}t|}tg dg dg|d}t|| d S )Nabcdcdefr  r.   r   rA   r  r   )r  r   r   from_arraysr7   r8   )r9   r   rn   rh  r<   r=   r=   r>   2test_constructor_list_like_data_nested_list_column@  s
   
zLTestDataFrameConstructors.test_constructor_list_like_data_nested_list_columnc                 C   `   t dt dg}d}tjt|d tg dg dg|d W d    d S 1 s)w   Y  d S )Nr   cdez#3 columns passed, passed data had 4rs   r  rF  r   r  rx   ry   rz   r   r9   r   r}   r=   r=   r>   0test_constructor_wrong_length_nested_list_columnJ  s
   "zJTestDataFrameConstructors.test_constructor_wrong_length_nested_list_columnc                 C   rI  )NrD  rJ  zall arrays must be same lengthrs   r  rF  r   rK  rL  r=   r=   r>   2test_constructor_unequal_length_nested_list_columnR  s
   "zLTestDataFrameConstructors.test_constructor_unequal_length_nested_list_columnr   
2021-01-01r   c                 C   s:   t |g ddgd}t dtdgd i}t|| d S )Nr<  r   r   rO  r/   )r   r   r7   r8   r  r=   r=   r>   &test_constructor_one_element_data_list[  s   z@TestDataFrameConstructors.test_constructor_one_element_data_listc                 C   sj   G dd dt j}|ddg|ddgg}ddg}t||d	}tddgddgg|d	}tj||d
d d S )Nc                   @   s&   e Zd Zd	ddZdd Zdd ZdS )
zPTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainerreturnNc                 S   s
   || _ d S r   )_lst)r9   lstr=   r=   r>   __init__o     
zYTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__init__c                 S   s   | j |S r   )rR  __getitem__)r9   nr=   r=   r>   rV  r  s   z\TestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__getitem__c                 S   s
   | j  S r   )rR  __len__)r9   r=   r=   r>   rX  u  rU  zXTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__len__)rQ  N)__name__
__module____qualname__rT  rV  rX  r=   r=   r=   r>   DummyContainern  s    
r\  rG   r   rF   r   r?  r5   r   Fr  )r   Sequencer   r7   r8   )r9   r\  lst_containersr   rn   r<   r=   r=   r>   test_constructor_sequence_likej  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   Fr  )rZ   r   r   r  r7   r8   )r9   rZ   rn   r<   r=   r=   r>   test_constructor_stdlib_array~  s   $z7TestDataFrameConstructors.test_constructor_stdlib_arrayc                 C   s,   t td}t ttd}t|| d S Nr   r   r   r  r7   r8   rb  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 ra  rb  rb  r=   r=   r>   test_constructor_list_of_ranges  s   z9TestDataFrameConstructors.test_constructor_list_of_rangesc                 C   s:   G dd d}t g dgd }t | }t|| d S )Nc                   @      e Zd Zdd ZdS )zATestDataFrameConstructors.test_constructor_iterable.<locals>.Iterc                 s   s    t dD ]}g dV  qd S )Nr   r  )r   )r9   r  r=   r=   r>   __iter__  s   zJTestDataFrameConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)rY  rZ  r[  rf  r=   r=   r=   r>   Iter      rg  r  r   r   )r9   rg  r<   rn   r=   r=   r>   test_constructor_iterable  s   
z3TestDataFrameConstructors.test_constructor_iterablec                 C   s0   t ttd}t ttd}t|| d S ra  r   r  r   r  r7   r8   rb  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 ra  rj  rb  r=   r=   r>   "test_constructor_list_of_iterators  s   z<TestDataFrameConstructors.test_constructor_list_of_iteratorsc                 C   s   dd t dD }dd t dD }ttt dtt dg}t||g}t|| dd t dD }t|}tt ddd}tj||dd	 d S )
Nc                 s   r   r   r=   r  r=   r=   r>   r     r   zGTestDataFrameConstructors.test_constructor_generator.<locals>.<genexpr>r   c                 s   r   r   r=   r  r=   r=   r>   r     r   c                 s   s    | ]}|d gV  qdS )r   Nr=   r  r=   r=   r>   r         r   rH   Fr  )r   r   r  r7   r8   )r9   gen1gen2r<   rn   genr=   r=   r>   test_constructor_generator  s   z4TestDataFrameConstructors.test_constructor_generatorc                 C   s&   t i g}t dgd}t|| d S )Nr   rR   r   rb  r=   r=   r>   test_constructor_list_of_dicts  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 )NrF   rG   r   r   r   r   )r9   rs  r<   r   rn   r=   r=   r>   ,test_constructor_ordered_dict_preserve_order  s   


zFTestDataFrameConstructors.test_constructor_ordered_dict_preserve_orderc                 C   s   | }d|d< d|d< | }d|d< d|d< ddd}t ddgddggddgd}t ||g}t|| t ddgddgddggddgd}t |||g}t|| d S )NrF   r   rG   r   r^  r   r   )r9   rs  row_onerow_two	row_threer<   rn   r=   r=   r>   0test_constructor_ordered_dict_conflicting_orders  s   
"zJTestDataFrameConstructors.test_constructor_ordered_dict_conflicting_ordersc                 C   sT   dd t dD }t|}tg dg dg ddg dg dd}t|| d S )Nc                 S   s"   g | ]}t |g d t|dqS )r   r   r   r+  )r   r5   r  r=   r=   r>   r     r   z[TestDataFrameConstructors.test_constructor_list_of_series_aligned_index.<locals>.<listcomp>r/   r<  ry  )0r9  r   rj  r  )r9   seriesrn   r<   r=   r=   r>   -test_constructor_list_of_series_aligned_index  s   zGTestDataFrameConstructors.test_constructor_list_of_series_aligned_indexc                 C   sJ   G dd dt }ddd}||g}|g}t|}t|}t|| d S )Nc                   @      e Zd ZdS )zTTestDataFrameConstructors.test_constructor_list_of_derived_dicts.<locals>.CustomDictNrY  rZ  r[  r=   r=   r=   r>   
CustomDict      r  r  r/   r   )r  r   r7   r8   )r9   r  r   data_customr   result_customrn   r=   r=   r>   &test_constructor_list_of_derived_dicts  s   

z@TestDataFrameConstructors.test_constructor_list_of_derived_dictsc                 C   sV   t jdt jdd}tjtdd t| W d    d S 1 s$w   Y  d S )Nr   r  r.  z%All arrays must be of the same lengthrs   )r2   r   r  rx   ry   rz   r   r9   r   r=   r=   r>   test_constructor_ragged   s   
"z1TestDataFrameConstructors.test_constructor_raggedc                 C   sD   t td}tddi|d}tdg di|d}tj||dd d S )Nr/   r   r   rR   )r   r   r   Fr  )r   r   r   r7   r8   )r9   rm   r;   r<   r=   r=   r>   test_constructor_scalar  s   z1TestDataFrameConstructors.test_constructor_scalarc                 C   s"   t |d |jdgd}|  d S )Nr   r   )r   rS   r   )r9   r  r;   r=   r=   r>    test_constructor_Series_copy_bug  s   z:TestDataFrameConstructors.test_constructor_Series_copy_bugc                 C   s   i }dddd|d< t g dg dd|d	< t|}|jjs J tjtd
d tddgdddd W d    n1 s>w   Y  tddgt ddgddgdd}tddgddgdddgd}t|| d S )NrG   rF   r/   rp  r   )r.   r/   rF   rG   )r   quxrq  r   rR   rg   zambiguous orderingrs   r   r   r   r.  )	r   r   rS   is_monotonic_increasingrx   ry   rz   r7   r8   r  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 )NrG   rF   r/   r.   r/   r.   r   r  r=   r=   r>    test_constructor_mixed_type_rows   s   z:TestDataFrameConstructors.test_constructor_mixed_type_rowsztuples,lists)r=   r=   r  rt  c                 C   s    t |}t |}t|| d S r   r   )r9   rg  listsrn   r<   r=   r=   r>   test_constructor_tuple'  s   z0TestDataFrameConstructors.test_constructor_tuplec                 C   s4   t dddgi}t dtddgi}t|| d S )Nr   r  r  r   r   r7   r8   rb  r=   r=   r>   test_constructor_list_of_tuples9  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   )
namedtuplePandasabrG   r/   rF   r.   r   )r   r  r   r  r   )r  r  r  r   r7   r8   )r9   r  named_tuplerg  r<   rn   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   r   r/   rG   r   r   )dataclassesr  r   r   r7   r8   )r9   r  r  r   r<   rn   r=   r=   r>   $test_constructor_list_of_dataclassesM  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   r   HLinex0x1r/   rG   )r   r   r  r  )r  r  r   r   r2   r[   r7   r8   )r9   r  r  r  r   r<   rn   r=   r=   r>   7test_constructor_list_of_dataclasses_with_varying_typesX  s   "zQTestDataFrameConstructors.test_constructor_list_of_dataclasses_with_varying_typesc                 C   sx   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 d    d S 1 s5w   Y  d S )
Nr   r  r  r   r   z0asdict() should be called on dataclass instancesrs   rG   r  )	r  r  r   rx   ry   	TypeErrorreescaper   )r9   r  r  r}   r=   r=   r>   1test_constructor_list_of_dataclasses_error_thrownh  s   "zKTestDataFrameConstructors.test_constructor_list_of_dataclasses_error_thrownc              	   C   sr   ddddddddd	d
dddddddg}t g dg dg dg dg dg dd}t |}t|| d S )NrG   r.   r  r   )FirstSecondThirdFourthr   rF   rY  r  )r  r  r  r  rA   r/   r-   r     r\  )r  r  r  r  YYYXXXr  rt  )r  r  r  )r   rY  r-   )NNr  )NNr\  )r  r  r  r  r  r  r   )r9   r   r<   rn   r=   r=   r>   #test_constructor_list_of_dict_orders  s   
z=TestDataFrameConstructors.test_constructor_list_of_dict_orderc                 C   s  t g dg ddd}t|}|jd dksJ t|j|j tjd}t |dd}t|}td|i}t	|| t |t
dd	d
}t|}td|i}t	|| d}tjt|d t|ddgd W d    n1 sqw   Y  t g dtd}t|}|jd dksJ t |dd}t||gj}t||dddgd}t	|| t||gj}t||dddgd}t	|| d S )Nr  r   r   r+  r   r   rh   r/   r\  rR   z<Shape of passed values is \(10, 1\), indices imply \(10, 2\)rs   rG   rF   r   rY   r1   )r   	Unnamed 0r  r   )r   r   r   r7   r  rS   r2   r   r  r8   r   rx   ry   rz   ri   r  )r9   r   r;   r:   r  r<   r}   s1r=   r=   r>   test_constructor_Series_named  s6   z7TestDataFrameConstructors.test_constructor_Series_namedc                 C   s   t tddd}t tddd}tt|dgd|  tt|dgd|  t|dgdjs4J t|dgdjs>J d S )Nr   r   rh   rG   r   )r   r   r7   r8   r   to_framer   )r9   s0r  r=   r=   r>   )test_constructor_Series_named_and_columns  s   zCTestDataFrameConstructors.test_constructor_Series_named_and_columnsc                 C   s   t g dg ddd}t g dg dd}tddg}t||d}t||}|jd dks1J t|| t||d}t||}|jd dksMJ t|j| t|| d S )	Nr  r   r   r+  rR   r   r   r   )	r   r   r   r  r   r7   r8   r  rS   )r9   r  s2other_indexdf1exp1r   exp2r=   r=   r>   +test_constructor_Series_differently_indexed  s   zETestDataFrameConstructors.test_constructor_Series_differently_indexedz#name_in1,name_in2,name_in3,name_out))rm   rm   rm   rm   )rm   rm   NN)rm   NNN)idx1idx2NN)r  r  r  N)r  r  idx3N)NNNNc           
      C   s   t g d|dt g d|dt g d|dg}dd t|g dD }t|}t g d|d}td	d
dtjtjgtjd	d
dtjgtjtjd	d
dgd|d}	t||	 d S )Nr   rh   )r   r   r   )r   r   ec                 S   s"   i | ]\}}|t g d |dqS )r<  rR   r   )r   r  r   r=   r=   r>   r     s    zJTestDataFrameConstructors.test_constructor_index_names.<locals>.<dictcomp>)r   r   r  r   r   r   r   r  r   rG   rF   rR   )r   r   r   r2   r[   r7   r8   )
r9   name_in1name_in2name_in3name_outindicesr{  rn   exp_indr<   r=   r=   r>   test_constructor_index_names  s"   	z6TestDataFrameConstructors.test_constructor_index_namesc                 C   s\   t |jd d }t |jd d }t|j||d}t|jt| t|jt| d S )Nr   r/   r   )r  rS   r   r   rK   r7   r  r   )r9   r  rS   r   rn   r=   r=   r>   test_constructor_manager_resize  s
   z9TestDataFrameConstructors.test_constructor_manager_resizec                 C   s   t |d t|d dddgd}t||jd d ddgf  d}tjt|d t |d t|d d d d W d    d S 1 sFw   Y  d S )Nr   rg   r.  r   zdoes not match index lengthrs   )r   r  r7   r8   r   rx   ry   rz   )r9   r  r;   r}   r=   r=   r>   %test_constructor_mix_series_nonseries  s   $"z?TestDataFrameConstructors.test_constructor_mix_series_nonseriesc                 C   st   d}t jt|d ttjdgddggtjd}W d    n1 s"w   Y  ttjdgddgg}t || d S )Nz6float-dtype values containing NaN and an integer dtypers   rG   r   r0   )r7   r\   r]   r   r2   r[   r+   r8   r9   r}   r;   r<   r=   r=   r>   %test_constructor_miscast_na_int_dtype  s   z?TestDataFrameConstructors.test_constructor_miscast_na_int_dtypec                 C   s^   t ddggddgd}t ddgg}ddg|_t|| t jdgddgd}t|| d S )Nr  r   r   r   )r  r   )r   r   r7   r8   from_records)r9   r;   edf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   rG   r:  U5)r   ri   r5   r7   r8   r2   str_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 )Nc1r:  r   r1   r   )r9   nullable_string_dtyper<   r;   r=   r=   r>   ,test_constructor_empty_with_string_extension%  s   zFTestDataFrameConstructors.test_constructor_empty_with_string_extensionc                 C   s  t dg dg dd}t|t t|jd|j|j t dg dg dd}t|t t|jd|j|j t dd	d
gddgd}t|t tj	ddgddggt
dd	d
gddgd d}tjt|d t dd	d
g W d    n1 s|w   Y  tjt|d t dddgd W d    n1 sw   Y  d}tjt|d t dd	d
gddgt W d    d S 1 sw   Y  d S )N        r  r   r   r#   r   r+   r   rG   rF   r   r0   z*DataFrame constructor not properly called!rs   r   zincompatible data and dtype)r   r7   r8   r2   r  r'  r6   rS   r   rZ   ri   rx   ry   rz   r  r   )r9   r;   r}   r=   r=   r>   test_constructor_single_value+  s8   	"z7TestDataFrameConstructors.test_constructor_single_valuec                 C   s  t t jj}t t jj}t dj}t t jj}tdddtdtdddddd	t 	d
d}|j
}tt dgt |gd  t |gd  tdd}t|| tdddddd|t jd|d|t jd|dit 	d
d}|j
}tt dgt dg t dg t dg t |g ddd||gd}t|| tdddddd|t jdgd
 |d|t jdgd
 |dit 	d
d}|j
}tt dgt dg t dg t dg t |g ddd||gd}t|| d S )Nrc   rG   r   r   20010101  rF   r   )r   rg   r   rM  Er   rR   r+   ABCDEr   r   r   r   r0   r#   ri   )r2   r1   int_rY   float_r   r   r   r   r3   r   r   r  r7   r`   rZ   )r9   intname	floatnamedatetime64name
objectnamer;   rn   r<   r=   r=   r>   test_constructor_with_datetimesK  s   













z9TestDataFrameConstructors.test_constructor_with_datetimesc                 C   s6   t dddd}dd |D }t|}|jdksJ d S )Nrr  rM  r   startr  rD   c                 S      g | ]}|  qS r=   to_pydatetimer   tsr=   r=   r>   r     r   zNTestDataFrameConstructors.test_constructor_with_datetimes1.<locals>.<listcomp>rc   )r   r   r1   )r9   ind	datetimes
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 )Nrr  rM  r   r  c                 S   r  r=   r  r  r=   r=   r>   r     r   zNTestDataFrameConstructors.test_constructor_with_datetimes2.<locals>.<listcomp>c                 S   r  r=   )r   r  r=   r=   r>   r     r   r  r   datesdatetime64[ns]ri   rR   )r   r   r   r   r2   r1   r7   r`   )r9   r  r  r  r;   rn   r<   r=   r=   r>    test_constructor_with_datetimes2  s   z:TestDataFrameConstructors.test_constructor_with_datetimes2c                 C   s   t d}|tddd}td|idgd}|jd |ks J t|jt	ddi td|ig}|jd |ks;J t|jt	ddi d S )	Nr    rG   zEnd Dater   rR   r   datetime64[ns, US/Eastern])
pytztimezonelocalizer   r   iatr7   r`   r   r   )r9   rE   rQ   r;   r=   r=   r>    test_constructor_with_datetimes3  s   
z:TestDataFrameConstructors.test_constructor_with_datetimes3c                 C   s   t ddd}td|i}|jd jd u sJ t dddd}td|i}t|jd jdks/J t dddd}td|i}t|jd jdksHJ d S )	N20130101r/   rs  rT   r   UTCrC   r  )r   r   r  rE   r5   )r9   drr;   r=   r=   r>    test_constructor_with_datetimes4  s   z:TestDataFrameConstructors.test_constructor_with_datetimes4c                 C   s^   t ddddd}td| jddi}t }||d< t|| td|i}t|| d S )	N1/1/2011r   10sr  rD   r  rE   r   Tdropr   r   	to_seriesreset_indexr7   r8   )r9   r  r<   r;   r=   r=   r>    test_constructor_with_datetimes5  s   z:TestDataFrameConstructors.test_constructor_with_datetimes5c                 C   sV   t ddddd}t dddd}t||d}t| jdd	|d}t|| d S )
Nr  r   r  r  r  rD   r  r   Tr  r  )r9   r  i_no_tzr;   r<   r=   r=   r>    test_constructor_with_datetimes6  s
   z:TestDataFrameConstructors.test_constructor_with_datetimes6r:   rp   c                 C   s*   t |j}ttdg}t|| d S )Nr  )r   r   r   r2   r1   r7   r`   )r9   r:   rn   r<   r=   r=   r>   %test_constructor_datetimes_with_nulls  s   
z?TestDataFrameConstructors.test_constructor_datetimes_with_nullsorder)Kr   r   Fr1   )zdatetime64[M]zdatetime64[D]zdatetime64[h]zdatetime64[m]zdatetime64[s]zdatetime64[ms]zdatetime64[us]r  c                 C   sT   t jg dg dg||d}t|}tg dg dg}|j|d}t|| d S )N)z
2015-01-01z
2015-01-02z
2015-01-03)z
2017-01-01z
2017-01-02z
2017-02-03r1   r	  r0   )r2   rZ   r   r6   r7   r8   r9   r	  r1   nar;   r<   r=   r=   r>   !test_constructor_datetimes_non_ns  s   z;TestDataFrameConstructors.test_constructor_datetimes_non_ns)z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 )NrG   rM  rF   r.   r   r  r  )r2   rZ   r  r   r6   r   r7   r8   r  r=   r=   r>   !test_constructor_timedelta_non_ns  s   z;TestDataFrameConstructors.test_constructor_timedelta_non_nsc                 C   s  t dd tdD }|j}ttdgd }t|| t dd tdD }|j}ttdgd }t|| t ddd	gi}|jjd
 tdksQJ t ddg}|jjd
 tdksdJ t ddg}|jjd
 tdkswJ t dddgi}|jjd
 tdksJ t dddgi}|jjd
 tdksJ t dditdd}|jjd
 tdksJ t dditdd}|jjd
 tdksJ t g dg dt	ddd tdD g dd}|j}ttdtdtdtdtdgt	dd}t|| d S )Nc                 S   s   g | ]}t d qS )r   )r2   r3   r   r=   r=   r>   r   1  r   zSTestDataFrameConstructors.test_constructor_for_list_with_dtypes.<locals>.<listcomp>r   r   c                 S   s    g | ]}t jt d ddqS )r   r*   r0   )r2   rZ   r3   r   r=   r=   r>   r   6  s     r*   r   l        l       r   r+   rG   rF   r   r   r#   r/   rR   )rG   rF   r.   r  )g333333?gffffff@gffffff@g333333@rD  c                 S   s   g | ]}t d ddqS )  rG   )r   r  r=   r=   r>   r   Y  r!  r.   )r   rF   r  r  r  ri   r  abcde)
r   r   r   r   r2   r1   r7   r`   r_   r  )r9   r;   rn   r<   r=   r=   r>   %test_constructor_for_list_with_dtypes/  sR   	
z?TestDataFrameConstructors.test_constructor_for_list_with_dtypesc                 C   s@   t |dd}d|d< |d dk sJ |d dk rJ d S )NTr   r   r   )r   r2  )r9   r  copr=   r=   r>   test_constructor_frame_copyj  s   z5TestDataFrameConstructors.test_constructor_frame_copyc                 C   s   |s0t |j}d|jd< |jd dk sJ t |jdd}d|jd< |jd dk r.J d S |j }t |}|jjd jjsCJ d|d< |jd dksPJ t |dd}|jjd jjr`J d	|d< |jd d	ksmJ d S )
Nr   Tr  rA   r   r   r   Fi  )	r   r^   r2  r   rK   r   r   r   r_   )r9   r  rM   r;   r:   r=   r=   r>   test_constructor_ndarray_copyp  s    



z7TestDataFrameConstructors.test_constructor_ndarray_copyc                 C   sB   |j }td|d idd}d|d d d < |d dk rJ d S )Nr   Tr  r   )r?  r   r2  )r9   r  r{  r;   r=   r=   r>   test_constructor_series_copy  s   z6TestDataFrameConstructors.test_constructor_series_copyr;   rR   g?g@r   r  rF  )r  rG   rF   r   c                 C   s   t t|jD ]}|jd d |f  qtt|jt|j }t|dkrJtjt	dd |j
d d tjf  W d    d S 1 sCw   Y  d S t|dkrit|jd d |d f |j
d d tjf  d S t|jd d |f |j
d d tjf  d S )Nr   z^nan$rs   rG   )r   rJ   r   r_   r2   r3   r   rx   ry   KeyErrorr   r[   r7   r`   r8   )r9   r;   r  indexerr=   r=   r>   test_constructor_with_nas  s   "2.z3TestDataFrameConstructors.test_constructor_with_nasc                 C   s:   t dtjdgi}|d jtjksJ |d d rJ d S )Nr   FrG   )r   r2   r[   r1   r   )r9   r   r=   r=   r>   &test_constructor_lists_to_object_dtype  s   z@TestDataFrameConstructors.test_constructor_lists_to_object_dtypec                 C   sZ   t g d}t|dd}t|d}t||jd}t||||d}t|| d S )Nr   r   rG   r  r0   r  )	r   r2   rZ   r4   broadcast_tor   r1   r7   r8   )r9   catr:   rn   r<   r=   r=   r>   *test_constructor_ndarray_categorical_dtype  s   zDTestDataFrameConstructors.test_constructor_ndarray_categorical_dtypec                 C   s   t dtdidd}ttdddd}t|d | ttddd}| }ttdddd}t|d | |jdd}ttdddd}t|d | t tddd}ttdddd}t|d | d S )	Nr   r   r   r0   rX   r   r   rh   )r   r  r   r7   r`   r  )r9   r;   r<   r  rn   r=   r=   r>   test_constructor_categorical  s   z6TestDataFrameConstructors.test_constructor_categoricalc                 C   sl   d}t jt|d tttdg}W d    n1 sw   Y  tdttdddi}t || d S )N%will be changed to match the behaviorrs   r   r   r   r0   r7   r\   r]   r   r   r  r   r8   r  r=   r=   r>   -test_construct_from_1item_list_of_categorical  s   zGTestDataFrameConstructors.test_construct_from_1item_list_of_categoricalc                 C   s   d}t jt|d tttdttdg}W d    n1 s"w   Y  tttdddttdddddd	gd
}t || d S )Nr"  rs   r   abdr   r0   rH   r   rG   r   r#  r  r=   r=   r>   (test_construct_from_list_of_categoricals  s   zBTestDataFrameConstructors.test_construct_from_list_of_categoricalsc                 C   s   d}t jt|d tttdtdg}W d    n1 s w   Y  tttdddtdddd	gd
}t || d S )Nr"  rs   r   r  r   r0   rH   r   rG   r   r#  r  r=   r=   r>   %test_from_nested_listlike_mixed_types  s   z?TestDataFrameConstructors.test_from_nested_listlike_mixed_typesc              	   C   s   d dg}d}tjt|d6 tjt|d ttt	dtt	dg W d    n1 s0w   Y  W d    d S W d    d S 1 sHw   Y  d S )Nrr   z;Length of values \(6\) does not match length of index \(3\)r"  rs   r   abdefg)
rw   rx   ry   rz   r7   r\   r]   r   r   r  )r9   r}   msg2r=   r=   r>   0test_construct_from_listlikes_mismatched_lengths  s   "zJTestDataFrameConstructors.test_construct_from_listlikes_mismatched_lengthsc                 C   s   g d}t |d}t |dd}t|| g d}t |d}t |dd}t|| tddd}t ttjtjtjgg dd	}||_t	d
|i}t	d
t g dddi|d}t
|| d S )N)rG   rF   r/   rG   r   r0   )r   r   r   r   20000101r/   rs  r   )r^   
categoriesr   rR   )r   r6   r7   r`   r   r   r2   r[   rS   r   r8   )r9   r  r6  resrS   r<   r;   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J d S )Nr   rG   rF   r   r  )r   r   r1   )r9   r1   r   r=   r=   r>   %test_check_dtype_empty_numeric_column	  s   z?TestDataFrameConstructors.test_check_dtype_empty_numeric_columnc                 C   sF   t dddgidg|d}|r|tjv rt| |jjjdks!J d S )Nr   rG   rF   r   r  ri   )r   r7   BYTES_DTYPESr  &mark_array_manager_not_yet_implementedr   r1   rY   )r9   requestr1   rM   r   r=   r=   r>   $test_check_dtype_empty_string_column,	  s   
z>TestDataFrameConstructors.test_check_dtype_empty_string_columnc                 C   sL   t dtd j}t dti}t|| tt dtdj}t|| d S )Nr   r  )r   ri   r  r   r7   r`   r   rb  r=   r=   r>   test_to_frame_with_falsey_names:	  s
   z9TestDataFrameConstructors.test_to_frame_with_falsey_names)Nr$   r   c                 C   s\   t dg di|p	dd}t tddg|d}t|| t dtdi|d}t|| d S )Nr   )r   rG   rF   r/   r.   r+   r0   r   r  )r   r   r7   r8   )r9   r1   r<   rn   r=   r=   r>   test_constructor_range_dtypeC	  s
   z6TestDataFrameConstructors.test_constructor_range_dtypec                 C   sT   G dd dt }tg dg dg}t||g d|g dg}t|| d S )Nc                   @   r}  )zETestDataFrameConstructors.test_frame_from_list_subclass.<locals>.ListNr~  r=   r=   r=   r>   ListR	  r  r6  r  rt  )r  r   r7   r8   )r9   r6  r<   rn   r=   r=   r>   test_frame_from_list_subclassP	  s    z7TestDataFrameConstructors.test_frame_from_list_subclassextension_arraabbcz1/1/2017z1/1/2018)r  endr  c                 C   s$   t t|}t |}t|| d S r   r  )r9   r8  r<   rn   r=   r=   r>   %test_constructor_with_extension_arrayY	  s   z?TestDataFrameConstructors.test_constructor_with_extension_arrayc                 C   s\   t  }||f}t|ttdtddi|gd}tg dtt|gd}t|| d S )Nr/   rR   r   r<  )r   todayr   r   r   r   r7   r8   )r9   r  tuprn   r<   r=   r=   r>   *test_datetime_date_tuple_columns_from_dicth	  s
   "zDTestDataFrameConstructors.test_datetime_date_tuple_columns_from_dictc                 C   sx   t g dtg dd}t g dtg dd}t||g}ttdddtjtjgg d	gg d
d}t|| d S )N)'   rA   r.   )femalemaleunknownrR   )rF      rF         )fr@  r   rA  rB  r?  rA   r.   )g      c@g     @n@g     b@r   r   )r@  rA  rB  rF  r   r   )r   r   r   r2   rZ   r[   r7   r8   )r9   r  r  rn   r<   r=   r=   r>   /test_construct_with_two_categoricalindex_seriesp	  s   
zITestDataFrameConstructors.test_construct_with_two_categoricalindex_seriesc                 C   s  t tdd}t|d d}t|d d}t||d}ttdddd	tdd
dd	td
ddd	tdddd	tdddd	tdddd	tdddd	tdddd	tdddd	tdddd	g
dd}tdgd t	j
gd  t	j
gd dgd  d|d}t|| d S )Nr   r   r   r   r8  gMbXg#@r  )closedg3@g33333=@gC@g     H@g33333M@g33333SQ@gS@gfffffFV@r   T)orderedrR   )r   r   r   value_countsheadtailr   r   r   r2   r[   r7   r8   )r9   ra   ser1ser2rn   rS   r<   r=   r=   r>   1test_constructor_series_nonexact_categoricalindex~	  s,   .zKTestDataFrameConstructors.test_constructor_series_nonexact_categoricalindexc                 C   s   t dddddt dddddfg}tj|ddgd	}t|}|d
 d |d d ks,J |d d |d d ks:J t|d
 }t|d tsIJ |d |d d ksUJ d S )Nr  r  r   r  r  r   )DateM8[us])ForecastingrQ  r0   rP  rR  rG   )r   r2   rZ   r   r   r   r   )r9   r  r:   r;   r  r=   r=   r>   test_from_M8_structured	  s   "z1TestDataFrameConstructors.test_from_M8_structuredc                 C   s>   G dd dt }td|dddddgi}|j jdksJ d S )Nc                   @   r}  )zOTestDataFrameConstructors.test_from_datetime_subclass.<locals>.DatetimeSubclassNr~  r=   r=   r=   r>   DatetimeSubclass	  r  rT  r   i  rG   r  )r   r   r1   )r9   rT  r   r=   r=   r>   test_from_datetime_subclass	  s   z5TestDataFrameConstructors.test_from_datetime_subclassc                 C   sV   t dddd}d}tjt|d t|tdd W d    d S 1 s$w   Y  d S )	Nr@   r/   rB   rC   z@Shape of passed values|Passed arrays should have the same lengthrs   r.   rR   )r   rx   ry   rz   r   r   )r9   rN   r}   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s'J d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50r  r  r.  rg   rc   )	r   r2   r  r   r   r  rJ   
issubdtyper1   )r9   r  r  r;   r=   r=   r>   !test_frame_ctor_datetime64_column	  s   
 z;TestDataFrameConstructors.test_frame_ctor_datetime64_columnc                 C   sz   g dg dg}t tjdddd |D d}t|jts J t|jtr(J t tjdd|d}t|jts;J d S )N)r   r   r   r   )r   r   r   r   r.   c                 S   r@  r=   rA  r   r=   r=   r>   r   	  r   zYTestDataFrameConstructors.test_dataframe_constructor_infer_multiindex.<locals>.<listcomp>rR   r   )r   r2   r   r  r   rS   r   r   )r9   index_listsmultir=   r=   r>   +test_dataframe_constructor_infer_multiindex	  s   zETestDataFrameConstructors.test_dataframe_constructor_infer_multiindex
input_valsr9  r   r  Hr  r  c                 C   s6   t d|i|d}t d|id|i}t|| d S )Nr   r0   )r   r6   r7   r8   )r9   r\  r   rn   r<   r=   r=   r>   test_constructor_list_str	  s   z3TestDataFrameConstructors.test_constructor_list_strc                 C   s8   t dg di|d}t dg ditd}t|| d S )Nr   r+  r0   )z1.0z2.0N)r   ri   r7   r8   )r9   r   rn   r<   r=   r=   r>   test_constructor_list_str_na	  s   z6TestDataFrameConstructors.test_constructor_list_str_nar   FTc           	         s  |r|s|t jt j vrt| tjddg|d tjddg|djjdv r+d S t	jddg|d
 }t d|dd	d
 ddtf fdd}|sY|  djd< djd< |si|d t jtdd t	jddgjdjd d df< W d    n1 sw   Y  jjd jksJ |s|s|d |r jjdkrǈ d  jddksJ d jddksJ n d  jdksJ d jdksJ d |d ksJ d S |sd dksJ d S d S )NrG   rF   r0   r/   r.   )SUr   r  c                 S   s,   t | tjr	| jS t | jtjr| jjS tr   )r   r2   ndarraybaser1   _ndarrayr  r   r=   r=   r>   get_base	  s
   z<TestDataFrameConstructors.test_dict_nocopy.<locals>.get_baseFc_onlyc                    sv   t fddjjD dksJ | rd S t  fddjjD dks'J t fddjjD dks9J d S )Nc                 3   s    | ]}| u V  qd S r   r=   r   )r   r=   r>   r   
  rm  zRTestDataFrameConstructors.test_dict_nocopy.<locals>.check_views.<locals>.<genexpr>rG   c                 3   *    | ]}t |jtjr| u V  qd S r   r   r1   r2   r   )r   rf  r=   r>   r   
      

c                 3   rh  r   ri  r   )r   rf  r=   r>   r   
  rj  )sumrK   r   )rg  r   r   r   r;   rf  r=   r>   check_views
  s   "z?TestDataFrameConstructors.test_dict_nocopy.<locals>.check_viewsr   r   rH   Tzwill attempt to setrs   r  .   r   rq   )F)r7   STRING_DTYPESr0  r  r1  r2   rZ   r1   r   r  r   r   r  r_   r\   r  r   type)	r9   r2  r   any_numeric_ea_dtypeany_numpy_dtyperM   r   c_origrm  r=   rl  r>   test_dict_nocopy	  sP   
	

$z*TestDataFrameConstructors.test_dict_nocopyc                 C   s2   t tddddgd}t dgd}t|| d S )NrG   r   rh   r   r   r  rb  r=   r=   r>   'test_from_series_with_name_with_columnsG
  s   zATestDataFrameConstructors.test_from_series_with_name_with_columnsc                 C   sV   t g dg dgg dg dgd}t g dg dgtg dd}t|| d S )Nr  rt  )r   r   r   r   r   ))r   r   )r   r   )r   r   )r   r   rf  r7   r8   rb  r=   r=   r>   test_nested_list_columnsM
  s   z2TestDataFrameConstructors.test_nested_list_columnsc           
      C   s   t jddd}|jtdd}t|}|jdksJ |j|j	k
 s&J ||k
 
 s0J t jg d}|jtdd}t|}|jdksMJ |j|j	k
 sWJ ||k
 
 saJ tj||||f j}t|}t||||d}	t||	 d S )	Nz
2016-04-05r/   rs  rG   r   rG   r/   )r/   r.   r   rA   r  )r  r  rI   r6   ri   r4   r   r'  r   r1   r2  IntervalIndexfrom_breaksr2   r_r  r7   r8   )
r9   pir   r;   iidata2r   data3r	  r<   r=   r=   r>   1test_from_2d_object_array_of_periods_or_intervalsX
  s    zKTestDataFrameConstructors.test_from_2d_object_array_of_periods_or_intervalszcol_a, col_bc                 C   sF   d}t jt|d t||d W d    d S 1 sw   Y  d S )Nz,Per-column arrays must each be 1-dimensionalrs   r   rI  )r9   col_acol_br}   r=   r=   r>   test_error_from_2darrayn
  s   	"z1TestDataFrameConstructors.test_error_from_2darrayc                 C   s   t g dg ddd}t|d j|d jrJ d|jd< t dtjtjgtjtjtjgtjtjtjgdg dtd	}t|| d S )
Nr  r   F)rS   r   r   r   r   r   r   rS   r1   )	r   r2   r   _valuesr_   r[   ri   r7   r8   rm  r=   r=   r>   &test_from_dict_with_missing_copy_false{
  s   
	z@TestDataFrameConstructors.test_from_dict_with_missing_copy_falsec                 C   sN   d}t jt|d ttg ddgd W d    d S 1 s w   Y  d S )Nro  rs   r   r   r`  )rx   ry   rz   r   r2   rZ   rJ  r=   r=   r>   1test_construction_empty_array_multi_column_raises
  s   "zKTestDataFrameConstructors.test_construction_empty_array_multi_column_raises)rY  rZ  r[  r?   rP   rV   rb   rf   ro   r~   rx   markparametrizer   r   r   r   r   r   r   r   r   r   r  skip_array_manager_invalid_testr   r   r   r   r   r   r   r
  r  r  r2   rZ   ri   r  r%   r&   r'   r  r%  r7  r;  r>  r@  rC  rG  rK  r[   rN  r   rX  r]  ra  rc  ri  rn  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r	   r   r   r  r  r  r  r  r  r
  r  slowr&  r(  r  r   r   r1   r   r)  r  BooleanDtypeFloat64Dtype
Int64DtypeStringDtyper1  r3  r4  r7  r9  r<  r>  rB  rC  rH  rM  rN  rP  r_  r`  rc  rd  ri  rk  rl  rq  rr  r  r   rt  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rd   rv   rp   r  r  r  r  r  r  r  r   r  r  r   r!  r$  r&  r'  r*  r.  r7   ALL_INT_NUMPY_DTYPESALL_INT_EA_DTYPESFLOAT_NUMPY_DTYPESCOMPLEX_DTYPESDATETIME64_DTYPESTIMEDELTA64_DTYPESBOOL_DTYPESr/  ro  r0  OBJECT_DTYPESr3  r4  arm_slowr5  r7  r   r   r   r   r  r;  r>  rG  rO  rS  rU  rV  rX  r[  r   r^  r_  rt  ru  rv  r  r  r  r  r=   r=   r=   r>   r,   H   s   
!

	


	






&	



4	

=J
/"


	
'
	


	

&&
 G;"(,$&


			

	f"r,   c                   @   s   e Zd Zdd Zdd ZdS )&TestDataFrameConstructorIndexInferencec                 C   s|   t jdddd}ttjt||}t jdddd}ttjt||}t||d}t jdddd}t	|j
| d S )Nz1/1/19991/1/2012r   r  z1/1/1980z	12/1/2001)r  r  )r  r  r   r2   r   r  rJ   r   r7   r  rS   )r9   rng1r  rng2r  r;   r6  r=   r=   r>   Atest_frame_from_dict_of_series_overlapping_monthly_period_indexes
  s   zhTestDataFrameConstructorIndexInference.test_frame_from_dict_of_series_overlapping_monthly_period_indexesc                 C   s,  t ddd}ttd|d}ttd|dd}ttd|dd}ttd}t|||d}tt|jt|j t|j td}t	
|j| t|||d	}tt|jt|j t|j td}	t	
|j|	 t|||d
}
tt|jt|j t|j td}	t	
|
j|	 t|||d}tt|jt|j t|j td}t	
|j| d}tjt|d t||||d W d    n1 sw   Y  tjt|d t|||d W d    n1 sw   Y  tjt|d t|||d W d    d S 1 sw   Y  d S )Nr@   r/   rs  rR   r  z
US/Centralr   r0   )r   r   rg   )rg   r   r   )r   rg   r   z0Cannot join tz-naive with tz-aware DatetimeIndexrs   )r   rg   r   rM  )r   rg   rM  )rM  r   rg   )r   r   r   rj   r   r   r  rS   ri   r7   r  rx   ry   r  )r9   rN   rM  rN  ser3ser4r  	exp_indexr   
exp_index3r	  df4
exp_index4r}   r=   r=   r>   /test_frame_from_dict_with_mixed_tzaware_indexes
  sF   $zVTestDataFrameConstructorIndexInference.test_frame_from_dict_with_mixed_tzaware_indexesN)rY  rZ  r[  r  r  r=   r=   r=   r>   r  
  s    r  c                   @   re  ))TestDataFrameConstructorWithDtypeCoercionc                 C   s  t jdd}d}tjt|d t|dd W d    n1 s!w   Y  td  t| dd W d    n1 s>w   Y  t j|d< d}tjt|d t|dd W d    n1 sbw   Y  tjt|d t	|d	 dd W d    n1 sw   Y  d
}t
jt|d t|d W d    n1 sw   Y  t
jt|d t	|d	 d W d    d S 1 sw   Y  d S )Nr   r   z!if they cannot be cast losslesslyrs   rW   r0   r   z)passing float-dtype values containing NaNr   z9Cannot convert non-finite values \(NA or inf\) to integer)r2   r   r  r7   r\   r]   r   roundr[   r   rx   ry   rz   r6   )r9   r:   r}   r=   r=   r>   "test_floating_values_integer_dtype
  s.   
"zLTestDataFrameConstructorWithDtypeCoercion.test_floating_values_integer_dtypeN)rY  rZ  r[  r  r=   r=   r=   r>   r  
  rh  r  c                   @   s   e Zd Zejdddgdd Zejdddgd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zejdeegdd Zd d! Zd"d# Zd$d% Zd&S )'&TestDataFrameConstructorWithDatetimeTZrE   r  zdateutil/US/Easternc           
      C   s   t dddd}||}td|d|d}td|j}|d	 j|ks$J d
d |D }dd |D }td|i}||d< ||d< ||d< |j}ttdt|dtdt|dgg dd}	t	
||	 d S )N2011/1/12012/1/1W-FRIr  r   r.  rR   rq   rg   c                 S   r  r=   r  r  r=   r=   r>   r   
  r   zeTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypes.<locals>.<listcomp>c                 S   r  r=   r  r  r=   r=   r>   r   
  r   r  dr_tzdatetimes_naivedatetimes_with_tzr  r  )r  r  r  r  )r   rj   r   r   tzinfor1   r   r   r2   r7   r`   )
r9   rE   r  r  r;   tz_expectedr  r  rn   r<   r=   r=   r>   *test_construction_preserves_tzaware_dtypes
  s*   
	zQTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypespydtTFc           	      C   s:  |}t d|d}|r| }t d}tt td|gidd}W d    n1 s+w   Y  td|gi}t|| tt td|idgdd}W d    n1 sWw   Y  t|| tt t|gdd}W d    n1 syw   Y  t|| tt ttj|gt	ddd}W d    n1 sw   Y  t|| tt t|dgdgdd}W d    n1 sw   Y  t|| tt tt
|ggdd}W d    n1 sw   Y  t|| tt t|ggdgdd}W d    n	1 sw   Y  t|| d S )	N2019r  r   r  r0   r  r:  r  )r   r  r7   r\   r]   r   r8   r2   rZ   ri   r   assert_equal)	r9   tz_aware_fixturer  rE   r  ts_naivern   r<   r;   r=   r=   r>   'test_constructor_data_aware_dtype_naive  sD   zNTestDataFrameConstructorWithDatetimeTZ.test_constructor_data_aware_dtype_naivec                 C   s   t tdddddd}tddd}t||d	}|d
 js!J d|d
 jd
ks*J t|d
 t|d
d t|d t|dd d S )Nr  r/   r  rC   r   rh   20130110rs  r.  r   zM8[ns, US/Easternrg   )r   r   r   r1   rY   r7   r`   r   )r9   rm   r  r;   r=   r=   r>   test_from_dict/  s   z5TestDataFrameConstructorWithDatetimeTZ.test_from_dictc                 C   s   t ddddd}t|}t|d t|dd tt|}t|d t|dd t dddd}t|}t|d t|dd tt|}t|d t|dd d S )	Nr  r/   r  r   )rD   rE   rY   rh   rC   r   )r   r   r7   r`   r   )r9   r  r   r=   r=   r>   test_from_index>  s   z6TestDataFrameConstructorWithDatetimeTZ.test_from_indexc                 C   sB   t ddd}t||d}td|d|d td|jd|d d S )Nr  r   rs  rR   r   r   )r   r   r   r^   )r9   r  r  r=   r=   r>   +test_frame_dict_constructor_datetime64_1680M  s   zRTestDataFrameConstructorWithDatetimeTZ.test_frame_dict_constructor_datetime64_1680c                 C   s@   t dddd}t|}td|d|d}|d   sJ d S )	Nr  r  r  r  r   r.  rR   rg   )r   r   r   r   r2  )r9   r  r  r   r=   r=   r>   +test_frame_datetime64_mixed_index_ctor_1681U  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/   r  r  )r  rD   r  rE   
timestampsr   r  z20130101T10:01:00z20130101T10:02:00)r   r   r   r7   r8   )r9   r  rn   r<   r=   r=   r>   test_frame_timeseries_column]  s   


	zCTestDataFrameConstructorWithDatetimeTZ.test_frame_timeseries_columnc                 C   sf   ddg}ddddddd	d
}t |g d|d}t ddtjtjfg|tg dd}t|| d S )NNevadaOhio333333@333333@)r    r  333333?@)r  r  r  )r  r  )r  r  i  r   )r  r  )r  r  rj  )r   r2   r[   r   r7   r8   )r9   r   poprn   r<   r=   r=   r>   test_nested_dict_constructionl  s   

zDTestDataFrameConstructorWithDatetimeTZ.test_nested_dict_constructionc                 C   sd   t dddd}|jtdd}t|}|jdksJ |j|jk	 s&J ||k	 	 s0J d S )Nz2016-04-05 04:30r/   r  rC   rG   r   rw  )
r   rI   r6   ri   r4   r   r'  r   r1   r2  )r9   rN   r   r;   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|g dd}g d}|j|k	 sAJ d S )Nz2013-01-01 00:00:00z2013-01-02 00:00:00z2013-01-03 00:00:00z2013-01-01 00:00:00-0500r  r  z2013-01-03 00:00:00-0500z2013-01-01 00:00:00+0100CETz2013-01-03 00:00:00+0100r0   r   r   )r  r  zdatetime64[ns, CET])
r2   rZ   r   r  rp   ri   r  r   r   r2  )r9   r:   r-  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]r0   )r2   r3   r4   r   r6   r7   r8   )r9   
array_dim2r;   r<   r=   r=   r>   test_from_2d_ndarray_with_dtype  s   zFTestDataFrameConstructorWithDatetimeTZ.test_from_2d_ndarray_with_dtyper   c                 C   s   |h d}d|j  d}tjt|d td|i W d    n1 s%w   Y  tjt|d t| W d    d S 1 sAw   Y  d S )N>   rG   rF   r/   'z' type is unorderedrs   r   )rY  rx   ry   r  r   r   )r9   r   r^   r}   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J d S )	Nr   r-   r  r0   r.   r/   c                 s   s    | ]}t |tV  qd S r   )r   r   )r   r:   r=   r=   r>   r     s    zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelike.<locals>.<genexpr>)r2   r3   r4   r   r2  rK   r   r   r=   r=   r>   +test_construction_from_ndarray_datetimelike  s   zRTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelikec                 C   s   t jdd}tdgj}d}tjt|d t	|dg|d W d    n1 s*w   Y  tg d}tjt|d t	|dd	gd
 W d    d S 1 sQw   Y  d S )Nr   rF   r   z'len\(arrays\) must match len\(columns\)rs   r   r  )r   r   r  r   r   )
r2   r   r  r  rZ   r1   rx   ry   rz   r   )r9   r:   r1   r}   arr2r=   r=   r>   >test_construction_from_ndarray_with_eadtype_mismatched_columns  s   "zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_with_eadtype_mismatched_columnsc                 C   s   g dg dg}t jtdd t|ddhd W d    n1 s"w   Y  t jtdd t|h d	d
 W d    d S 1 sBw   Y  d S )Nr  rt  zindex cannot be a setrs   r   r   rR   zcolumns cannot be a set>   r   r   r   r   rI  r  r=   r=   r>   "test_columns_indexes_raise_on_sets  s   "zITestDataFrameConstructorWithDatetimeTZ.test_columns_indexes_raise_on_setsN)rY  rZ  r[  rx   r  r  r  r  r  r  r  r  r  r  r  r  r  set	frozensetr  r  r  r  r=   r=   r=   r>   r  
  s&    

&	

r  c                 C   s   t | tr
| jd S | jd S )Nr   r   )r   r   r_   re  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u rdg d< |d u rtjfi  S |tu r5tu r. fddS  fddS tu r@ fddS  fd	dS )
NrS   rF   r   r   c                    s   | | dfi  |S )NrH   r=   r   kwargsextrar{   r=   r>   r     s    z,TestFromScalar.constructor.<locals>.<lambda>c                    s   d| ifi  |S Nr   r=   r  r  r=   r>   r     r!  c                    s   | | gfi  |S r   r=   r  r  r=   r>   r     r!  c                    s   d| | gifi  |S r  r=   r  r  r=   r>   r     s    
)paramr   r   r  r  r  r   )r9   r2  r{   boxr=   r  r>   r     s   
zTestFromScalar.constructorr1   rc   ru   c                 C   s8   |t j|d}t|j|ksJ t| sJ d S r5  )r  rp   r2   r2  r   r   )r9   r1   r   r   r=   r=   r>   test_from_nat_scalar  s   z#TestFromScalar.test_from_nat_scalarc                 C   s(   t d}||dd}t||ksJ d S )NrG   ru   r0   r   r  )r9   r   r  r   r=   r=   r>   *test_from_timedelta_scalar_preserves_nanos  s   z9TestFromScalar.test_from_timedelta_scalar_preserves_nanosc                 C   s,   |t d }||dd}t||ksJ d S )NrG   rc   r0   r  )r9   r   fixed_now_tsr  r   r=   r=   r>   *test_from_timestamp_scalar_preserves_nanos  s   z9TestFromScalar.test_from_timestamp_scalar_preserves_nanosc                 C   s4   t d}| }||td}tt|tjsJ d S )NrG   r0   )r   to_timedelta64ri   r   r  r2   r  )r9   r   r  td64r   r=   r=   r>   #test_from_timedelta64_scalar_object  s   z2TestFromScalar.test_from_timedelta64_scalar_objectclsc                 C   s   |dd}t jdt jdi| }d}|t ju rdddg}tjt|d |||d	 W d    n1 s5w   Y  |d
d}tjt|d |||d	 W d    d S 1 sXw   Y  d S )Nrp   rq   ru   rc   zCannot castrr   z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rs   r0   r.   )r2   rv   r  rw   rx   ry   r  )r9   r   r  rL  r1   r}   r=   r=   r>   (test_from_scalar_datetimelike_mismatched  s    


"z7TestFromScalar.test_from_scalar_datetimelike_mismatchedc                 C   sB   t ddd}|tju rt|d}||}tt||u sJ d S )N'  rG   rM  )r   r2   rv   rp  r  r9   r   r  rL  rn   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u rt|d}||}tt||u s%J d S )Nr  rG   i  rM  )r   r2   r  rp  r  r  r=   r=   r>   !test_from_out_of_bounds_timedelta+  s
   
z0TestFromScalar.test_from_out_of_bounds_timedeltac                 C   s|   d}t d|d}t d}tjtdd ||dd}W d    n1 s$w   Y  t|jdks3J t||ks<J d S )Nr  r  r  zData is timezone-awarers   rc   r0   )r   r7   r\   r]   r2   r2  r   )r9   r   rE   r  r  rn   r=   r=   r>   test_tzaware_data_tznaive_dtype4  s   z.TestFromScalar.test_tzaware_data_tznaive_dtype)rY  rZ  r[  rx   fixturer  r  r   r  r  r  r  r  r  r2   rv   r  r  r   r  r   r  r  r=   r=   r=   r>   r    s    




r  c                   @   sj   e Zd Zejddgddd Zejdd Zdd	 Zd
d Zdd Z	dd Z
ejjddddd ZdS )TestAllowNonNanoTFr  c                 C   s   |j S r   )r  )r9   r2  r=   r=   r>   as_tdE  s   zTestAllowNonNano.as_tdc                 C   sH   t dt jd}|r||d  }tj||jdS tj||jdS )Nr   zM8[s]r   r0   )	r2   r3   r6   r+   r   r   _simple_newr1   r   )r9   r  r^   r=   r=   r>   r:   I  s
   zTestAllowNonNano.arrc                 C      t |}|j|jksJ d S r   )r   r1   )r9   r:   rm   r=   r=   r>   test_index_allow_non_nanoR     z*TestAllowNonNano.test_index_allow_non_nanoc                 C   s,   |rt |}nt|}|j|jksJ d S r   )r  TimedeltaIndexr   r1   )r9   r:   r  rm   r=   r=   r>   test_dti_tdi_allow_non_nanoV  s   z,TestAllowNonNano.test_dti_tdi_allow_non_nanoc                 C   r  r   )r   r1   )r9   r:   ra   r=   r=   r>   test_series_allow_non_nano]  r  z+TestAllowNonNano.test_series_allow_non_nanoc                 C   s    t |}|jd |jksJ d S r   r   r   r1   r   r=   r=   r>   test_frame_allow_non_nanoa  s   z*TestAllowNonNano.test_frame_allow_non_nanozVstack_arrays converts TDA to ndarray, then goes through ensure_wrapped_if_datetimelike)strictreasonc                 C   s$   t d|i}|jd |jksJ d S r   r  r   r=   r=   r>   #test_frame_from_dict_allow_non_nanoe  s   z4TestAllowNonNano.test_frame_from_dict_allow_non_nanoN)rY  rZ  r[  rx   r  r  r:   r  r  r  r  r  xfailr  r=   r=   r=   r>   r  A  s    

r  )Br  r   r   r   r   r   r  r   r  r  numpyr2   numpy.mar  numpy.ma.mrecordsr  rx   r  pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   r	   r
   r   pandasr  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr7   pandas.arraysr   r   r   r   r   pandas.core.apir    r   r   r,   r  r  r  r  r  r  r=   r=   r=   r>   <module>   sb    D                    _9 hi