U
    ¾mœdSÃ ã                   @   sÐ  d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	mZm
Z
 d dlZd dlZd dlZd dlmZ d dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlmZ d dlm  mZ d d	lmZ d d
l m!Z!m"Z"m#Z#m$Z$ d dl%Z&d dl%m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 d dl6m7Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z> dddgZ?ddddddddgZ@G dd„ dƒZAG dd„ dƒZBG dd„ dƒZCG dd„ dƒZDd d!„ ZEG d"d#„ d#ƒZFG d$d%„ d%ƒZGdS )&é    N)ÚOrderedDictÚabcÚdefaultdictÚ
namedtuple)Úmake_dataclass)ÚdateÚdatetimeÚ	timedelta)ÚIterator)Úma)Úmrecords)ÚIntCastingNaNError)Úis_integer_dtype)ÚDatetimeTZDtypeÚIntervalDtypeÚPandasDtypeÚPeriodDtype)ÚCategoricalÚCategoricalIndexÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalÚ
MultiIndexÚPeriodÚ
RangeIndexÚSeriesÚ	TimedeltaÚ	TimestampÚcutÚ
date_rangeÚisna)ÚDatetimeArrayÚIntervalArrayÚPeriodArrayÚSparseArrayÚTimedeltaArrayZfloat16Zfloat32Úfloat64Úuint8Úuint16Úuint32Úuint64Zint8Zint16Úint32Úint64c                   @   sÔ  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dddg¡dd„ ƒZdd„ Ze
j ddd„ dd„ dd„ dd„ dd„ dd„ dd„ dd„ d d„ d!d„ d"d„ g¡d#d$„ ƒZe
j dd%d„ d&d„ g¡d'd(„ ƒZe
j d)g ged*ƒed+ƒfg g ged,ƒed+ƒfd-d.„ d/D ƒged*ƒed+ƒfg¡d0d1„ ƒZd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Zejd<d=„ ƒZejd>d?„ ƒZd@dA„ ZdBdC„ Ze
j dDdEi gdEd*dFdGdHœgdIi gg¡dJdK„ ƒZdLdM„ ZdNdO„ Z dPdQ„ Z!dRdS„ Z"dTdU„ Z#e
j dVe$j%dWge&dX�e$ %d,dY g¡dZge$j%d[ge&dX�e$ %d\g¡d,dY  d, gg¡d]d^„ ƒZ'e
j dVe$j%d*ge$j(dX�e$j%d*ge$j)dX�e$j%d*ge$j*dX�e$ (d*¡ge$ )d*¡ge$ *d*¡gg¡d_d`„ ƒZ+dadb„ Z,dcdd„ Z-dedf„ Z.dgdh„ Z/didj„ Z0dkdl„ Z1dmdn„ Z2dodp„ Z3e
j dqd,e$j4drdsg¡dtdu„ ƒZ5e
j dvd,e$j4dre6dwƒg¡dxdy„ ƒZ7e
j dve$j4dre6dwƒg¡dzd{„ ƒZ8d|d}„ Z9d~d„ Z:d€d�„ Z;d‚dƒ„ Z<d„d…„ Z=d†d‡„ Z>dˆd‰„ Z?dŠd‹„ Z@dŒd�„ ZAdŽd�„ ZBd�d‘„ ZCd’d“„ ZDd”d•„ ZEd–d—„ ZFd˜d™„ ZGdšd›„ ZHdœd�„ ZIdždŸ„ ZJe
j d d¡d„ d¢fd£d„ d¤fd¥d„ d¦fd§d„ d¨fg¡d©dª„ ƒZKd«d¬„ ZLd­d®„ ZMe
j d¯eNd°ƒeOdƒfePd+d±d²�eQd³d´ƒfeRdµd¶d·�eSd¶d·�fg¡d¸d¹„ ƒZTdºd»„ ZUd¼d½„ ZVd¾d¿„ ZWdÀdÁ„ ZXdÂdÃ„ ZYdÄdÅ„ ZZdÆdÇ„ Z[dÈdÉ„ Z\e
j dÊdre]e^dËƒƒdÌdÍge&e$j_fdrdrdÌdÍgd³e$ `d³¡fdre]e^dËƒƒdÌdÍgeae$ `dÎ¡fi drdFdGgdre$j_fdÍd*ie]e^dËƒƒe]dÏƒeae$ `dÎ¡fg¡dÐdÑ„ ƒZbe
j dÒdÓdÔdrgdÕecjdfdÖd×drgdØecjefd*d,drgdÙecjffdÌdÍdÚgdÛecjgff¡dÜdÝ„ ƒZhdÞdß„ Zidàdá„ Zjdâdã„ Zkdädå„ Zldædç„ Zmdèdé„ Zndêdë„ Zodìdí„ Zpdîdï„ Zqdðdñ„ Zrdòdó„ Zse
j dôeRdõƒggdöeRdõƒigdöeRdõƒgidöeRdõƒig¡d÷dø„ ƒZtdùdú„ Zudûdü„ Zvdýdþ„ Zwdÿ�d „ Zx�d�d„ Zy�d�d„ Zz�d�d„ Z{�d�d„ Z|�d	�d
„ Z}�d�d„ Z~e
j �dee€g¡�d�d„ ƒZ�e
j �dee€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‰e
j �d d/g fd/g f�d!d/d/gf�d!g g gfg g fg g gfd*gd,gfd*gd,ggfd*d,�d"g�d#d±�d$gfd*d,�d"g�d#d±�d$ggfg¡�d%�d&„ ƒZŠ�d'�d(„ Z‹�d)�d*„ ZŒ�d+�d,„ Z��d-�d.„ ZŽ�d/�d0„ Z��d1�d2„ Z��d3�d4„ Z‘�d5�d6„ Z’�d7�d8„ Z“e
j �d9�d:�d;�d<�d=�d>�d?�d@g¡�dA�dB„ ƒZ”�dC�dD„ Z•�dE�dF„ Z–�dG�dH„ Z—�dI�dJ„ Z˜�dK�dL„ Z™�dM�dN„ Zš�dO�dP„ Z›�dQ�dR„ Zœ�dS�dT„ Z��dU�dV„ Zž�dW�dX„ ZŸ�dY�dZ„ Z �d[�d\„ Z¡�d]�d^„ Z¢e
j �d_e$ %drdrdrdre£ ¤¡ drg¡e$ %drdre£ ¤¡ drg¡e$ ¥�d`¡gdrgge$ ¥�d`¡gecj¦ggdrge$ ¥�d`¡ggdrgecj¦ggecj¦ge$ ¥�d`¡ggecj¦gdrggg¡�da�db„ ƒZ§e
j �dc�dd�de�df�dgg¡e
j �dhdds�did�dj�dk�dl�dmg¡�dn�do„ ƒƒZ¨e
j �dc�dd�de�df�dgg¡e
j �dhds�did�dj�dk�dl�dmg¡�dp�dq„ ƒƒZ©�dr�ds„ Zª�dt�du„ Z«�dv�dw„ Z¬�dx�dy„ Z­�dz�d{„ Z®e
j �d|e¯d*d,�d"g�d#d±�d$ggd*e$j4g�d}�e¯d*d,�d"g�d#d±�d$gg�d~�de$j4g�d€�e¯d+d*d,�d"g�d#d±�d$�d�gge$j4�d~�de$j4g�d€�e¯�d‚d*d,�dƒg�d#d±�d$�d�gge$j4�d~�de$j4g�d€�e¯�d‚d*d,�dƒg�d#d±�d$�d�gge$j4d*d,d,g�d€�g¡�d„�d…„ ƒZ°�d†�d‡„ Z±�dˆ�d‰„ Z²�dŠ�d‹„ Z³�dŒ�d�„ Z´�dŽ�d�„ Zµ�d��d‘„ Z¶�d’�d“„ Z·�d”�d•„ Z¸e
j �d–e¹jºe¹j» e¹j¼ e¹j½ ¡�d—�d˜„ ƒZ¾e
j �d–e¹j¿e¹jÀ e¹jÁ ¡�d™�dš„ ƒZÂ�d›�dœ„ ZÃe
jjÄe
j �d–dr�d��džg¡�dŸ�d „ ƒƒZÅ�d¡�d¢„ ZÆe
j �d£eÇe]�d¤ƒƒeÈd*e$j4e$j4e$j4gƒeÉePd+d*ƒePd*d±ƒgƒeÊecjË�d¥�d¦d�d§�ƒg¡�d¨�d©„ ƒZÌ�dª�d«„ ZÍ�d¬�d­„ ZÎ�d®�d¯„ ZÏ�d°�d±„ ZÐ�d²�d³„ ZÑ�d´�dµ„ ZÒ�d¶�d·„ ZÓ�d¸�d¹„ ZÔe
j �dºd*d,g�d»�d¼ge]eÕ�d½d,�d¾�d¿�ƒe]eÕ�d½d,�d¾d¶�dÀ�ƒePd+d±d²�gg¡�dÁ�dÂ„ ƒZÖ�dÃ�dÄ„ Z×e
j �dÅdÔdÓg¡�dÆ�dÇ„ ƒZØ�dÈ�dÉ„ ZÙ�dÊ�dË„ ZÚ�dÌ�dÍ„ ZÛe
j �dÎd*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Ô„ ZÞdrS (Õ  Ú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?   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/frame/test_constructors.pyÚ,test_constructor_from_ndarray_with_str_dtypeN   s    zFTestDataFrameConstructors.test_constructor_from_ndarray_with_str_dtypec                 C   sr   t dddd�}|j dd¡}t|ƒ}t|d d …df |d d …df d	œƒ}t ||¡ |snt|jjƒdksnt	‚d S )
Nú
2016-01-01é   ú
US/Pacific©ÚperiodsÚtzr1   é   r   é   ©r   rI   )
r    Ú_datar6   r   r9   r:   ÚlenÚ_mgrÚblocksÚAssertionError)r;   Úusing_array_managerÚdtiZdtar=   r>   r?   r?   r@   Ú&test_constructor_from_2d_datetimearrayV   s    &z@TestDataFrameConstructors.test_constructor_from_2d_datetimearrayc                 C   sl   t dƒ d¡}td|idgd�}td|giƒ}t ||¡ t|dgdœƒ}t|gdgdœƒ}t ||¡ d S )Nz2019-11-03 01:00:00-0700zAmerica/Los_AngelesÚdtr   ©ÚindexrI   )rS   Úvalue)r   Z
tz_convertr   r9   r:   )r;   rS   r=   r>   r?   r?   r@   Ú)test_constructor_dict_with_tzaware_scalara   s    zCTestDataFrameConstructors.test_constructor_dict_with_tzaware_scalarc              	   C   sr   t  dt jgddgg¡}d}tjt|d�� t|dd� W 5 Q R X tjt|d�� t|d ddd	� W 5 Q R X d S )
NrI   rH   r1   ú9Cannot convert non-finite values \(NA or inf\) to integer©ÚmatchÚi8r2   r   ©r3   Úname)r4   ÚarrayÚnanÚpytestÚraisesr   r   r   )r;   r<   Úmsgr?   r?   r@   Ú-test_construct_ndarray_with_nas_and_int_dtypen   s    zGTestDataFrameConstructors.test_construct_ndarray_with_nas_and_int_dtypec                 C   s0   t t ¡ t ¡ gƒ}|d jt d¡ks,t‚d S )Nr   úM8[ns])r   r   Únowr3   r4   rO   ©r;   r=   r?   r?   r@   Ú%test_construct_from_list_of_datetimesy   s    z?TestDataFrameConstructors.test_construct_from_list_of_datetimesc                 C   s\   t ddgdd�}| d¡}ttj| ¡ dd�dd�}|j|jksDt‚t|ƒ}t 	||¡ d S )Nz2013-1-1 13:00z2013-1-2 14:00ÚB©r]   rD   Úobjectr2   )
r   Útz_localizer   r4   r^   Útolistr3   rO   r9   Úassert_series_equal)r;   Z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kr0| dd¡}d}tjt|d�� ||dd� W 5 Q R X d S )NÚNaTÚnsr2   rI   z=Invalid type for timedelta scalar: <class 'numpy.datetime64'>rY   úm8[ns])	r4   Ú
datetime64r^   rj   r   r6   r`   ra   Ú	TypeError)r;   Úframe_or_seriesZnatr<   rb   r?   r?   r@   Ú,test_array_of_dt64_nat_with_td64dtype_raisesŠ   s    zFTestDataFrameConstructors.test_array_of_dt64_nat_with_td64dtype_raisesÚkindÚmÚMc                 C   s|  |dkrd}t }nd}t}tjddd� |¡ dd¡}|tkrN|d d …d	f }||td�}|jj	d	 j
tkspt‚t|jj	d	  ¡ d	 |ƒsŽt‚|||ƒtd�}|jj	d	 j
tks´t‚t|jj	d	  ¡ d	 |ƒsÒt‚|||ƒttƒd�}|jj	d	 j
tksüt‚t|jj	d	  ¡ d	 |ƒ�st‚|tk�rxd
d„ |D ƒ}||td�}|jj	d	 j
tk�sXt‚t|jj	d	  ¡ d	 |ƒ�sxt‚d S )Nrz   rd   rs   rC   r[   r2   r1   rH   r   c                 S   s   g | ]}t |ƒ‘qS r?   ©r   ©Ú.0Úxr?   r?   r@   Ú
<listcomp>²   s     zXTestDataFrameConstructors.test_datetimelike_values_with_object_dtype.<locals>.<listcomp>)r   r   r4   r5   Úviewr6   r   rj   rM   Úarraysr3   rO   Ú
isinstanceÚravelr   r   )r;   rx   rv   r3   Zscalar_typer<   ÚobjZsersr?   r?   r@   Ú*test_datetimelike_values_with_object_dtype•   s,     
zDTestDataFrameConstructors.test_datetimelike_values_with_object_dtypec                 C   st   t tdƒdd�}t tdƒdd�}t|dgd�}tg dgd�}t ||¡ t|dgd�}tg dgd�}t ||¡ d S )Né   rI   ri   r   ©Úcolumns)r   Úranger   r9   r:   )r;   r~   Úyro   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>Ç   ó    z"TestDataFrameConstructors.<lambda>c                   C   s   t d ƒ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   s   | ]
}|V  qd S r�   r?   ©r}   Ú_r?   r?   r@   Ú	<genexpr>Ë   s     ú5TestDataFrameConstructors.<lambda>.<locals>.<genexpr>r?   rŽ   r?   r?   r?   r@   r�   Ë   r�   c                   C   s   t tdƒƒS ©Nr   ©r   r‰   r?   r?   r?   r@   r�   Ì   r�   c                   C   s
   t d d�S ©N©ÚdatarŽ   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   s   | ]
}|V  qd S r�   r?   r’   r?   r?   r@   r”   Ð   s     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�   Ñ   r�   c                 C   s@   t ƒ }|ƒ }t|jƒdkst‚t|jƒdks0t‚t ||¡ d S r–   )r   rL   rU   rO   rˆ   r9   r:   ©r;   rŒ   r>   ro   r?   r?   r@   Útest_empty_constructorÄ   s
    z0TestDataFrameConstructors.test_empty_constructorc                   C   s   t i ƒS r�   rŽ   r?   r?   r?   r@   r�   Þ   r�   c                   C   s
   t i d�S r˜   rŽ   r?   r?   r?   r@   r�   ß   r�   c                 C   sR   t tdƒtdƒd�}|ƒ }t|jƒdks,t‚t|jƒdks>t‚tj||dd� d S )Nr   ©rU   rˆ   T)Zcheck_index_type)r   r   rL   rU   rO   rˆ   r9   r:   r›   r?   r?   r@   Ú#test_empty_constructor_object_indexÛ   s
    z=TestDataFrameConstructors.test_empty_constructor_object_indexz)emptylike,expected_index,expected_columnsrI   r   rH   c                 c   s   | ]
}|V  qd S r�   r?   r’   r?   r?   r@   r”   î   s     z#TestDataFrameConstructors.<genexpr>r?   c                 C   s$   t ||d�}t |ƒ}t ||¡ d S )Nr�   ©r   r9   r:   )r;   Z	emptylikeZexpected_indexZexpected_columnsr>   ro   r?   r?   r@   Útest_emptylike_constructoré   s    	z4TestDataFrameConstructors.test_emptylike_constructorc                 C   s8   t  ¡ \}}t||d�}t|ƒ}|d jtjks4t‚d S )NrT   Úfoo)r9   ZgetMixedTypeDictr   r3   r4   Úobject_rO   )r;   Zfloat_string_framerU   rš   Zindexed_frameZunindexed_framer?   r?   r@   Útest_constructor_mixedö   s    z0TestDataFrameConstructors.test_constructor_mixedc              	   C   s˜   d}t jt|d�� tddddgitjd� W 5 Q R X tt d¡ƒ}t d¡ ¡ |d< d	}t jt|d�� t d¡|d
< W 5 Q R X t d¡ ¡ |d< d S )Nz!could not convert string to floatrY   ÚaÚbÚcr2   )r0   rH   r¡   z5Expected a 1D array, got an array with shape \(4, 2\)ÚtestZfoo2)r`   ra   Ú
ValueErrorr   r4   r'   Úonesrl   )r;   rb   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@t‚d S )
Nç      ð?ç       @ç      @)Úcol1Úcol2Úcol3T)r3   Úcopyg      i@r®   r   )r   ÚfloatrO   )r;   Zorig_dfZnew_dfr?   r?   r@   Útest_constructor_dtype_copy  s    z5TestDataFrameConstructors.test_constructor_dtype_copyc                 C   sd   t ddggƒ}t ||d jd�}|rBd|jd< |jd dks`t‚nd|d d< |jd dks`t‚d S )NrI   rH   r   r2   éc   ©r   r   )r   r3   ÚilocÚvaluesrO   )r;   Úusing_copy_on_writer=   Úshould_be_viewr?   r?   r@   Ú,test_constructor_dtype_nocast_view_dataframe  s    
zFTestDataFrameConstructors.test_constructor_dtype_nocast_view_dataframec                 C   s€   t ddgddggdd�}|sT|sTt |j|d jd�}d|d d< |jd	 dks|t‚n(t |j|d jd�}|jjd jjs|t‚d S )
NrI   rH   r1   r0   r-   r2   r   éa   rµ   )r   r·   r3   rO   rM   r�   ÚflagsÚc_contiguous)r;   rP   r¸   r=   r¹   Údf2r?   r?   r@   Ú+test_constructor_dtype_nocast_view_2d_array&  s    zETestDataFrameConstructors.test_constructor_dtype_nocast_view_2d_arrayc                 C   s4   t jddgdd�}t|dd�}t  |j|¡s0t‚d S )Nr¤   r¥   rj   r2   F©r±   ©r4   r^   r   Úshares_memoryr·   rO   ©r;   r<   r=   r?   r?   r@   Ú"test_1d_object_array_does_not_copy4  s    z<TestDataFrameConstructors.test_1d_object_array_does_not_copyc                 C   s<   t jddgddggdd�}t|dd�}t  |j|¡s8t‚d S )	Nr¤   r¥   r¦   Údrj   r2   FrÀ   rÁ   rÃ   r?   r?   r@   Ú"test_2d_object_array_does_not_copy;  s    z<TestDataFrameConstructors.test_2d_object_array_does_not_copyc                 C   s@   t ddgd dggtd�}|jd d ks*t‚|jd dks<t‚d S )NrI   Ú2r¤   r2   ©rI   r   rJ   )r   rj   ÚlocrO   rf   r?   r?   r@   Ú test_constructor_dtype_list_dataB  s    z:TestDataFrameConstructors.test_constructor_dtype_list_datac              	   C   s’   t ƒ }t d¡}tjtdd�� t |gƒ W 5 Q R X tjtdd�� t |gƒ W 5 Q R X t dddgiƒ}tjtdd�� t ||gƒ W 5 Q R X d S )Nrµ   zshape=\(1, 0, 0\)rY   ÚArI   rH   zshape=\(2, 2, 1\))r   r4   Úemptyr`   ra   r¨   )r;   r¤   r¥   r?   r?   r@   Ú"test_constructor_list_of_2d_raisesG  s    
z<TestDataFrameConstructors.test_constructor_list_of_2d_raisesztyp, adr²   r¡   Úbar©rË   rh   ÚCÚintc                 C   s¤   |dkrt }dd„ |D ƒ}n|dkr6t}dd„ |D ƒ}t||ƒD ]\}}|j|ks@t‚q@| tt||ƒƒ¡ t|ƒ}tt  }|D ]}||kr€|j| |ks€t‚q€d S )NrÑ   c                 S   s"   g | ]}t jt j d ¡|d�‘qS )é
   r2   )r4   r^   ÚrandomÚrand©r}   rÅ   r?   r?   r@   r   c  s     zKTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>.<listcomp>r²   c                 S   s&   g | ]}t jt jjd d d�|d�‘qS )rÒ   )Úsizer2   )r4   r^   rÓ   ÚrandintrÕ   r?   r?   r@   r   f  s     )	ÚMIXED_INT_DTYPESÚMIXED_FLOAT_DTYPESÚzipr3   rO   ÚupdateÚdictr   Údtypes)r;   ÚtypÚadrÝ   r�   rÅ   r¤   r=   r?   r?   r@   Útest_constructor_mixed_dtypesU  s    z7TestDataFrameConstructors.test_constructor_mixed_dtypesc                 C   s^   t j d¡ t j¡}t j d¡ t j¡}t||dœƒ}|j|jjksHt	‚|j|j
jksZt	‚d S )NrÒ   ©r¤   r¥   )r4   rÓ   rÔ   r8   Z	complex64Ú
complex128r   r3   r¤   rO   r¥   ©r;   r¤   r¥   r=   r?   r?   r@   Útest_constructor_complex_dtypesr  s
    z9TestDataFrameConstructors.test_constructor_complex_dtypesc                 C   sx   t ddd gi|d�}| ¡ }t dddgiƒ}t ||¡ |jd d ksJt‚t ddtjgi|d�}t |jd ¡stt‚d S )NrË   r~   r2   FTrÈ   )	r   r!   r9   r:   r¶   rO   r4   r_   Úisnan)r;   Ústring_dtyper=   ro   r>   r?   r?   r@   Ú$test_constructor_dtype_str_na_values{  s    z>TestDataFrameConstructors.test_constructor_dtype_str_na_valuesc           	      C   sÌ   |j dd�}t|jjƒd d d… |j_|j}t|ƒ}t |jt	|jjƒ¡ t||d�}t |jt	|jjƒ¡ t |j|¡ t
 t|ƒ¡d d d… }t||ddgd�}t||d�jddgd�}t ||¡ d S )NFrT   éÿÿÿÿrÐ   rh   r�   r‡   )Z
to_recordsÚlistr3   ÚnamesrU   r   r9   Úassert_index_equalrˆ   r   r4   r5   rL   Úreindexr:   )	r;   Úfloat_frameZrecrU   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s4t‚d S )NrÒ   r2   rJ   )	r   r4   r©   ÚboolÚzerosr·   r3   Úbool_rO   rf   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@t‚ddd	d
dg}ddg}t jt|ƒf|d�}||d d …< t|ƒ}|d jt jks’t‚d S )Nc                 S   s   g | ]}d | ‘qS )ì            r?   ©r}   Úir?   r?   r@   r   Ÿ  s     zMTestDataFrameConstructors.test_constructor_overflow_int64.<locals>.<listcomp>rI   rÒ   r2   r¤   )l   –Yª2­< é  )l   FJLW]L* é   )l   ´MÏ:M…^ é-   )l   8²€M�a i  )l   r*R3_PvN rø   )ÚuidÚu8)Zscorerü   rû   )	r4   r^   r‰   r+   r   r3   rO   rò   rL   )r;   r·   ro   Zdata_scoresr3   rš   Z	df_crawlsr?   r?   r@   Útest_constructor_overflow_int64�  s     ûz9TestDataFrameConstructors.test_constructor_overflow_int64r·   rõ   r2   éA   l           lûÿÿÿ        lûÿÿÿ        c                 C   s:   |d }t |ƒ}|d jtks"t‚|d d |ks6t‚d S r–   )r   r3   rj   rO   ©r;   r·   rV   ro   r?   r?   r@   Útest_constructor_int_overflow²  s    z7TestDataFrameConstructors.test_constructor_int_overflowc                 C   s<   |d }t |ƒ}|d j|jks$t‚|d d |ks8t‚d S r–   ©r   r3   rO   rÿ   r?   r?   r@   Útest_constructor_numpy_uintsÅ  s    z6TestDataFrameConstructors.test_constructor_numpy_uintsc                 C   sX   d}t t|ƒƒ}t |¡ dd„ |D ƒ}ttt|dgg| ƒƒƒ}|t |jƒksTt‚d S )Néd   c                 S   s   g | ]}d |d›�‘qS )rË   rÅ   r?   rö   r?   r?   r@   r   Ü  s     zJTestDataFrameConstructors.test_constructor_ordereddict.<locals>.<listcomp>r   )	ré   r‰   rÓ   Úshuffler   r   rÚ   rˆ   rO   )r;   ZnitemsÚnumsr>   r=   r?   r?   r@   Útest_constructor_ordereddictØ  s    
z6TestDataFrameConstructors.test_constructor_ordereddictc              	   C   s2  t jdd�}t jdd�dd … }t||dœƒ}t|ƒdks>t‚t|ƒdksNt‚t  |d | d¡¡ tt 	tj
gd |jg¡|jdd�}t  ||d ¡ t||dœdd	d
gd�}t|ƒt|ƒksÄt‚d|ksÐt‚t|d	 ƒ ¡ sät‚ttƒ ƒdksöt‚d}tjt|d��  tdddœdddgdœƒ W 5 Q R X d S )Né   ©Znperr†   ©r®   r¯   é   r®   r¯   ©rU   r]   r°   Zcol4r‡   r   ú<Mixing dicts with non-Series may lead to ambiguous ordering.rY   r¤   r¥   rá   r¦   ©rË   rh   )r9   ÚmakeTimeSeriesr   rL   rO   rm   Úrenamer   r4   Zconcatenater_   r·   rU   r!   Úallr`   ra   r¨   )r;   Údatetime_seriesÚdatetime_series_shortÚframeÚexprb   r?   r?   r@   Útest_constructor_dictà  s.    ýþz/TestDataFrameConstructors.test_constructor_dictc                 C   s,   t ddddœiƒ}t |jtddgƒ¡ d S )NrË   rI   rH   ©Ú1rÇ   r  rÇ   )r   r9   rë   rU   r   ©r;   r  r?   r?   r@   Útest_constructor_dict_length1  s    z7TestDataFrameConstructors.test_constructor_dict_length1c                 C   s,   t dddgƒ}ti |d�}|j|ks(t‚d S )Nr   rI   rH   rT   )r   r   rU   rO   ©r;   rn   r  r?   r?   r@   Ú test_constructor_dict_with_index  s    z:TestDataFrameConstructors.test_constructor_dict_with_indexc                 C   sN   t dddgƒ}ti ||d�}|j|ks*t‚|j|ks8t‚t|jƒdksJt‚d S )Nr   rI   rH   r�   r1   )r   r   rU   rO   rˆ   rL   Ú_seriesr  r?   r?   r@   Ú,test_constructor_dict_with_index_and_columns  s
    zFTestDataFrameConstructors.test_constructor_dict_with_index_and_columnsc                 C   s0   t g g dœddgd�}tj|jtdƒdd� d S )Nr  rË   rh   r‡   r   T©Úexact)r   r9   rë   rU   r   r  r?   r?   r@   Ú$test_constructor_dict_of_empty_lists  s    z>TestDataFrameConstructors.test_constructor_dict_of_empty_listsc                 C   s^   t dd idgd�}t dd gidgd�}| dd¡d ks:t‚| dd¡d ksNt‚t ||¡ d S )Nr¤   r   rT   )r   Ú
_get_valuerO   r9   r:   )r;   Z
frame_noneZframe_none_listr?   r?   r@   Útest_constructor_dict_with_none  s
    z9TestDataFrameConstructors.test_constructor_dict_with_nonec              	   C   sZ   d}t jt|d�� tddiƒ W 5 Q R X t jt|d�� tddidgd� W 5 Q R X d S )Nú2If using all scalar values, you must pass an indexrY   r¤   gffffffæ?r‡   ©r`   ra   r¨   r   ©r;   rb   r?   r?   r@   Útest_constructor_dict_errors'  s
    z6TestDataFrameConstructors.test_constructor_dict_errorsÚscalarNÚDc                 C   s.   t d|idgd�}t dgd�}t ||¡ d S )Nr¤   r¥   r‡   rŸ   )r;   r'  ro   r>   r?   r?   r@   Ú%test_constructor_invalid_items_unused1  s    z?TestDataFrameConstructors.test_constructor_invalid_items_unusedrV   r_   c                    sÆ   d|dg‰ d|g‰ddgddgddgg‰‡ ‡‡fdd	„t dƒD ƒ}t|ƒ d¡jddd
�}ttjddd� dd¡ˆˆ d�}t ||¡ t|ˆd�jddd
�}t ||¡ t|ˆˆ d�}t ||¡ d S )NrI   r1   r¤   r   r0   rH   r†   c                    s"   i | ]}ˆ | t ˆ| ˆd �“qS ©rT   r{   ©r}   r¦   ©Úcolsrn   r·   r?   r@   Ú
<dictcomp>>  s      zKTestDataFrameConstructors.test_constructor_dict_nan_key.<locals>.<dictcomp>©ZaxisrC   r-   r2   r�   rT   )r‰   r   Úsort_valuesr4   r5   r6   r9   r:   ©r;   rV   rš   ro   r>   r?   r,  r@   Útest_constructor_dict_nan_key8  s    
  ÿz7TestDataFrameConstructors.test_constructor_dict_nan_keyc                    sæ   t d|dfd|fgƒ‰ t d|f|dfgƒ‰ddgdd	gdd
gg‰‡ ‡‡fdd„tdƒD ƒ}t|ƒ d¡jd|fdd�}ttjddd� dd¡ˆˆ d�}t ||¡ t|ˆd�jd|fdd�}t ||¡ t|ˆˆ d�}t ||¡ d S )N)é   é   é   é   r¤   rH   r   r1   rI   r0   r†   c                    s"   i | ]}ˆ | t ˆ| ˆd �“qS r*  r{   r+  r,  r?   r@   r.  Q  s      zQTestDataFrameConstructors.test_constructor_dict_nan_tuple_key.<locals>.<dictcomp>r/  rC   r-   r2   r�   rT   )	r   r‰   r   r0  r4   r5   r6   r9   r:   r1  r?   r,  r@   Ú#test_constructor_dict_nan_tuple_keyK  s      ÿz=TestDataFrameConstructors.test_constructor_dict_nan_tuple_keyc                 C   sL   t jdd�}t jdd�}||dœ}t|d�}t|tdƒd�}t  ||¡ d S )Nr  r  r
  ©r¥   r¤   r™   Úba©rš   rˆ   )r9   r  r   ré   r:   )r;   r  r  rÅ   r  r>   r?   r?   r@   Ú%test_constructor_dict_order_insertion^  s    

z?TestDataFrameConstructors.test_constructor_dict_order_insertionc                 C   sR   t tjddgdddgitjdgd�}t ddgddggtjdgd�}t ||¡ d S )NrI   rH   r1   r‡   )r   r4   r_   r9   r:   ©r;   ro   r>   r?   r?   r@   Ú)test_constructor_dict_nan_key_and_columnsi  s    $zCTestDataFrameConstructors.test_constructor_dict_nan_key_and_columnsc                 C   sp   dddg}t  |¡}t||d�}t|ƒj ¡  ¡ s6t‚dddg}t  |¡}t||d�}t|ƒj ¡  ¡ slt‚d S )N©rH   r1   )r1   r1   r�   )r   Úfrom_tuplesr   r!   r·   rƒ   r  rO   )r;   ÚtuplesÚmir=   r?   r?   r@   Útest_constructor_multi_indexo  s    



z6TestDataFrameConstructors.test_constructor_multi_indexc                 C   s¶   t dggdggddgd�}t ddgtddgdd�tdggdggd�d�}t ||¡ t dggdggddggd�}t ddgtddggddggd�tdggdggd�d�}t ||¡ d S )	NrI   rH   ©rˆ   rU   r-   r2   r   )ZlevelsÚcodesr�   )r   r   r   r9   r:   ©r;   r=   r>   r?   r?   r@   Útest_constructor_2d_index|  s    ýýz3TestDataFrameConstructors.test_constructor_2d_indexc              	   C   sV  d}t jt|d�� tt d¡tdƒd� W 5 Q R X d}t jt|d��  tddd	œddd
gdœƒ W 5 Q R X d}t jt|d��. tt d¡ d¡dddgt	ddd�d� W 5 Q R X t 
dddgg¡}d}t jt|d�� tdgtddƒ|d� W 5 Q R X t 
dddg¡}d}t jt|d�� tdgtddƒ|d� W 5 Q R X t jtdd��" tt d¡ddd gd!gd� W 5 Q R X d"}t jt|d��& ttj d#d¡ddd gd!gd� W 5 Q R X d$}t jt|d��& ttj d#d¡ddgd!d#gd� W 5 Q R X d%}t jt|d��  ttd&ƒtd&d'ƒfd(d� W 5 Q R X d)}t jt|d�� td*d+d	œƒ W 5 Q R X d S ),Nú)Empty data passed with indices specified.rY   r   r   r‡   r  r¤   r¥   rá   r¦   r  z:Shape of passed values is \(4, 3\), indices imply \(3, 3\)r/   )r0   r1   r¡   rÎ   Úbazú
2000-01-01r1   ©rF   rC  r0   r†   rC   z:Shape of passed values is \(1, 3\), indices imply \(1, 4\)©rU   rˆ   rš   z:Shape of passed values is \(3, 1\), indices imply \(1, 4\)úMust pass 2-d input©r1   r1   r1   rË   rh   rÐ   rI   ú:Shape of passed values is \(2, 3\), indices imply \(1, 3\)rH   ú:Shape of passed values is \(2, 3\), indices imply \(2, 2\)z,2 columns passed, passed data had 10 columnsrÒ   é   )r©   Ztwosr#  FT)r`   ra   r¨   r   r4   rÌ   ré   r5   r6   r    r^   r‰   rò   rÓ   rÔ   )r;   rb   r<   r?   r?   r@   Útest_constructor_error_msgs�  sF     $
ý  &**$z5TestDataFrameConstructors.test_constructor_error_msgsc                 C   s|   |dd„ t dƒD ƒƒ|dd„ t dƒD ƒƒdœ}t|ƒ}tdd„ | ¡ D ƒƒ}t ||¡ || ¡ ƒ}t|ƒ}t ||¡ d S )Nc                 s   s   | ]}|d | fV  qdS )g      $@Nr?   r|   r?   r?   r@   r”   Æ  s     zKTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<genexpr>rÒ   c                 s   s   | ]}|d | fV  qdS )g      4@Nr?   r|   r?   r?   r@   r”   Ç  s     r	  c                 S   s   i | ]\}}|t | ¡ ƒ“qS r?   )rÜ   Úitems)r}   ÚcolÚvalr?   r?   r@   r.  Ê  s      zLTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<dictcomp>)r‰   r   rR  r9   r:   )r;   Zdict_subclassrš   r=   Zrefdfr?   r?   r@   Útest_constructor_subclass_dictÃ  s    þz8TestDataFrameConstructors.test_constructor_subclass_dictc                 C   st   i }t j|jd |jd …df< | ¡ D ]&\}}ttƒ}| | ¡ ¡ |||< q&t	|ƒ}|j
|jd�}t ||¡ d S )NrÒ   rh   rT   )r4   r_   rÉ   rU   rR  r   rÜ   rÛ   Úto_dictr   rì   r9   r:   )r;   rí   rš   ÚkÚvÚdctr  r>   r?   r?   r@   Útest_constructor_defaultdictÑ  s    
z6TestDataFrameConstructors.test_constructor_defaultdictc                 C   sL   t  ddddgg¡}tdgdgdgdgdœdddd	gd
�}t |j|¡ d S )Nç      @r­   r¬   r«   )rÅ   r¦   r¥   r¤   rÅ   r¦   r¥   r¤   r‡   )r4   r^   r   r9   Úassert_numpy_array_equalr·   ©r;   r>   r=   r?   r?   r@   Útest_constructor_dict_blockÞ  s    
þz5TestDataFrameConstructors.test_constructor_dict_blockc                 C   s    dddœddddœdœ}t |td	�}t|ƒd
ks4t‚|d jtjksHt‚|d jtjks\t‚t |ƒ}t|ƒd
kstt‚|d jtjksˆt‚|d jtjksœt‚d S )NrI   rH   r  r  rÇ   Ú3)r  rÇ   r_  r  r2   r1   rh   rË   )r   r²   rL   rO   r3   r4   r'   r¢   )r;   Ú	test_datar  r?   r?   r@   Útest_constructor_dict_castæ  s    z4TestDataFrameConstructors.test_constructor_dict_castc              	   C   s^   t ttdƒt d¡ƒƒt ttdƒtj d¡ƒƒdœ}tj	t
dd�� t|td� W 5 Q R X d S )NrP  é   r  zcould not convert stringrY   r2   )rÜ   rÚ   r‰   r9   ZmakeStringIndexr4   rÓ   Úrandnr`   ra   r¨   r   r²   )r;   r`  r?   r?   r@   Útest_constructor_dict_cast2ó  s
    þz5TestDataFrameConstructors.test_constructor_dict_cast2c                 C   s2   ddt jdœi}t|ƒ}t|d d tƒs.t‚d S )NZCol1zA String)ZRow1ÚRow2re  )r4   r_   r   r‚   r²   rO   )r;   rÅ   r=   r?   r?   r@   Ú!test_constructor_dict_dont_upcastü  s    z;TestDataFrameConstructors.test_constructor_dict_dont_upcastc                 C   s<   t ddgddggddgddgd�}t|d d tƒs8t‚d S )NrI   rH   r¤   r¥   r�   )r   r‚   rÑ   rO   )r;   Údmr?   r?   r@   Ú"test_constructor_dict_dont_upcast2  s    "z<TestDataFrameConstructors.test_constructor_dict_dont_upcast2c                 C   s<   dddœ}t |ƒ}t dd„ | ¡ D ƒƒ}tj||dd� d S )N)rI   rH   r1   )r0   r†   rC   rá   c                 S   s   i | ]\}}|t |ƒ“qS r?   )ré   )r}   rW  rX  r?   r?   r@   r.  
  s      zMTestDataFrameConstructors.test_constructor_dict_of_tuples.<locals>.<dictcomp>F©Zcheck_dtype)r   rR  r9   r:   ©r;   rš   ro   r>   r?   r?   r@   Útest_constructor_dict_of_tuples  s    
z9TestDataFrameConstructors.test_constructor_dict_of_tuplesc                 C   sF   t dƒt ddƒdœ}t|ƒ}tdddgdddgdœƒ}t ||¡ d S )	Nr1   rC   rá   r   rI   rH   r0   r†   ©r‰   r   r9   r:   rj  r?   r?   r@   Útest_constructor_dict_of_ranges  s    z9TestDataFrameConstructors.test_constructor_dict_of_rangesc                 C   sL   t tdƒƒttdƒƒdœ}t|ƒ}tdddgdddgdœƒ}t ||¡ d S )Nr1   rá   r   rI   rH   )Úiterr‰   Úreversedr   r9   r:   rj  r?   r?   r@   Ú"test_constructor_dict_of_iterators  s    z<TestDataFrameConstructors.test_constructor_dict_of_iteratorsc                 C   s\   dd„ t dƒD ƒdd„ tt dƒƒD ƒdœ}t|ƒ}tdddgdddgdœƒ}t ||¡ d S )Nc                 s   s   | ]
}|V  qd S r�   r?   rö   r?   r?   r@   r”     s     zPTestDataFrameConstructors.test_constructor_dict_of_generators.<locals>.<genexpr>r1   rá   r   rI   rH   )r‰   ro  r   r9   r:   rj  r?   r?   r@   Ú#test_constructor_dict_of_generators  s    *z=TestDataFrameConstructors.test_constructor_dict_of_generatorsc                 C   s  ddddœddddœdd	d
dœdœ}t | ¡ ƒ}t|ƒ}tdd„ |D ƒt dd„ |D ƒ¡d�j}t |j¡|_t ||¡ dddddœ|d< | 	dd|d f¡ tdd„ |D ƒt
dd„ |D ƒdd�d�j}t
|jdd�|_t|ƒ}|j|j|jd�}t ||¡ d S )Nr   rI   rH   )©r÷   r÷   ©r÷   Új©rt  r÷   rC   r†   r0   é   é   é	   ))r¤   r¤   r8  )r¥   r¦   c                 S   s   g | ]}|d  ‘qS ©rI   r?   r|   r?   r?   r@   r   -  s     zNTestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   s   g | ]}|d  ‘qS ©r   r?   r|   r?   r?   r@   r   -  s     rT   g     À^@éo   )rŠ   rr  rs  ru  Úzc                 S   s   g | ]}|d  ‘qS ry  r?   r|   r?   r?   r@   r   8  s     c                 S   s   g | ]}|d  ‘qS rz  r?   r|   r?   r?   r@   r   8  s     F)Ztupleize_colsrC  )ÚsortedrR  r   r   r?  ÚTrU   r9   r:   Úinsertr   rì   rˆ   )r;   rÅ   Z_dr=   r>   r?   r?   r@   Ú test_constructor_dict_multiindex$  s2    


ý ÿþ ÿz:TestDataFrameConstructors.test_constructor_dict_multiindexc           	   	      s¼   ddddg‰ ‡ fdd„}|t jƒ}|dd„ ƒ}|tƒ}td	d d d d
œd dd d d
œd d dd d
œd d d dd
œgdd„ ˆ D ƒd�}t|ƒ}t|ƒ}t|ƒ}t ||¡ t ||¡ t ||¡ d S )Nz
1984-02-19z
1988-11-06z
1989-12-03z
1990-03-15c                    s   ‡ fdd„t ˆƒD ƒS )Nc                    s"   i | ]\}}|ˆ |ƒd | i“qS ©rH   r?   ©r}   r÷   Ús©rŒ   r?   r@   r.  D  s      ziTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<dictcomp>)Ú	enumerater„  ©Zdates_as_strr„  r@   Úcreate_dataC  s    zUTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S   s   t  | d¡S )Nz%Y-%m-%d)r   Ústrptime©r~   r?   r?   r@   r�   G  r�   zRTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>r   ©r   rI   rH   r1   rH   r0   rC   c                 S   s   g | ]}t |ƒ‘qS r?   )r   )r}   rS   r?   r?   r@   r   Q  s     zTTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<listcomp>rT   )r4   rt   r   r   r9   r:   )	r;   r‡  Zdata_datetime64Zdata_datetimeZdata_Timestampr>   Zresult_datetime64Zresult_datetimeZresult_Timestampr?   r†  r@   Ú&test_constructor_dict_datetime64_index?  s&    
üù
z@TestDataFrameConstructors.test_constructor_dict_datetime64_indexz
klass,namec                 C   s   t  | d¡S ©Nr(  )r4   Útimedelta64r‰  r?   r?   r@   r�   ^  r�   r�  c                 C   s
   t | d�S )N)Údays)r	   r‰  r?   r?   r@   r�   _  r�   Zpytimedeltac                 C   s
   t | dƒS rŒ  ©r   r‰  r?   r?   r@   r�   `  r�   zTimedelta[ns]c                 C   s   t | dƒ d¡S )Nr(  rƒ  )r   Zas_unitr‰  r?   r?   r@   r�   a  r�   zTimedelta[s]c              	      s€   ddddg}‡ fdd„t |ƒD ƒ}tdd d d dœd dd d dœd d dd dœd d d d	dœgd
d„ |D ƒd�}t|ƒ}t ||¡ d S )NrI   rH   r1   r0   c                    s"   i | ]\}}|ˆ |ƒd | i“qS r�  r?   r‚  ©Úklassr?   r@   r.  h  s      zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<dictcomp>r   rŠ  rC   c                 S   s   g | ]}t |d ƒ‘qS )r(  r�  )r}   Útdr?   r?   r@   r   q  s     zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<listcomp>rT   )r…  r   r9   r:   )r;   r‘  r]   Z	td_as_intrš   r>   ro   r?   r�  r@   Ú'test_constructor_dict_timedelta64_index[  s    üù
zATestDataFrameConstructors.test_constructor_dict_timedelta64_indexc                 C   s¬   t jdddgdd�}t jdddgdd�}t||d	œƒ}|d
 j|jksJt‚|d j|jks^t‚t| t¡ ¡ | t¡ ¡ d	œƒ}|d
 j|jks”t‚|d j|jks¨t‚d S )Nz2012-01rq   z2012-04rz   ©Úfreqz
2012-02-01z
2012-03-01r(  rá   r¤   r¥   )ÚpdZPeriodIndexr   r3   rO   r8   rj   rl   rã   r?   r?   r@   Útest_constructor_period_dictx  s    "z6TestDataFrameConstructors.test_constructor_period_dictc                 C   sN   |\}}t d|idgd�}|d j|ks,t‚t dgdg|d�}t ||¡ d S )Nr¤   r   rT   rK  )r   r3   rO   r9   r:   )r;   Zea_scalar_and_dtypeZ	ea_scalarZea_dtyper=   r>   r?   r?   r@   Ú&test_constructor_dict_extension_scalar…  s
    z@TestDataFrameConstructors.test_constructor_dict_extension_scalarz
data,dtypez2020-01r†   )ÚleftÚrightr-   rš  z
2011-01-01ú
US/Eastern©rG   c                 C   sl   t ddgddg|d�}|d j|ks(t‚|d j|ks:t‚tj|gd |d�}t ||dœƒ}t ||¡ d S )	Nr   rI   r¤   r¥   rK  rH   r2   rá   )r   r3   rO   r–  r^   r9   r:   )r;   rš   r3   r=   r<   r>   r?   r?   r@   Ú&test_constructor_extension_scalar_dataŽ  s    z@TestDataFrameConstructors.test_constructor_extension_scalar_datac                 C   sÂ   t jddd�}ttj dd¡|d�}i }|jD ](}|jD ]}| ||¡| 	|i ¡|< q8q.t||d�}t
 ||¡ i }|jD ](}|jD ]}| ||¡| 	|i ¡|< q„qzt||d�j}t
 ||¡ d S )Nz1/1/2000r†   rJ  rÒ   r‡   rT   )r–  Úperiod_ranger   r4   rÓ   rc  rˆ   rU   r!  Ú
setdefaultr9   r:   r~  )r;   rî   r=   rš   rS  Úrowro   r?   r?   r@   Ú"test_nested_dict_frame_constructor¥  s    



z<TestDataFrameConstructors.test_nested_dict_frame_constructorc              	   C   sn  |dt d�}t|dddgddgd�}t|jƒdks6t‚t|jƒd	ksHt‚t|d
ƒdgddd	gd�}t|jƒd	kstt‚t|jƒdks†t‚|tjk	rÎd}tj	t
|d��" t|dddgddgtjd� W 5 Q R X d S t|dddgddgtjd�}|jjtjksüt‚d}tj	t|d�� t|dddgdgd� W 5 Q R X d}tj	t|d�� t|ddgddgd� W 5 Q R X tj	tdd��  t|dƒdddgdgd� W 5 Q R X t|ƒ}tj|jttdƒƒdd� tj|jttd	ƒƒdd� t|ddgd�}tj|jttd	ƒƒdd� t|dddgd�}tj|jttdƒƒdd� t|dƒƒ}t|jƒdk�sJt‚t|dƒƒ}t|jƒdk�sjt‚d S )Nr>  r2   rË   rh   rÐ   rI   rH   rC  r1   )r1   rX   rY   ©rˆ   rU   r3   rN  rO  rL  rM  Tr  rT   r‡   )r   r1   r   )r1   r   )r²   r   rL   rU   rO   rˆ   r4   r©   r`   ra   r   r-   r·   r3   r¨   r9   rë   r   r‰   )r;   rÌ   Úmatr  rb   r?   r?   r@   Ú_check_basic_constructor¹  sL    
&   ÿ  $z2TestDataFrameConstructors._check_basic_constructorc                 C   s8   |   tj¡ tddgddgdgd�}t|ƒdks4t‚d S )Nr¡   rÎ   r   rI   rË   r�   rH   )r¤  r4   r©   r   rL   rO   r  r?   r?   r@   Útest_constructor_ndarrayñ  s    z2TestDataFrameConstructors.test_constructor_ndarrayc                 C   s®   |   tj¡ tjdtd�}d|d< d|d< t|ddd	gd
dgd�}d|d d
 ksVt‚d|d	 d ksjt‚tjdtd�}t|ddd	gd
dgd�}t t ||k¡ ¡sªt‚d S )Nr>  r2   r«   rµ   r¬   ©rI   rH   rË   rh   rÐ   rI   rH   rC  )	r¤  r   Ú
masked_allr²   r   rO   r4   r  Úasarray)r;   r£  r  r?   r?   r@   Útest_constructor_maskedarray÷  s    z6TestDataFrameConstructors.test_constructor_maskedarrayc              
   C   s  t jdtd�}t|dddgddgd�}t|jƒdks8t‚t|jƒd	ksJt‚t 	t 
||k¡ ¡sdt‚t|dddgddgtjd
�}|jjtjks’t‚t  |¡}d|d< d|d< t|dddgddgd�}d|d d ksØt‚d|d d ksìt‚t jddd�}t|dddgddgd�}t|jƒdk�s&t‚t|jƒd	k�s:t‚t|ƒj 	¡ �sNt‚d}tjt|d��F t ¡ �2 tjdtdd� t|dddgddgtjd
� W 5 Q R X W 5 Q R X t  |¡}d|d< d|d< t|dddgddgd�}d|d  d¡d k�sút‚d|d  d¡d k�st‚t jdtd�}t|dddgddgd�}t|jƒdk�sPt‚t|jƒd	k�sdt‚t 	t 
||k¡ ¡�s€t‚t|dddgddgtd
�}|jjtk�s¬t‚t  |¡}d|d< d|d< t|dddgddgd�}|d d dk�sôt‚|d d dk�s
t‚d S )Nr>  r2   rË   rh   rÐ   rI   rH   rC  r1   r¢  rµ   r¦  rd   z8datetime64\[ns\] values and dtype=int64 is not supportedrY   Úignorezelementwise comparison failed)ÚcategoryÚmessager[   TF)r   r§  rÑ   r   rL   rU   rO   rˆ   r4   r  r¨  r'   r·   r3   r±   r!   r`   ra   ru   ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningr-   r€   rñ   rj   )r;   r£  r  Zmat2rb   r?   r?   r@   Ú%test_constructor_maskedarray_nonfloat  s\    

ý0

z?TestDataFrameConstructors.test_constructor_maskedarray_nonfloatc                 C   sÀ   t jdtd� ¡ }t|ddgddgd�}ttjtjgtjtjgdœddgddgtd	�}t ||¡ t j	dtd� ¡ }t|ddgddgd�}td
d
gd
d
gdœddgddgtd	�}t ||¡ d S )N)rH   rH   r2   rË   rh   rI   rH   rC  r  r¢  r«   )
r   r§  r²   Zharden_maskr   r4   r_   r9   r:   r©   )r;   Zmat_hardro   r>   r?   r?   r@   Ú%test_constructor_maskedarray_hardenedN  s$    üüz?TestDataFrameConstructors.test_constructor_maskedarray_hardenedc              	   C   s\   t jjt jjdddgd�dgd d�}| tj¡}tjt	dd�� t
|td� W 5 Q R X d S )	Nr†   )r   ú<f8)Zpricer³  r2   F)ÚmaskzPass \{name: data\[name\]rY   )r4   r   r^   rò   r€   r   Z	mrecarrayr`   ra   ru   r   rÑ   ©r;   rš   r?   r?   r@   Ú%test_constructor_maskedrecarray_dtyped  s     ÿz?TestDataFrameConstructors.test_constructor_maskedrecarray_dtypec                 C   s   t g d�}|jjdkst‚d S )NrT   rµ   )r   r·   ÚshaperO   rf   r?   r?   r@   Útest_constructor_corner_shapen  s    
z7TestDataFrameConstructors.test_constructor_corner_shapez%data, index, columns, dtype, expectedrÒ   r¤   r¥   r'   r   c                 C   s"   t ||||ƒ}|jj|kst‚d S r�   )r   r·   r3   rO   )r;   rš   rU   rˆ   r3   r>   r=   r?   r?   r@   Útest_constructor_dtyper  s    z0TestDataFrameConstructors.test_constructor_dtypezdata,input_dtype,expected_dtypeTFÚbooleanr«   r¬   ZFloat64ZInt64r¦   Ústringc                 C   s(   t d|i|d�}|d j|ƒ ks$t‚d S )Nr¤   r2   r  )r;   rš   Zinput_dtypeZexpected_dtyper=   r?   r?   r@   Ú0test_constructor_dtype_nullable_extension_arrays€  s    zJTestDataFrameConstructors.test_constructor_dtype_nullable_extension_arraysc                 C   sŠ   ddddddœ}t |t d¡d�}|d	 jtjks6t‚|d
 jtjksJt‚|d jtjks^t‚|d jtjksrt‚|d jtj	ks†t‚d S )NrI   Tr­   y              @r¡   )rÑ   rñ   r²   Úcomplexrj   rÒ   rT   rÑ   rñ   r²   r½  rj   )
r   r4   r5   r3   r-   rO   ró   r'   râ   r¢   )r;   rš   r=   r?   r?   r@   Ú!test_constructor_scalar_inference�  s    z;TestDataFrameConstructors.test_constructor_scalar_inferencec              	   C   sh   t tj d¡ddœƒ}t |d jdgd dœƒ}t ||¡ tjt	dd�� t dddœƒ W 5 Q R X d S )NrÒ   Trá   r¤   zmust pass an indexrY   F)
r   r4   rÓ   rc  r·   r9   r:   r`   ra   r¨   )r;   r=   r  r?   r?   r@   Ú#test_constructor_arrays_and_scalars™  s
    z=TestDataFrameConstructors.test_constructor_arrays_and_scalarsc                 C   s8   t |ƒ}t ||¡ t |tjd�}|jjtjks4t‚d S ©Nr2   )r   r9   r:   r4   r-   r·   r3   rO   )r;   rí   r=   Z	df_castedr?   r?   r@   Útest_constructor_DataFrame¡  s    z4TestDataFrameConstructors.test_constructor_DataFramec                 C   s*   t t ƒ dd�}t g dd�}t ||¡ d S )Nrj   r2   rŸ   )r;   Úactualr>   r?   r?   r@   Ú test_constructor_empty_dataframe¨  s    z:TestDataFrameConstructors.test_constructor_empty_dataframec              	   C   sŒ  t j d¡}t|dgt  d¡d�}|jjdks2t‚t j d¡}t|ƒ}|jjdksVt‚|jjdksft‚tddgt  d¡d�}|jjdksŒt‚tddgd�}|jjd	ksªt‚tt  d¡d
�}|jjdksÊt‚t j	ddgt
d� dd¡}d}tjt|d�� t|ddgdgtd� W 5 Q R X tt|jƒƒ}t ||¡ tt jdtd�t jdt jd�dœt  d¡d
�}t|jƒdk�stt‚|jjt jk�sˆt‚d S )NrÒ   rË   rC  rH   r   rh   )rÒ   rH   r‡   )r   rH   rT   )rÒ   r   r¡   rÎ   r2   rI   z(could not convert string to float: 'foo'rY   ©rU   rˆ   r3   r  )r4   rÓ   rc  r   r5   r·   ÚndimrO   r·  r^   rj   r6   r`   ra   r¨   r²   r  r9   r:   r©   rÑ   r'   rL   rˆ   r3   )r;   rí   r<   rg  r£  rb   r?   r?   r@   Útest_constructor_more®  s2     þz/TestDataFrameConstructors.test_constructor_morec                 C   sx   t g g d�}t g d�}t ||¡ t g ddgd�}t i ddgd�}t ||¡ dd„ }t |ƒ ddgd�}t ||¡ d S )NrT   rË   rh   r‡   c                   s   s   dE d H  d S r‘   r?   r?   r?   r?   r@   Ú	empty_genà  s    zHTestDataFrameConstructors.test_constructor_empty_list.<locals>.empty_genrŸ   )r;   r=   r>   rÇ  r?   r?   r@   Útest_constructor_empty_listÕ  s    
z5TestDataFrameConstructors.test_constructor_empty_listc                 C   s|   t ddgddggddgd�}t|d ƒs,t‚|d jtjks@t‚t dt d	¡iƒ}d
d„ td	ƒD ƒ}t |ƒ}t 	||¡ d S )NrI   r¤   rH   r¥   Únumr7   r:  r   rÒ   c                 S   s   g | ]}t  |¡‘qS r?   ©r4   r^   r|   r?   r?   r@   r   ï  s     zLTestDataFrameConstructors.test_constructor_list_of_lists.<locals>.<listcomp>)
r   r   rO   r3   r4   r¢   r5   r‰   r9   r:   )r;   r=   r>   rš   ro   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sbt	‚t 
|d j|¡ d S )NrI   rH   r2   r   )rH   rI   )r   r4   r^   rj   r   r–  r9   r:   r·  rO   r\  r·   )r;   Úserr<   r=   r>   r?   r?   r@   Ú.test_nested_pandasarray_matches_nested_ndarrayó  s    zHTestDataFrameConstructors.test_nested_pandasarray_matches_nested_ndarrayc                 C   sj   t dƒt dƒg}tddddgdddd	gg|d
�}t |¡}tddddgdddd	gg|d
�}t ||¡ d S )NÚabcdZcdefrI   rH   r1   r0   r†   rC   rv  r‡   )ré   r   r   Zfrom_arraysr9   r:   )r;   r�   ro   rA  r>   r?   r?   r@   Ú2test_constructor_list_like_data_nested_list_column  s
     
 zLTestDataFrameConstructors.test_constructor_list_like_data_nested_list_columnc              	   C   sR   t dƒt dƒg}d}tjt|d��& tddddgdd	d
dgg|d� W 5 Q R X d S )Nr   Úcdez#3 columns passed, passed data had 4rY   rI   rH   r1   r0   r†   rC   rv  r‡   ©ré   r`   ra   r¨   r   ©r;   r�   rb   r?   r?   r@   Ú0test_constructor_wrong_length_nested_list_column  s    zJTestDataFrameConstructors.test_constructor_wrong_length_nested_list_columnc              	   C   sR   t dƒt dƒg}d}tjt|d��& tddddgdd	d
dgg|d� W 5 Q R X d S )NrÎ  rÐ  zall arrays must be same lengthrY   rI   rH   r1   r0   r†   rC   rv  r‡   rÑ  rÒ  r?   r?   r@   Ú2test_constructor_unequal_length_nested_list_column  s    zLTestDataFrameConstructors.test_constructor_unequal_length_nested_list_columnrš   ú
2021-01-01r~   c                 C   s<   t |dddgdgd�}t dtdƒgd iƒ}t ||¡ d S )Nr   rI   rH   r~   r�   rÕ  r1   )r   r   r9   r:   rj  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                   @   s0   e Zd Zddœdd„Zdd„ Zedœdd„ZdS )	zPTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainerN©Úreturnc                 S   s
   || _ d S r�   )Ú_lst)r;   Úlstr?   r?   r@   Ú__init__0  s    zYTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__init__c                 S   s   | j  |¡S r�   )rÙ  Ú__getitem__)r;   Únr?   r?   r@   rÜ  3  s    z\TestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__getitem__c                 S   s
   | j  ¡ S r�   )rÙ  Ú__len__)r;   r?   r?   r@   rÞ  6  s    zXTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__len__)Ú__name__Ú
__module__Ú__qualname__rÛ  rÜ  rÑ   rÞ  r?   r?   r?   r@   ÚDummyContainer/  s   râ  rI   r¤   rH   r¥   rÉ  r7   r‡   Fri  )r   ÚSequencer   r9   r:   )r;   râ  Zlst_containersrˆ   ro   r>   r?   r?   r@   Útest_constructor_sequence_like+  s    
z8TestDataFrameConstructors.test_constructor_sequence_likec                 C   s�   t dt dtdƒ¡iƒ}t dttdƒƒiƒ}tj||dd� t ttdƒƒttdƒƒgƒ}t t dtdƒ¡t dtdƒ¡gƒ}tj||dd� d S )NrË   r÷   rÒ   Fri  )r   r^   r‰   ré   r9   r:   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é   r9   r:   r<  r?   r?   r@   Útest_constructor_rangeJ  s    z0TestDataFrameConstructors.test_constructor_rangec                 C   s@   t tdƒtdƒgƒ}t ttdƒƒttdƒƒgƒ}t ||¡ d S ræ  rç  r<  r?   r?   r@   Útest_constructor_list_of_rangesP  s    z9TestDataFrameConstructors.test_constructor_list_of_rangesc                 C   s<   G dd„ dƒ}t dddggd ƒ}t |ƒ ƒ}t ||¡ d S )Nc                   @   s   e Zd Zedœdd„ZdS )zATestDataFrameConstructors.test_constructor_iterable.<locals>.Iterr×  c                 s   s   t dƒD ]}dddgV  qd S )NrÒ   rI   rH   r1   )r‰   )r;   r÷   r?   r?   r@   Ú__iter__X  s    zJTestDataFrameConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)rß  rà  rá  r
   rê  r?   r?   r?   r@   ÚIterW  s   rë  rI   rH   r1   rÒ   rŸ   )r;   rë  r>   ro   r?   r?   r@   Útest_constructor_iterableU  s    
z3TestDataFrameConstructors.test_constructor_iterablec                 C   s0   t ttdƒƒƒ}t ttdƒƒƒ}t ||¡ d S ræ  ©r   rn  r‰   ré   r9   r:   r<  r?   r?   r@   Útest_constructor_iterator`  s    z3TestDataFrameConstructors.test_constructor_iteratorc                 C   sH   t ttdƒƒttdƒƒgƒ}t ttdƒƒttdƒƒgƒ}t ||¡ d S ræ  rí  r<  r?   r?   r@   Ú"test_constructor_list_of_iteratorse  s    z<TestDataFrameConstructors.test_constructor_list_of_iteratorsc                 C   s˜   dd„ t dƒD ƒ}dd„ t dƒD ƒ}ttt dƒƒtt dƒƒgƒ}t||gƒ}t ||¡ dd„ t dƒD ƒ}t|ƒ}tt dƒddœƒ}tj||dd	� d S )
Nc                 s   s   | ]
}|V  qd S r�   r?   rö   r?   r?   r@   r”   m  s     zGTestDataFrameConstructors.test_constructor_generator.<locals>.<genexpr>rÒ   c                 s   s   | ]
}|V  qd S r�   r?   rö   r?   r?   r@   r”   n  s     c                 s   s   | ]}|d gV  qdS )r¤   Nr?   rö   r?   r?   r@   r”   t  s     r¤   rJ   Fri  )r‰   r   ré   r9   r:   )r;   Zgen1Zgen2r>   ro   Úgenr?   r?   r@   Útest_constructor_generatorj  s    z4TestDataFrameConstructors.test_constructor_generatorc                 C   s*   t i gƒ}t tdƒg d�}t ||¡ d S )NrI   r�   )r   r   r9   r:   r<  r?   r?   r@   Útest_constructor_list_of_dictsy  s    
z8TestDataFrameConstructors.test_constructor_list_of_dictsc                 C   sf   t ddgƒ}t ddgƒ}t d|fd|fgƒ}t|ƒ}ddgdd	gd
œ}t|ddgd�}t ||¡ d S )N)r¥   rI   )r¤   rH   )r¥   rH   )r¤   r†   r¯   r®   rI   rH   r†   )r¯   r®   r¥   r¤   )rš   rU   )r   r   r9   r:   )r;   Znested1Znested2rš   ro   r>   r?   r?   r@   Ú3test_constructor_ordered_dict_nested_preserve_order~  s    zMTestDataFrameConstructors.test_constructor_ordered_dict_nested_preserve_orderÚ	dict_typec                 C   st   t ddggddgd�}|ƒ }dg|d< dg|d< t |ƒ}t ||¡ |ƒ }d|d< d|d< t |gƒ}t ||¡ d S )NrH   rI   r¥   r¤   r‡   rŸ   )r;   rô  r>   rš   ro   r?   r?   r@   Ú,test_constructor_ordered_dict_preserve_orderˆ  s    


zFTestDataFrameConstructors.test_constructor_ordered_dict_preserve_orderc                 C   sª   |ƒ }d|d< d|d< |ƒ }d|d< d|d< dddœ}t ddgddggddgd�}t ||gƒ}t ||¡ t ddgddgddggddgd�}t |||gƒ}t ||¡ d S )NrH   r¥   rI   r¤   r8  r‡   rŸ   )r;   rô  Zrow_oneZrow_twoZ	row_threer>   ro   r?   r?   r@   Ú0test_constructor_ordered_dict_conflicting_orders›  s    
"zJTestDataFrameConstructors.test_constructor_ordered_dict_conflicting_ordersc                 C   s^   dd„ t dƒD ƒ}t|ƒ}tdddgdddgdddgdœdd	d
gdddgd�}t ||¡ d S )Nc                 S   s$   g | ]}t |d ddgt|ƒd�‘qS )r¥   r¤   r¦   r  )r   r7   rö   r?   r?   r@   r   ²  s     z[TestDataFrameConstructors.test_constructor_list_of_series_aligned_index.<locals>.<listcomp>r1   r   rI   rH   )r¥   r¤   r¦   r¥   r¤   r¦   Ú0r  rÇ   rC  rl  )r;   Úseriesro   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                   @   s   e Zd ZdS )zTTestDataFrameConstructors.test_constructor_list_of_derived_dicts.<locals>.CustomDictN©rß  rà  rá  r?   r?   r?   r@   Ú
CustomDict¼  s   rû  ç      ø?r1   rá   )rÜ   r   r9   r:   )r;   rû  rÅ   Zdata_customrš   Zresult_customro   r?   r?   r@   Ú&test_constructor_list_of_derived_dicts»  s    

z@TestDataFrameConstructors.test_constructor_list_of_derived_dictsc              	   C   s@   t j d¡t j d¡dœ}tjtdd�� t|ƒ W 5 Q R X d S )NrÒ   rw  r  z%All arrays must be of the same lengthrY   )r4   rÓ   rc  r`   ra   r¨   r   rµ  r?   r?   r@   Útest_constructor_raggedÈ  s    z1TestDataFrameConstructors.test_constructor_raggedc                 C   sF   t tdƒƒ}tddi|d�}tddddgi|d�}tj||dd� d S )Nr1   r¤   r   rT   Fri  )r   r‰   r   r9   r:   )r;   rn   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   rU   r±   )r;   rí   r=   r?   r?   r@   Ú test_constructor_Series_copy_bugÓ  s    z:TestDataFrameConstructors.test_constructor_Series_copy_bugc              	   C   sÊ   i }ddddœ|d< t ddddgddd	d
gd�|d< t|ƒ}|jjsHt‚tjtdd�� tddgdddœdœƒ W 5 Q R X tddgt ddgddgd�dœƒ}tddgddgdœddgd�}t 	||¡ d S )NrI   rH   r1   )r¡   rÎ   rH  rË   r0   rÎ   ZquxrH  r¡   rT   rh   zambiguous orderingrY   r¤   r¥   rá   r  )
r   r   rU   Zis_monotonic_increasingrO   r`   ra   r¨   r9   r:   rj  r?   r?   r@   Ú&test_constructor_mixed_dict_and_Series×  s     ""z@TestDataFrameConstructors.test_constructor_mixed_dict_and_Seriesc                 C   s8   ddgdg}t |ƒ}t ddgddggƒ}t ||¡ d S )NrI   rH   ©r1   r0   r1   r0   rŸ   rj  r?   r?   r@   Ú test_constructor_mixed_type_rowsè  s    z:TestDataFrameConstructors.test_constructor_mixed_type_rowsztuples,lists)r?   r?   r1   r0   rC   c                 C   s    t |ƒ}t |ƒ}t ||¡ d S r�   rŸ   )r;   r@  Úlistsro   r>   r?   r?   r@   Útest_constructor_tupleï  s    z0TestDataFrameConstructors.test_constructor_tuplec                 C   s4   t dddgiƒ}t dtddgƒiƒ}t ||¡ d S )NrË   r¦  r  ©r   r   r9   r:   r<  r?   r?   r@   Útest_constructor_list_of_tuples  s    z9TestDataFrameConstructors.test_constructor_list_of_tuplesc                 C   s‚   t dtdƒƒ}|ddƒ|ddƒg}tddgddgdœƒ}t|ƒ}t ||¡ tddgddgdœƒ}t|d	d
gd�}t ||¡ d S )NZPandasÚabrI   r1   rH   r0   rá   )rŠ   r|  rŠ   r|  r‡   )r   ré   r   r9   r:   )r;   Znamed_tupler@  r>   ro   r?   r?   r@   Ú$test_constructor_list_of_namedtuples  s    z>TestDataFrameConstructors.test_constructor_list_of_namedtuplesc                 C   sX   t ddtfdtfgƒ}|ddƒ|ddƒg}tddgddgdœƒ}t|ƒ}t ||¡ d S )NÚPointr~   rŠ   r   r1   rI   ©r~   rŠ   )r   rÑ   r   r9   r:   )r;   r
  rš   r>   ro   r?   r?   r@   Ú$test_constructor_list_of_dataclasses  s
    z>TestDataFrameConstructors.test_constructor_list_of_dataclassesc                 C   sˆ   t ddtfdtfgƒ}t ddtfdtfdtfgƒ}|ddƒ|d	ddƒg}tdtjgddgtjd	gtjdgd
œƒ}t|ƒ}t ||¡ d S )Nr
  r~   rŠ   ÚHLineÚx0Úx1r   r1   rI   )r~   rŠ   r  r  )r   rÑ   r   r4   r_   r9   r:   )r;   r
  r  rš   r>   ro   r?   r?   r@   Ú7test_constructor_list_of_dataclasses_with_varying_types  s    "ÿzQTestDataFrameConstructors.test_constructor_list_of_dataclasses_with_varying_typesc              	   C   sV   t ddtfdtfgƒ}d}tjtt |¡d�� t|ddƒdddœgƒ W 5 Q R X d S )	Nr
  r~   rŠ   z0asdict() should be called on dataclass instancesrY   r   rI   r  )r   rÑ   r`   ra   ru   ÚreÚescaper   )r;   r
  rb   r?   r?   r@   Ú1test_constructor_list_of_dataclasses_error_thrown*  s    zKTestDataFrameConstructors.test_constructor_list_of_dataclasses_error_thrownc              	   C   s~   dddddœdddd	d
œdddddddœg}t dddgdddgdd	dgdddgd d dgd d dgdœƒ}t |ƒ}t ||¡ d S )NrI   r0   rv  rÒ   )ÚFirstÚSecondÚThirdÚFourthr†   rH   r3  rw  )r  r  r  r  rC   r1   r/   rx  é   r6  )r  r  r  r  ÚYYYÚXXX)r  r  r  r  r  r  rŸ   )r;   rš   r>   ro   r?   r?   r@   Ú#test_constructor_list_of_dict_order3  s    ýúÿ
z=TestDataFrameConstructors.test_constructor_list_of_dict_orderc              	   C   sv  t dddgdddgdd�}t|ƒ}|jd	 dks4t‚t |j|j¡ tj 	d
¡}t |dd�}t|ƒ}td|iƒ}t 
||¡ t |tddƒd�}t|ƒ}td	|iƒ}t 
||¡ d}tjt|d�� t|ddgd� W 5 Q R X t g dtd�}t|ƒ}|jd	 dk�st‚t |dd�}t||gƒj}t||dœddgd�}t 
||¡ t||gƒj}t||dœd	dgd�}t 
||¡ d S )NrI   rH   r1   r¤   r¥   r¦   r~   r  r   rÒ   ri   r6  rT   z<Shape of passed values is \(10, 1\), indices imply \(10, 2\)rY   r‡   ©r]   r3   )r~   ú	Unnamed 0r  rÈ   )r   r   rˆ   rO   r9   rë   rU   r4   rÓ   rc  r:   r‰   r`   ra   r¨   rj   r~  )r;   r¤   r=   r<   rƒ  r>   rb   Ús1r?   r?   r@   Útest_constructor_Series_namedG  s4    z7TestDataFrameConstructors.test_constructor_Series_namedc                 C   s€   t tdƒdd�}t tdƒdd�}t t|dgd�| ¡ ¡ t t|dgd�| ¡ ¡ t|dgd�jsht‚t|dgd�js|t‚d S )Nr†   r   ri   rI   r‡   )r   r‰   r9   r:   r   Úto_framerÌ   rO   )r;   Ús0r  r?   r?   r@   Ú)test_constructor_Series_named_and_columnsm  s    zCTestDataFrameConstructors.test_constructor_Series_named_and_columnsc                 C   sÀ   t dddgdddgdd�}t dddgdddgd	�}tddgƒ}t||d	�}t| |¡ƒ}|jd
 dksjt‚t ||¡ t||d	�}t| |¡ƒ}|jd
 d
ks¢t‚t |j	|¡ t ||¡ d S )NrI   rH   r1   r¤   r¥   r¦   r~   r  rT   r   )
r   r   r   rì   rˆ   rO   r9   r:   rë   rU   )r;   r  Ús2Zother_indexÚdf1Zexp1r¾   Zexp2r?   r?   r@   Ú+test_constructor_Series_differently_indexed{  s    zETestDataFrameConstructors.test_constructor_Series_differently_indexedz#name_in1,name_in2,name_in3,name_out)rn   rn   rn   rn   )rn   rn   NN)rn   NNN)Úidx1Úidx2NN)r&  r&  r'  N)r&  r'  Zidx3N)NNNNc           
      C   sº   t dddg|d�t dddg|d�t dddg|d�g}dd„ t|d	d
dgƒD ƒ}t|ƒ}t dddddg|d�}tdddtjtjgtjdddtjgtjtjdddgdœ|d�}	t ||	¡ d S )Nr¤   r¥   r¦   ri   rÅ   Úec                 S   s$   i | ]\}}|t d ddg|d�“qS )r   rI   rH   rT   r{   )r}   r÷   r¦   r?   r?   r@   r.  ¢  s     zJTestDataFrameConstructors.test_constructor_index_names.<locals>.<dictcomp>r~   rŠ   r|  r   rI   rH   )r~   rŠ   r|  rT   )r   rÚ   r   r4   r_   r9   r:   )
r;   Zname_in1Zname_in2Zname_in3Zname_outÚindicesrø  ro   Zexp_indr>   r?   r?   r@   Útest_constructor_index_names�  s"    ýÿýú	z6TestDataFrameConstructors.test_constructor_index_namesc                 C   s\   t |jd d… ƒ}t |jd d… ƒ}t|j||d�}t |jt|ƒ¡ t |jt|ƒ¡ d S )Nr†   r1   r�   )ré   rU   rˆ   r   rM   r9   rë   r   )r;   rí   rU   rˆ   ro   r?   r?   r@   Útest_constructor_manager_resize³  s
    z9TestDataFrameConstructors.test_constructor_manager_resizec              	   C   s„   t |d t|d ƒdœddgd�}t ||jd d …ddgf ¡ d}tjt|d��( t |d t|d ƒd d… dœƒ W 5 Q R X d S )NrË   rh   r  r‡   zdoes not match index lengthrY   éþÿÿÿ)r   ré   r9   r:   rÉ   r`   ra   r¨   )r;   rí   r=   rb   r?   r?   r@   Ú%test_constructor_mix_series_nonseries»  s     ÿz?TestDataFrameConstructors.test_constructor_mix_series_nonseriesc              	   C   s>   d}t jt|d��" ttjdgddggtjd� W 5 Q R X d S )NrX   rY   rI   r   r2   )r`   ra   r   r   r4   r_   r-   r%  r?   r?   r@   Ú%test_constructor_miscast_na_int_dtypeÅ  s    z?TestDataFrameConstructors.test_constructor_miscast_na_int_dtypec                 C   s^   t ddggddgd�}t ddggƒ}ddg|_t ||¡ t jdgddgd�}t ||¡ d S )Nrw  r†   r¤   r‡   )rw  r†   )r   rˆ   r9   r:   Zfrom_records)r;   r=   ZedfZidfr?   r?   r@   Ú"test_constructor_column_duplicatesË  s    
z<TestDataFrameConstructors.test_constructor_column_duplicatesc                 C   s¦   t ddgddgtd�}t ddgddgtd�}t ||¡ t ddgddgtjd�}t ||¡ t ddgddgtjd�}t ||¡ t ddgddgdd�}t ||¡ d S )Nr   rI   rÄ  ZU5)r   rj   r7   r9   r:   r4   Zstr_Zunicode_r]  r?   r?   r@   Ú(test_constructor_empty_with_string_dtype×  s    zBTestDataFrameConstructors.test_constructor_empty_with_string_dtypec                 C   s,   t dg|d�}t dg|d�}t ||¡ d S )NÚc1©rˆ   r3   rŸ   )r;   Znullable_string_dtyper>   r=   r?   r?   r@   Ú,test_constructor_empty_with_string_extensionä  s    zFTestDataFrameConstructors.test_constructor_empty_with_string_extensionc              	   C   sX  t ddddgdddgd�}t |t t |j¡ d	¡|j|jƒ¡ t d
dddgdddgd�}t |t t |j¡ d¡|j|jƒ¡ t dddgddgd�}t |t tj	ddgddggt
d�ddgddgd�¡ d}tjt|d�� t dddgƒ W 5 Q R X tjt|d�� t dddgd� W 5 Q R X d}tjt|d�� t dddgddgtƒ W 5 Q R X d S )Nç        rI   rH   r1   r¤   r¥   r¦   r�   r'   r   r-   r2   z*DataFrame constructor not properly called!rY   r‡   zincompatible data and dtype)r   r9   r:   r4   rò   r·  r8   rU   rˆ   r^   rj   r`   ra   r¨   ru   r²   )r;   r=   rb   r?   r?   r@   Útest_constructor_single_valueê  s6     ÿ ÿýþ	z7TestDataFrameConstructors.test_constructor_single_valuec                 C   sò  t  t j¡j}t  t j¡j}t  d¡j}t  t j¡j}tdddtdƒtdddddƒd	œt  	d
¡d�}|j
}tt  d¡gt  |¡gd  t  |¡gd  tdƒd�}t ||¡ tdddddd|t jd|d�|t jd|d�it  	d
¡d�}|j
}tt  d¡gt  d¡g t  d¡g t  d¡g t  |¡g ddd||gd�}t ||¡ tdddddd|t jdgd
 |d�|t jdgd
 |d�it  	d
¡d�}|j
}tt  d¡gt  d¡g t  d¡g t  d¡g t  |¡g ddd||gd�}t ||¡ d S )Nrd   rI   r¡   rÎ   Z20010101éÑ  rH   r   )rË   rh   rÐ   r(  ÚErÒ   rT   r-   ZABCDEr¤   r«   r¥   r¦   r2   r'   rj   )r4   r3   Úint_r]   Zfloat_r¢   r   r   r   r5   rÝ   r   ré   r9   rm   r^   )r;   ZintnameZ	floatnameZdatetime64nameZ
objectnamer=   ro   r>   r?   r?   r@   Útest_constructor_with_datetimes
  sž    ûø

ÿþü     ûø


ÿ
þ
ý
üú     ûø


ÿ
þ
ý
üúz9TestDataFrameConstructors.test_constructor_with_datetimesc                 C   s6   t dddd�}dd„ |D ƒ}t|ƒ}|jdks2t‚d S )NrI  r(  rÒ   ©Ústartr•  rF   c                 S   s   g | ]}|  ¡ ‘qS r?   ©Úto_pydatetime©r}   Útsr?   r?   r@   r   T  s     zNTestDataFrameConstructors.test_constructor_with_datetimes1.<locals>.<listcomp>rd   )r    r   r3   rO   )r;   ÚindÚ	datetimesZ
datetime_sr?   r?   r@   Ú test_constructor_with_datetimes1Q  s    z:TestDataFrameConstructors.test_constructor_with_datetimes1c                 C   sv   t dddd�}dd„ |D ƒ}dd„ |D ƒ}t|dgd	�}||d
< |j}tt d¡t d¡gdd
gd�}t ||¡ d S )NrI  r(  rÒ   r:  c                 S   s   g | ]}|  ¡ ‘qS r?   r<  r>  r?   r?   r@   r   [  s     zNTestDataFrameConstructors.test_constructor_with_datetimes2.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r?   )r   r>  r?   r?   r@   r   \  s     rA  r‡   Údatesúdatetime64[ns]rj   rT   )r    r   rÝ   r   r4   r3   r9   rm   )r;   r@  rA  rC  r=   ro   r>   r?   r?   r@   Ú test_constructor_with_datetimes2X  s    þz:TestDataFrameConstructors.test_constructor_with_datetimes2c                 C   s�   t  d¡}| tdddƒ¡}td|idgd�}|jd |ks@t‚t |j	t
ddiƒ¡ td|igƒ}|jd |ksvt‚t |j	t
ddiƒ¡ d S )	Nr›  éÜ  rI   zEnd Dater   rT   rµ   údatetime64[ns, US/Eastern])ÚpytzÚtimezoneZlocalizer   r   ÚiatrO   r9   rm   rÝ   r   )r;   rG   rS   r=   r?   r?   r@   Ú test_constructor_with_datetimes3f  s    
 
ÿ 
ÿz:TestDataFrameConstructors.test_constructor_with_datetimes3c                 C   s”   t ddd�}td|iƒ}|jd jd ks,t‚t dddd�}td|iƒ}t|jd jƒdks^t‚t dddd�}td|iƒ}t|jd jƒdks�t‚d S )	NÚ20130101r1   rJ  rV   rµ   ÚUTCrE   r›  )r    r   rJ  rG   rO   r7   )r;   Údrr=   r?   r?   r@   Ú test_constructor_with_datetimes4x  s    z:TestDataFrameConstructors.test_constructor_with_datetimes4c                 C   s^   t ddddd�}td| ¡ jdd�iƒ}tƒ }||d< t ||¡ td|iƒ}t ||¡ d S )	Nú1/1/2011r†   Ú10sr›  ©rF   r•  rG   r¤   T©Zdrop©r    r   Z	to_seriesZreset_indexr9   r:   )r;   r÷   r>   r=   r?   r?   r@   Ú test_constructor_with_datetimes5…  s    z:TestDataFrameConstructors.test_constructor_with_datetimes5c                 C   sV   t ddddd�}t dddd�}t||dœƒ}t| ¡ jdd	�|dœƒ}t ||¡ d S )
NrP  r†   rQ  r›  rR  ©rF   r•  rá   TrS  rT  )r;   r÷   Zi_no_tzr=   r>   r?   r?   r@   Ú test_constructor_with_datetimes6’  s
    z:TestDataFrameConstructors.test_constructor_with_datetimes6r<   rq   c                 C   s*   t |ƒj}tt d¡gƒ}t ||¡ d S )NrD  )r   rÝ   r   r4   r3   r9   rm   )r;   r<   ro   r>   r?   r?   r@   Ú%test_constructor_datetimes_with_nullsš  s    
z?TestDataFrameConstructors.test_constructor_datetimes_with_nullsÚorderÚKrË   rÐ   ÚFÚunitÚhrƒ  ÚmsÚusrr   c              	   C   s–   d|› d�}t jdddgdddgg||d	�}t|ƒ}t| d
¡ƒ}|dkrztjtdd�� | |¡ W 5 Q R X | d¡}n|j|d�}t ||¡ d S )Nzdatetime64[ú]z
2015-01-01z
2015-01-02z
2015-01-03z
2017-01-01z
2017-01-02z
2017-02-03©r3   rY  rd   )rz   r(  r]  ry   úCannot castrY   zdatetime64[s]r2   )	r4   r^   r   r8   r`   ra   ru   r9   r:   )r;   rY  r\  r3   Únar=   r>   r?   r?   r@   Ú!test_constructor_datetimes_non_ns­  s     þúz;TestDataFrameConstructors.test_constructor_datetimes_non_nsc           	      C   s´   d|› d�}t jt  dd¡t  dd¡gt  dd¡t  dd¡gg||d�}t|ƒ}|d	kr^d
}n|}t  d|› d�¡}ttddƒtddƒgtddƒtddƒgg|d�}t ||¡ d S )Nztimedelta64[r`  rI   r(  rH   r0   r†   ra  )r(  r]  ry   rƒ  zm8[r2   )r4   r^   r�  r   r3   r   r9   r:   )	r;   rY  r\  r3   rc  r=   Zexp_unitÚ	exp_dtyper>   r?   r?   r@   Ú!test_constructor_timedelta_non_nsÉ  s(    þúþû	z;TestDataFrameConstructors.test_constructor_timedelta_non_nsc              	   C   s2  t dd„ tdƒD ƒƒ}|j}tt d¡gd ƒ}t ||¡ t dd„ tdƒD ƒƒ}|j}tt d¡gd ƒ}t ||¡ t ddd	giƒ}|jjd
 t d¡ks¢t	‚t ddgƒ}|jjd
 t d¡ksÈt	‚t ddgƒ}|jjd
 t d¡ksît	‚t dddgiƒ}|jjd
 t d¡k�st	‚t dddgiƒ}|jjd
 t d¡k�sFt	‚t dditdƒd�}|jjd
 t d¡k�svt	‚t dditdƒd�}|jjd
 t d¡k�s¦t	‚t ddddgddddgt
dƒdd„ tdƒD ƒddddgdœƒ}|j}tt d¡t d¡t d¡t d¡t d¡gt
dƒd�}t ||¡ d S ) Nc                 S   s   g | ]}t  d ¡‘qS )r†   )r4   r5   r|   r?   r?   r@   r   ô  s     zSTestDataFrameConstructors.test_constructor_for_list_with_dtypes.<locals>.<listcomp>r†   rÑ   c                 S   s    g | ]}t jt  d ¡dd�‘qS )r†   r,   r2   )r4   r^   r5   r|   r?   r?   r@   r   ù  s     r,   r¤   l        l       r   r-   rI   rH   r«   r¬   r'   r1   rT   r0   rv  g333333ó?gffffff@gffffff@g333333@rÎ  c                 S   s   g | ]}t d ddƒ‘qS )éÐ  rI   )r   rö   r?   r?   r@   r     s     r[  )r¤   r¥   r¦   rÅ   r(  rj   rD  Zabcde)r   r‰   rÝ   r   r4   r3   r9   rm   r¶   rO   ré   )r;   r=   ro   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(t‚|d dk ¡ r<t‚d S )NTrÀ   r†   rË   )r   r  rO   )r;   rí   Úcopr?   r?   r@   Útest_constructor_frame_copy-  s    z5TestDataFrameConstructors.test_constructor_frame_copyc                 C   s@   |  ¡ }t|ƒ}|j|jk	s t‚t t|ƒ¡|_t 	||¡ d S r�   )
r±   r   rM   rO   r4   r5   rL   rU   r9   r:   )r;   rí   Úorigri  r?   r?   r@   Ú#test_constructor_frame_shallow_copy3  s
    z=TestDataFrameConstructors.test_constructor_frame_shallow_copyc                 C   sú   |s||j  ¡ }t|ƒ}d|d< |r:|j d dk ¡ rPt‚n|j d dk ¡ sPt‚t|dd�}d|d< |j d dk ¡ röt‚nz|j  ¡ }t|ƒ}|jjd jjs¢t‚d|d< |j	d dks¼t‚t|dd�}|jjd jjrÜt‚d	|d< |j	d d	ksöt‚d S )
Nr†   TrÀ   rC   r   r  rµ   Fiè  )
r·   r±   r   r  rO   rM   r�   r¼   r½   r¶   )r;   rí   rP   r¸   r<   r=   r?   r?   r@   Útest_constructor_ndarray_copy>  s&    

z7TestDataFrameConstructors.test_constructor_ndarray_copyc                 C   sP   |j }td|d idd�}d|j|jd |jd …df< |d dk ¡ rLt‚d S )NrË   TrÀ   r†   r   rè   )r  r   rÉ   rU   r  rO   )r;   rí   rø  r=   r?   r?   r@   Útest_constructor_series_copy\  s    z6TestDataFrameConstructors.test_constructor_series_copyr=   rT   gš™™™™™ñ?gš™™™™™@r‡   rv  r4  r­   c              	   C   sæ   t t|jƒƒD ]}|jd d …|f  qt t|jƒ¡t|jƒ }t|ƒdkr|tjt	dd�� |j
d d …tjf  W 5 Q R X nft|ƒdkr¸t |jd d …|d f |j
d d …tjf ¡ n*t |jd d …|f |j
d d …tjf ¡ d S )Nr   z^nan$rY   rI   )r‰   rL   rˆ   r¶   r4   r5   r!   r`   ra   ÚKeyErrorrÉ   r_   r9   rm   r:   )r;   r=   r÷   Zindexerr?   r?   r@   Útest_constructor_with_nasf  s     0z3TestDataFrameConstructors.test_constructor_with_nasc                 C   s:   t dtjdgiƒ}|d jtjks&t‚|d d r6t‚d S )Nr¤   FrI   )r   r4   r_   r3   r¢   rO   )r;   rÅ   r?   r?   r@   Ú&test_constructor_lists_to_object_dtype‡  s    z@TestDataFrameConstructors.test_constructor_lists_to_object_dtypec                 C   s\   t dddgƒ}t |¡ dd¡}t |d¡}t||jd�}t||||dœƒ}t ||¡ d S )	NrË   rh   rÐ   rè   rI   r  r2   rŠ  )	r   r4   r^   r6   Zbroadcast_tor   r3   r9   r:   )r;   Úcatr<   ro   r>   r?   r?   r@   Ú*test_constructor_ndarray_categorical_dtype�  s    zDTestDataFrameConstructors.test_constructor_ndarray_categorical_dtypec                 C   sÔ   t dtdƒidd�}ttdƒddd�}t |d |¡ ttdƒdd�}| ¡ }ttdƒddd�}t |d |¡ |jdd�}ttdƒddd�}t |d |¡ t tdƒdd�}ttdƒddd�}t |d |¡ d S )	NrË   r   r«  r2   r\   r   r¡   ri   )r   ré   r   r9   rm   r   )r;   r=   r>   rƒ  ro   r?   r?   r@   Útest_constructor_categorical—  s    z6TestDataFrameConstructors.test_constructor_categoricalc                 C   s6   t tdƒƒ}t|gƒ}t| t¡gƒ}t ||¡ d S )Nr   )r   ré   r   r8   rj   r9   r:   )r;   rr  r=   r>   r?   r?   r@   Ú-test_construct_from_1item_list_of_categorical­  s    
zGTestDataFrameConstructors.test_construct_from_1item_list_of_categoricalc                 C   sD   t ttdƒƒttdƒƒgƒ}t dddgdddggƒ}t ||¡ d S )Nr   Zabdr¤   r¥   r¦   rÅ   ©r   r   ré   r9   r:   rE  r?   r?   r@   Ú(test_construct_from_list_of_categoricals¶  s    zBTestDataFrameConstructors.test_construct_from_list_of_categoricalsc                 C   s@   t ttdƒƒtdƒgƒ}t dddgdddggƒ}t ||¡ d S )	Nr   Údefr¤   r¥   r¦   rÅ   r(  Úfrv  rE  r?   r?   r@   Ú%test_from_nested_listlike_mixed_types¾  s    z?TestDataFrameConstructors.test_from_nested_listlike_mixed_typesc                 C   s@   t ttdƒƒttdƒƒgƒ}t tdƒtdƒgƒ}t ||¡ d S )Nr   Zabdefgrv  rE  r?   r?   r@   Ú0test_construct_from_listlikes_mismatched_lengthsÆ  s    zJTestDataFrameConstructors.test_construct_from_listlikes_mismatched_lengthsc                 C   sÒ   ddddg}t |ƒ d¡}t |dd�}t ||¡ ddddg}t |ƒ d¡}t |dd�}t ||¡ td	dd
�}t ttjtjtjgdddgd�ƒ}||_t	d|iƒ}t	dt dddgdd�i|d�}t 
||¡ d S )NrI   rH   r1   r«  r2   r¤   r¥   r¦   Z20000101rJ  )r·   Ú
categoriesr~   rT   )r   r8   r9   rm   r    r   r4   r_   rU   r   r:   )r;   rR  r  ÚresrU   r>   r=   r?   r?   r@   Ú#test_constructor_categorical_seriesË  s     ÿz=TestDataFrameConstructors.test_constructor_categorical_seriesr3   c                 C   s,   t dddgidg|d�}|jj|ks(t‚d S )Nr¤   rI   rH   r¥   r2  )r   r¥   r3   rO   )r;   r3   rš   r?   r?   r@   Ú%test_check_dtype_empty_numeric_columnâ  s    
z?TestDataFrameConstructors.test_check_dtype_empty_numeric_columnc                 C   sF   t dddgidg|d�}|r0|tjkr0t |¡ |jjjdksBt‚d S )Nr¤   rI   rH   r¥   r2  rj   )	r   r9   ÚBYTES_DTYPESr’  Ú&mark_array_manager_not_yet_implementedr¥   r3   r]   rO   )r;   Úrequestr3   rP   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   rj   r   rÝ   r9   rm   r   r<  r?   r?   r@   Útest_to_frame_with_falsey_namesþ  s
    z9TestDataFrameConstructors.test_to_frame_with_falsey_namesr(   r«  c                 C   sb   t ddddddgi|pdd�}t td	ƒdg|d
�}t ||¡ t dtd	ƒi|d�}t ||¡ d S )NrË   r   rI   rH   r1   r0   r-   r2   r†   r2  )r   r‰   r9   r:   )r;   r3   r>   ro   r?   r?   r@   Útest_constructor_range_dtype	  s
    z6TestDataFrameConstructors.test_constructor_range_dtypec                 C   s\   G dd„ dt ƒ}tdddgdddggƒ}t||dddgƒ|dddgƒgƒƒ}t ||¡ d S )	Nc                   @   s   e Zd ZdS )zETestDataFrameConstructors.test_frame_from_list_subclass.<locals>.ListNrú  r?   r?   r?   r@   ÚList	  s   r†  rI   rH   r1   r0   r†   rC   )ré   r   r9   r:   )r;   r†  r>   ro   r?   r?   r@   Útest_frame_from_list_subclass	  s    $z7TestDataFrameConstructors.test_frame_from_list_subclassÚextension_arrZaabbcz1/1/2017z1/1/2018)r;  Úendr•  c                 C   s$   t t|ƒƒ}t |ƒ}t ||¡ d S r�   r  )r;   rˆ  r>   ro   r?   r?   r@   Ú%test_constructor_with_extension_array	  s    z?TestDataFrameConstructors.test_constructor_with_extension_arrayc                 C   s^   t  ¡ }||f}t|ttdƒtdƒd�i|gd�}tdddgtt|gƒƒd�}t ||¡ d S )Nr1   rT   r‡   r   rI   rH   )r   Útodayr   r   r‰   r   r9   r:   )r;   rX  Útupro   r>   r?   r?   r@   Ú*test_datetime_date_tuple_columns_from_dict,	  s
    "zDTestDataFrameConstructors.test_datetime_date_tuple_columns_from_dictc              	   C   s”   t dddgtdddgƒd�}t dd	dd
dgtdddddgƒd�}t||gƒ}tt dddtjtjgdddddgg¡dddddgd�}t ||¡ d S )Né'   rC   r0   ZfemaleZmaleÚunknownrT   rH   é˜   éò   é–   ry  ry   g      c@g     @n@g     Àb@r¬   r‡   )r   r   r   r4   r^   r_   r9   r:   )r;   r  r#  ro   r>   r?   r?   r@   Ú/test_construct_with_two_categoricalindex_series4	  s    þ$þzITestDataFrameConstructors.test_construct_with_two_categoricalindex_seriesc                 C   s  t tddƒƒ}t|dƒ ¡  d¡}t|dƒ ¡  d¡}t||dœƒ}ttdddd	�tdd
dd	�td
ddd	�tdddd	�tdddd	�tdddd	�tdddd	�tdddd	�tdddd	�tdddd	�g
dd�}tdgd t	j
gd  t	j
gd dgd  dœ|d�}t ||¡ d S )Nr   r  rÒ   r†   r  gòÒMbX¹¿gÍÌÌÌÌÌ#@rš  )ÚclosedgÍÌÌÌÌÌ3@g33333³=@gÍÌÌÌÌÌC@g     ÀH@g33333³M@g33333SQ@gÍÌÌÌÌÌS@gfffffFV@r´   T)ZorderedrT   )r   r‰   r   Zvalue_countsÚheadÚtailr   r   r   r4   r_   r9   r:   )r;   rÌ  Úser1Úser2ro   rU   r>   r?   r?   r@   Ú1test_constructor_series_nonexact_categoricalindexB	  s.    öó, ÿzKTestDataFrameConstructors.test_constructor_series_nonexact_categoricalindexc                 C   s®   t dddddƒt dddddƒfg}tj|ddgd	�}t|ƒ}|d
 d |d d ksXt‚|d d |d d kstt‚t|d
 ƒ}t|d tƒs’t‚|d |d d ksªt‚d S )NrF  rx  r   rw  rb  rÒ   )ÚDateúM8[us])ÚForecastingr›  r2   rš  rœ  rI   )r   r4   r^   r   rO   r   r‚   r   )r;   rC  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:t‚d S )Nc                   @   s   e Zd ZdS )zOTestDataFrameConstructors.test_from_datetime_subclass.<locals>.DatetimeSubclassNrú  r?   r?   r?   r@   ÚDatetimeSubclassj	  s   rž  r   iä  rI   rD  )r   r   r3   rO   )r;   rž  rš   r?   r?   r@   Útest_from_datetime_subclassh	  s    z5TestDataFrameConstructors.test_from_datetime_subclassc              	   C   s@   t dddd�}d}tjt|d�� t|tdƒd� W 5 Q R X d S )	NrB   r1   rD   rE   z@Shape of passed values|Passed arrays should have the same lengthrY   r0   rT   )r    r`   ra   r¨   r   r‰   )r;   rQ   rb   r?   r?   r@   Ú(test_with_mismatched_index_length_raisesp	  s    zBTestDataFrameConstructors.test_with_mismatched_index_length_raisesc                 C   sR   t dddd�}t |¡}ttj t|ƒ¡|dœƒ}t |d jt d¡¡sNt	‚d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50rQ  r”  r  rh   rd   )
r    r4   r¨  r   rÓ   rc  rL   Z
issubdtyper3   rO   )r;   rî   rC  r=   r?   r?   r@   Ú!test_frame_ctor_datetime64_columnw	  s    
z;TestDataFrameConstructors.test_frame_ctor_datetime64_columnc                 C   s‚   ddddgddddgg}t tj dd¡dd„ |D ƒd�}t|jtƒsHt‚t|jtƒrXt‚t tj dd¡|d	�}t|jtƒs~t‚d S )
Nr¤   r¥   r~   rŠ   r0   c                 S   s   g | ]}t  |¡‘qS r?   rÊ  r|   r?   r?   r@   r   ƒ	  s     zYTestDataFrameConstructors.test_dataframe_constructor_infer_multiindex.<locals>.<listcomp>rT   r‡   )	r   r4   rÓ   rc  r‚   rU   r   rO   rˆ   )r;   Zindex_listsÚmultir?   r?   r@   Ú+test_dataframe_constructor_infer_multiindex~	  s    þzETestDataFrameConstructors.test_dataframe_constructor_infer_multiindexÚ
input_valsr  rÇ   rP  ÚHrV  rR  c                 C   s6   t d|i|d�}t d|iƒ d|i¡}t ||¡ d S )NrË   r2   )r   r8   r9   r:   )r;   r¤  ræ   ro   r>   r?   r?   r@   Útest_constructor_list_str‹	  s    z3TestDataFrameConstructors.test_constructor_list_strc                 C   s<   t dddd gi|d�}t dddd gitd�}t ||¡ d S )NrË   r«   r¬   r2   z1.0z2.0)r   rj   r9   r:   )r;   ræ   ro   r>   r?   r?   r@   Útest_constructor_list_str_naž	  s    z6TestDataFrameConstructors.test_constructor_list_str_nar±   c           	         sÖ  |r"|s"|t jt j kr"t |¡ tjddg|d�‰ tjddg|d�‰ˆjjdkrVd S t	jddg|d�‰ˆ 
¡ }tˆ ˆˆdœ|d�‰d	d
„ ‰dtdœ‡ ‡‡‡‡fdd„}|s²|ƒ  dˆjd< dˆjd< |sÒ|dƒ t	jddgˆjd�ˆjd d …df< ˆjjd ˆjk�st‚|�s |�s |dƒ |�rºˆ jjdk�rnˆ d ˆ j dd¡k�sPt‚ˆd ˆj dd¡k�s¢t‚n4ˆ d ˆ j d¡k�sˆt‚ˆd ˆj d¡k�s¢t‚ˆd |d k�sÒt‚n|�sÒˆd dk�sÒt‚d S )NrI   rH   r2   r1   r0   )ÚSÚU©r¤   r¥   r¦   rÀ   c                 S   s0   t | tjƒr| jS t | jtjƒr(| jjS t‚d S r�   )r‚   r4   ZndarrayÚbaser3   Z_ndarrayru   ©r„   r?   r?   r@   Úget_base¿	  s
    z<TestDataFrameConstructors.test_dict_nocopy.<locals>.get_baseF©Zc_onlyc                    sv   t ‡fdd„ˆjjD ƒƒdks"t‚| r*d S t ‡ ‡fdd„ˆjjD ƒƒdksNt‚t ‡‡fdd„ˆjjD ƒƒdksrt‚d S )Nc                 3   s   | ]}|ˆ kV  qd S r�   r?   r|   )r¦   r?   r@   r”   Ï	  s     zRTestDataFrameConstructors.test_dict_nocopy.<locals>.check_views.<locals>.<genexpr>rI   c                 3   s(   | ] }t |jtjƒrˆ|ƒˆ kV  qd S r�   ©r‚   r3   r4   r|   )r¤   r­  r?   r@   r”   Ö	  s   þc                 3   s(   | ] }t |jtjƒrˆ|ƒˆ kV  qd S r�   r¯  r|   )r¥   r­  r?   r@   r”   Þ	  s   þ)ÚsumrM   r�   rO   r®  ©r¤   r¥   r¦   r=   r­  r?   r@   Úcheck_viewsÈ	  s    "þûÿ	þûÿz?TestDataFrameConstructors.test_dict_nocopy.<locals>.check_viewsr   rµ   rJ   Trú   é.   rz   rr   )F)r9   ÚSTRING_DTYPESr€  r’  r�  r4   r^   r3   rx   r–  r±   r   rñ   r¶   rÝ   rO   Útype)	r;   r‚  r±   Zany_numeric_ea_dtypeZany_numpy_dtyperP   r¸   Zc_origr²  r?   r±  r@   Útest_dict_nocopy£	  sF    ÿþý
	

"z*TestDataFrameConstructors.test_dict_nocopyc                 C   s2   t tddd�dgd�}t dgd�}t ||¡ d S )NrI   r¡   ri   rÎ   r‡   r  r<  r?   r?   r@   Ú'test_from_series_with_name_with_columns
  s    zATestDataFrameConstructors.test_from_series_with_name_with_columnsc                 C   sd   t dddgdddggdddgdd	d
ggd�}t dddgdddggt dddg¡d�}t ||¡ d S )NrI   rH   r1   r0   r†   rC   rË   r¤   r¥   r¦   r‡   )rË   r¤   )rË   r¥   )rË   r¦   )r   r   r?  r9   r:   r<  r?   r?   r@   Útest_nested_list_columns
  s     ÿþz2TestDataFrameConstructors.test_nested_list_columnsc           
      C   s  t jddd�}|j t¡ dd¡}t|ƒ}|jdks8t‚|j	|j
k ¡ sLt‚||k ¡  ¡ s`t‚t j dddd	g¡}|j t¡ dd¡}t|ƒ}|jdksžt‚|j	|j
k ¡ s²t‚||k ¡  ¡ sÆt‚tj||||f j}t|ƒ}t||||d
œƒ}	t ||	¡ d S )Nz
2016-04-05r1   rJ  rI   rè   ©rI   r1   r0   r†   rC   rŠ  )r–  rž  rK   r8   rj   r6   r   r·  rO   rÝ   r3   r  ZIntervalIndexZfrom_breaksr4   Zr_r~  r9   r:   )
r;   Úpirš   r=   ÚiiZdata2r¾   Zdata3rï   r>   r?   r?   r@   Ú1test_from_2d_object_array_of_periods_or_intervals
  s     zKTestDataFrameConstructors.test_from_2d_object_array_of_periods_or_intervalszcol_a, col_bc              	   C   s0   d}t jt|d�� t||dœƒ W 5 Q R X d S )Nz,Per-column arrays must each be 1-dimensionalrY   rá   r$  )r;   Zcol_aZcol_brb   r?   r?   r@   Útest_error_from_2darray.
  s    	z1TestDataFrameConstructors.test_error_from_2darrayc                 C   sŽ   t dddgdddgdd�}t |d j|d j¡r6t‚d	|jd
< t d	tjtjgtjtjtjgtjtjtjgdœdddgtd�}t 	||¡ d S )NrI   rH   r1   r¤   r¥   r¦   F)rU   rˆ   r±   r   rµ   rª  ©rU   r3   )
r   r4   rÂ   Z_valuesrO   r¶   r_   rj   r9   r:   rE  r?   r?   r@   Ú&test_from_dict_with_missing_copy_false;
  s    
ýù	z@TestDataFrameConstructors.test_from_dict_with_missing_copy_falsec              	   C   s8   d}t jt|d�� tt g ¡ddgd� W 5 Q R X d S )NrG  rY   r¤   r¥   r:  )r`   ra   r¨   r   r4   r^   r%  r?   r?   r@   Ú1test_construction_empty_array_multi_column_raisesL
  s    zKTestDataFrameConstructors.test_construction_empty_array_multi_column_raises)ßrß  rà  rá  rA   rR   rW   rc   rg   rp   rw   r`   ÚmarkÚparametrizer…   r‹   rœ   rž   r   r    r£   rª   r³   rº   r¿   r’  Zskip_array_manager_invalid_testrÄ   rÆ   rÊ   rÍ   rà   rä   rç   rð   rô   rý   r4   r^   rj   r   r)   r*   r+   r  r  r  r  r  r  r   r"  r&  r_   r)  r²   r2  r7  r;  r=  rB  rF  rQ  rU  rZ  r^  ra  rd  rf  rh  rk  rm  rp  rq  r€  r‹  r“  r—  r˜  r   r   r   r   r   r   r�  r¡  r¤  r¥  r©  r±  r²  r¶  r¸  ré   r‰   r¢   r3   rÑ   r¹  r–  ZBooleanDtypeZFloat64DtypeZ
Int64DtypeZStringDtyper¼  r¾  r¿  rÁ  rÃ  rÆ  rÈ  rË  rÍ  rÏ  rÓ  rÔ  rÖ  rä  rå  rè  ré  rì  rî  rï  rñ  rò  ró  rÜ   r   rõ  rö  rù  rý  rþ  rÿ  r   r  r  r  r  r	  r  r  r  r  r  r"  r%  r*  r+  r-  r.  r/  r0  r3  r5  r9  rB  rE  rK  rO  rU  rW  r   re   rt   rq   rX  rd  rf  rh  rj  rl  rm  rn  r   rp  rq  rs  rt  ru  rw  rz  r{  r~  r9   ZALL_NUMERIC_DTYPESZDATETIME64_DTYPESZTIMEDELTA64_DTYPESZBOOL_DTYPESr  r´  r€  ZOBJECT_DTYPESrƒ  r„  Zarm_slowr…  r‡  r   r%   r#   r$   rž  rŠ  r�  r“  r™  r�  rŸ  r   r¡  r£  r    r¦  r§  r¶  r·  r¸  r¼  r½  r¿  rÀ  r?   r?   r?   r@   r.   M   sò  
!õþ
þþ
ýþ
	


úþ
	
úþ



úþ
&	



4	



üþ	
	
þýþ
8G
"ûþ

üþ	

'
	

üþ	



2ùþ		&ùþ
 Gøþþùþ;
(.8  ÿ4ùþ
	ÿþýþ ÿ		üþ	
ûþ
	c"ýþr.   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú&TestDataFrameConstructorIndexInferencec                 C   s|   t jdddd�}ttj t|ƒ¡|ƒ}t jdddd�}ttj t|ƒ¡|ƒ}t||dœƒ}t jdddd�}t 	|j
|¡ d S )Nz1/1/1999ú1/1/2012rz   r”  z1/1/1980z	12/1/2001)r  r#  )r–  rž  r   r4   rÓ   rc  rL   r   r9   rë   rU   )r;   Zrng1r  Zrng2r#  r=   r  r?   r?   r@   ÚAtest_frame_from_dict_of_series_overlapping_monthly_period_indexesT
  s    zhTestDataFrameConstructorIndexInference.test_frame_from_dict_of_series_overlapping_monthly_period_indexesc              	   C   sì  t ddd�}ttdƒ|d�}ttdƒ| d¡d�}ttdƒ| d¡d�}ttdƒƒ}t|||dœƒ}tt|jƒt|jƒ t|jƒ td�}t	 
|j|¡ t|||d	œƒ}tt|jƒt|jƒ t|jƒ td�}	t	 
|j|	¡ t|||d
œƒ}
tt|jƒt|jƒ t|jƒ td�}	t	 
|
j|	¡ t|||dœƒ}tt|jƒt|jƒ t|jƒ td�}t	 
|j|¡ d}tjt|d�� t||||dœƒ W 5 Q R X tjt|d�� t|||dœƒ W 5 Q R X tjt|d�� t|||dœƒ W 5 Q R X d S )NrB   r1   rJ  rT   rM  z
US/CentralrÏ   r2   )rË   rÐ   rh   )rh   rË   rÐ   )rÐ   rh   rË   z0Cannot join tz-naive with tz-aware DatetimeIndexrY   )rË   rh   rÐ   r(  )rË   rh   r(  )r(  rË   rh   )r    r   r‰   rk   r   r   ré   rU   rj   r9   rë   r`   ra   ru   )r;   rQ   r—  r˜  Zser3Zser4r$  Z	exp_indexr¾   Z
exp_index3rï   Zdf4Z
exp_index4rb   r?   r?   r@   Ú/test_frame_from_dict_with_mixed_tzaware_indexes_
  sH     ÿ ÿ ÿ ÿzVTestDataFrameConstructorIndexInference.test_frame_from_dict_with_mixed_tzaware_indexesN)rß  rà  rá  rÅ  rÆ  r?   r?   r?   r@   rÃ  S
  s   rÃ  c                   @   s   e Zd Zdd„ ZdS )Ú)TestDataFrameConstructorWithDtypeCoercionc              	   C   s  t j dd¡}d}tjt|d�� t|dd� W 5 Q R X t| ¡ dd�}|jdk 	¡ sZt
‚t j|d< d}tjt|d�� t|dd� W 5 Q R X tjt|d�� t|d	 dd� W 5 Q R X d}tjt|d�� t|ƒ d¡ W 5 Q R X tjt|d�� t|d	 ƒ d¡ W 5 Q R X d S )
NrÒ   r†   z)Trying to coerce float values to integersrY   r[   r2   rµ   rX   r   )r4   rÓ   rc  r`   ra   r¨   r   ÚroundrÝ   r  rO   r_   r   r   r8   )r;   r<   rb   r=   r?   r?   r@   Ú"test_floating_values_integer_dtype�
  s"    
zLTestDataFrameConstructorWithDtypeCoercion.test_floating_values_integer_dtypeN)rß  rà  rá  rÉ  r?   r?   r?   r@   rÇ  Œ
  s   rÇ  c                   @   sº   e Zd Zej dddg¡dd„ ƒZej dddg¡d	d
„ ƒZdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej deeg¡dd„ ƒZd d!„ Zd"d#„ Zd$d%„ Zd&S )'Ú&TestDataFrameConstructorWithDatetimeTZrG   r›  zdateutil/US/Easternc           
      C   sÒ   t dddd�}| |¡}td|dœ|d�}td|jƒ}|d	 j|ksHt‚d
d„ |D ƒ}dd„ |D ƒ}td|iƒ}||d< ||d< ||d< |j}tt	 d¡t|d�t	 d¡t|d�gddddgd�}	t
 ||	¡ d S )Nú2011/1/1ú2012/1/1úW-FRIr”  r¡   r  rT   rr   rh   c                 S   s   g | ]}|  ¡ ‘qS r?   r<  r>  r?   r?   r@   r   ¸
  s     zeTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypes.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r?   r<  r>  r?   r?   r@   r   ¹
  s     rN  Údr_tzÚdatetimes_naiveÚdatetimes_with_tzrD  rœ  )r    rk   r   r   Útzinfor3   rO   rÝ   r   r4   r9   rm   )
r;   rG   rN  rÎ  r=   Ztz_expectedrÏ  rÐ  ro   r>   r?   r?   r@   Ú*test_construction_preserves_tzaware_dtypes­
  s*    
ü
ù	zQTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypesÚpydtTFc              	   C   sf  |}t d|d�}|r| ¡ }d}tjt|d�� td|gidd� W 5 Q R X d}tjt|d�� td|idgdd	� W 5 Q R X tjt|d�� t|gdd� W 5 Q R X tjt|d�� ttj|gt	d�dd� W 5 Q R X tjt|d�� t|dgdgdd
� W 5 Q R X tjt|d�� tt
|gƒgdd� W 5 Q R X tjt|d�� t|ggdgdd� W 5 Q R X d S )NÚ2019rœ  úsCannot convert timezone-aware data to timezone-naive dtype. Use pd.Series\(values\).dt.tz_localize\(None\) instead.rY   r   rD  r2   ú/Cannot unbox tzaware Timestamp to tznaive dtyper¾  rÄ  r2  )r   r=  r`   ra   r¨   r   ru   r4   r^   rj   r   )r;   Ztz_aware_fixturerÓ  rG   r?  rb   Zmsg2r?   r?   r@   Ú'test_constructor_data_aware_dtype_naiveÊ
  s*    ÿ"zNTestDataFrameConstructorWithDatetimeTZ.test_constructor_data_aware_dtype_naivec                 C   sˆ   t tdddd�dd�}tddd�}t||d	œƒ}|d
 jsBtdƒ‚|d
 jd
ksTt‚t |d
 t|d
d�¡ t |d t|dd�¡ d S )NrL  r1   r›  rE   r¡   ri   Z20130110rJ  r  rË   zM8[ns, US/Easternrh   )	r   r    r   r3   rO   r]   r9   rm   r   )r;   rn   rN  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 )	NrL  r1   r›  r¡   )rF   rG   r]   ri   rE   r   )r    r   r9   rm   r   )r;   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Ò   rJ  rT   r¡   rá   )r    r   r   r·   )r;   rN  rƒ  r?   r?   r@   Ú+test_frame_dict_constructor_datetime64_1680  s    zRTestDataFrameConstructorWithDatetimeTZ.test_frame_dict_constructor_datetime64_1680c                 C   s@   t dddd�}t|ƒ}td|dœ|d�}|d  ¡  ¡ s<t‚d S )	NrË  rÌ  rÍ  r”  r¡   r  rT   rh   )r    r   r   r!   r  rO   )r;   rN  r?  rÅ   r?   r?   r@   Ú+test_frame_datetime64_mixed_index_ctor_1681  s    zRTestDataFrameConstructorWithDatetimeTZ.test_frame_datetime64_mixed_index_ctor_1681c                 C   sX   t ddddd�}t|dgd�}tdtddd�td	dd�td
dd�giƒ}t ||¡ d S )Nz20130101T10:00:00r1   r~  r›  )r;  rF   r•  rG   Z
timestampsr‡   rœ  z20130101T10:01:00z20130101T10:02:00)r    r   r   r9   r:   )r;   rN  ro   r>   r?   r?   r@   Útest_frame_timeseries_column  s    


ýÿÿ	zCTestDataFrameConstructorWithDatetimeTZ.test_frame_timeseries_columnc                 C   sj   ddg}dddœdddd	œd
œ}t |dddg|d�}t ddtjtjfg|tdddgƒd�}t ||¡ d S )NÚNevadaÚOhioç333333@ç333333@)r6  éÒ  rü  ç333333û?çÍÌÌÌÌÌ@)rg  r6  rá  )rÝ  rÞ  r6  rá  iÓ  r�   )rß  râ  )rà  rã  rC  )r   r4   r_   r   r9   r:   )r;   rˆ   Úpopro   r>   r?   r?   r@   Útest_nested_dict_construction'  s    
þýzDTestDataFrameConstructorWithDatetimeTZ.test_nested_dict_constructionc                 C   sd   t dddd�}|j t¡ dd¡}t|ƒ}|jdks8t‚|j|j	k 
¡ sLt‚||k 
¡  
¡ s`t‚d S )Nz2016-04-05 04:30r1   rM  rE   rI   rè   r¹  )r    rK   r8   rj   r6   r   r·  rO   rÝ   r3   r  )r;   rQ   rš   r=   r?   r?   r@   Útest_from_tzaware_object_array6  s    zETestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_object_arrayc              	   C   sŠ   t jtdƒtdƒtdƒgtddd�tjtddd�gtdd	d�tjtd
d	d�ggtd�j}t|dddgd�}dddg}|j|k 	¡ s†t
‚d S )Nz2013-01-01 00:00:00z2013-01-02 00:00:00z2013-01-03 00:00:00z2013-01-01 00:00:00-0500r›  rœ  z2013-01-03 00:00:00-0500z2013-01-01 00:00:00+0100ZCETz2013-01-03 00:00:00+0100r2   rË   rh   rÐ   r‡   rD  rG  zdatetime64[ns, CET])r4   r^   r   r–  rq   rj   r~  r   rÝ   r  rO   )r;   r<   r}  Zexpected_dtypesr?   r?   r@   Ú$test_from_tzaware_mixed_object_array?  s,    ý

ý

ýõîýzKTestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_mixed_object_arrayc                 C   s:   t  d¡ d¡}t|dd�}t|ƒ d¡}t ||¡ d S )NrÒ   )r†   rH   zdatetime64[ns, UTC]r2   )r4   r5   r6   r   r8   r9   r:   )r;   Z
array_dim2r=   r>   r?   r?   r@   Útest_from_2d_ndarray_with_dtype^  s    zFTestDataFrameConstructorWithDatetimeTZ.test_from_2d_ndarray_with_dtyperÞ   c              	   C   sh   |dddhƒ}d|j › d�}tjt|d�� td|iƒ W 5 Q R X tjt|d�� t|ƒ W 5 Q R X d S )NrI   rH   r1   ú'z' type is unorderedrY   r¤   )rß  r`   ra   ru   r   r   )r;   rÞ   r·   rb   r?   r?   r@   Ú!test_construction_from_set_raisesf  s    zHTestDataFrameConstructorWithDatetimeTZ.test_construction_from_set_raisesc                 C   s>   t jdddd� dd¡}t|ƒ}tdd„ |jjD ƒƒs:t‚d S )	Nr   r/   rD  r2   r0   r1   c                 s   s   | ]}t |tƒV  qd S r�   )r‚   r"   )r}   r<   r?   r?   r@   r”   v  s     zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelike.<locals>.<genexpr>)r4   r5   r6   r   r  rM   r�   rO   rÃ   r?   r?   r@   Ú+test_construction_from_ndarray_datetimelikeq  s    zRTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelikec              	   C   sˆ   t j dd¡}t dg¡j}d}tjt|d�� t	|dg|d� W 5 Q R X t ddd	g¡}tjt|d�� t	|dd
gd� W 5 Q R X d S )NrÒ   rH   r¬   z'len\(arrays\) must match len\(columns\)rY   r¡   r2  r­   r[  rÎ   r‡   )
r4   rÓ   rc  r–  r^   r3   r`   ra   r¨   r   )r;   r<   r3   rb   Zarr2r?   r?   r@   Ú>test_construction_from_ndarray_with_eadtype_mismatched_columnsx  s    zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_with_eadtype_mismatched_columnsc              	   C   sn   dddgdddgg}t jtdd�� t|d	d
hd� W 5 Q R X t jtdd�� t|d	d
dhd� W 5 Q R X d S )NrI   rH   r1   r0   r†   rC   zindex cannot be a setrY   r¤   r¥   rT   zcolumns cannot be a setr¦   r‡   r$  rµ  r?   r?   r@   Ú"test_columns_indexes_raise_on_setsƒ  s
    zITestDataFrameConstructorWithDatetimeTZ.test_columns_indexes_raise_on_setsN)rß  rà  rá  r`   rÁ  rÂ  rÒ  r×  rØ  rÙ  rÚ  rÛ  rÜ  rå  ræ  rç  rè  ÚsetÚ	frozensetrê  rë  rì  rí  r?   r?   r?   r@   rÊ  ¬
  s$   

!	

rÊ  c                 C   s"   t | tƒr| jd S | jd S d S )Nr   rµ   )r‚   r   r¶   r¬  r?   r?   r@   Úget1Œ  s    

rð  c                   @   s  e Zd Zejeedgd�dd„ ƒZejdd„ ƒZej	 
ddd	g¡d
d„ ƒZdd„ Zdd„ Zdd„ Zej	 
dejejg¡dd„ ƒZej	jdd�ej	 
deejg¡dd„ ƒƒZdd„ Zej	jdd�ej	 
deejg¡dd„ ƒƒZej	 
dejejg¡dd„ ƒZd d!„ ZdS )"ÚTestFromScalarN©Úparamsc                 C   s   |j S r�   ©Úparam©r;   r‚  r?   r?   r@   Úbox”  s    zTestFromScalar.boxc                    sŠ   dt dƒi‰ ˆtkrdgˆ d< |d kr4tjˆfˆ ŽS |tkrbˆtkrR‡ ‡fdd„S ‡ ‡fdd„S n$ˆtkrx‡ ‡fdd„S ‡ ‡fd	d„S d S )
NrU   rH   rË   rˆ   c                    s   ˆ| | dœfˆ |—ŽS )NrJ   r?   ©r~   Úkwargs©Úextrarv   r?   r@   r�   £  s
   ÿ ÿz,TestFromScalar.constructor.<locals>.<lambda>c                    s   ˆd| ifˆ |—ŽS ©NrË   r?   rø  rú  r?   r@   r�   §  r�   c                    s   ˆ| | gfˆ |—ŽS r�   r?   rø  rú  r?   r@   r�   ª  r�   c                    s   ˆd| | gifˆ |—ŽS rü  r?   rø  rú  r?   r@   r�   ¬  s
   
ÿ ÿ)r‰   r   Ú	functoolsÚpartialrÜ   r   )r;   rv   r÷  r?   rú  r@   rŒ   ˜  s    
zTestFromScalar.constructorr3   rd   rs   c                 C   s8   |t j|d�}t |j|k¡s"t‚t | ¡ ¡s4t‚d S rÀ  )r–  rq   r4   r  rÝ   rO   r!   )r;   r3   rŒ   r„   r?   r?   r@   Útest_from_nat_scalar°  s    z#TestFromScalar.test_from_nat_scalarc                 C   s(   t dƒ}||dd�}t|ƒ|ks$t‚d S )NrI   rs   r2   ©r   rð  rO   )r;   rŒ   r’  r„   r?   r?   r@   Ú*test_from_timedelta_scalar_preserves_nanos¶  s    z9TestFromScalar.test_from_timedelta_scalar_preserves_nanosc                 C   s,   |t dƒ }||dd�}t|ƒ|ks(t‚d S )NrI   rd   r2   r   )r;   rŒ   Zfixed_now_tsr?  r„   r?   r?   r@   Ú*test_from_timestamp_scalar_preserves_nanos¼  s    z9TestFromScalar.test_from_timestamp_scalar_preserves_nanosc                 C   s4   t dƒ}| ¡ }||td�}tt|ƒtjƒs0t‚d S )NrI   r2   )r   Zto_timedelta64rj   r‚   rð  r4   r�  rO   )r;   rŒ   r’  Ztd64r„   r?   r?   r@   Ú#test_from_timedelta64_scalar_objectÂ  s    z2TestFromScalar.test_from_timedelta64_scalar_objectÚclsc              	   C   sš   |ddƒ}t jdt jdi| }|t jkr.d}nd}d d|g¡}tjt|d	�� |||d
� W 5 Q R X |ddƒ}tjt|d	�� |||d
� W 5 Q R X d S )Nrq   rr   rs   rd   z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]z?dtype timedelta64\[ns\] cannot be converted to datetime64\[ns\]ú|rb  rY   r2   r0   )r4   rt   r�  Újoinr`   ra   ru   )r;   rŒ   r  r'  r3   Zmsg1rb   r?   r?   r@   Ú(test_from_scalar_datetimelike_mismatchedÉ  s    


z7TestFromScalar.test_from_scalar_datetimelike_mismatchedziTimestamp constructor has been updated to cast dt64 to non-nano, but DatetimeArray._from_sequence has not)Úreasonc                 C   s†   t dddƒ}d}|tjkr*t |d¡}d}||ƒ}t|ƒ}t|tƒrJ|jn
|jjd }t	|ƒt
ksft‚|jj|ksvt‚||ks‚t‚d S )Né'  rI   r›  r(  úM8[s]r   )r   r4   rt   rð  r‚   r   r3   rÝ   r¶   rµ  r   rO   Úasm8©r;   rŒ   r  r'  re  ro   Úitemr3   r?   r?   r@   Ú#test_from_out_of_bounds_ns_datetimeÛ  s    
z2TestFromScalar.test_from_out_of_bounds_ns_datetimec                 C   sd   t  t  t j¡jd¡}||ƒ}t|ƒ}t|ƒt jks8t‚t|t	ƒrH|j
n
|jjd }|tks`t‚d S ©Nr(  r   )r4   rt   Úiinfor-   Úmaxrð  rµ  rO   r‚   r   r3   rÝ   r¶   rj   )r;   rŒ   r'  ro   r  r3   r?   r?   r@   Útest_out_of_s_bounds_datetime64ð  s    z.TestFromScalar.test_out_of_s_bounds_datetime64zoTimedeltaArray constructor has been updated to cast td64 to non-nano, but TimedeltaArray._from_sequence has notc                 C   s’   t dddƒt dddƒ }d}|tjkr6t |d¡}d}||ƒ}t|ƒ}t|tƒrV|jn
|jjd }t	|ƒt
ksrt‚|jj|ks‚t‚||ksŽt‚d S )Nr	  rI   i²  zm8[us]r(  zm8[s]r   )r   r4   r�  rð  r‚   r   r3   rÝ   r¶   rµ  r   rO   r  r  r?   r?   r@   Ú$test_from_out_of_bounds_ns_timedeltaø  s    
z3TestFromScalar.test_from_out_of_bounds_ns_timedeltac                 C   s`   |t  t j¡jdƒ}||ƒ}t|ƒ}t|ƒ|ks4t‚t|tƒrD|j	n
|j
jd }|tks\t‚d S r  )r4   r  r-   r  rð  rµ  rO   r‚   r   r3   rÝ   r¶   rj   )r;   rŒ   r  r'  ro   r  r3   r?   r?   r@   Ú test_out_of_s_bounds_timedelta64  s    z/TestFromScalar.test_out_of_s_bounds_timedelta64c              	   C   sd   d}t d|d�}|d ks(|tkr2|tkr2d}t}nd}t}tj||d�� ||dd� W 5 Q R X d S )	Nr›  rÔ  rœ  rÖ  rÕ  rY   rd   r2   )r   r   rÜ   ru   r¨   r`   ra   )r;   rŒ   r÷  rv   rG   r?  rb   Úerrr?   r?   r@   Útest_tzaware_data_tznaive_dtype  s    ÿz.TestFromScalar.test_tzaware_data_tznaive_dtype)rß  rà  rá  r`   Úfixtureré   rÜ   r÷  rŒ   rÁ  rÂ  rÿ  r  r  r  r4   rt   r�  r  Zxfailr   r  r  r	   r  r  r  r?   r?   r?   r@   rñ  “  s2   



ÿÿ
rñ  c                   @   sZ   e Zd Zejddgd�dd„ ƒZejdd„ ƒZdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestAllowNonNanoTFrò  c                 C   s   |j S r�   rô  rö  r?   r?   r@   Úas_td-  s    zTestAllowNonNano.as_tdc                 C   sL   t  d¡ t j¡ d¡}|r8||d  }tj||jd�S tj||jd�S d S )Nr†   r
  r   r2   )	r4   r5   r8   r-   r€   r&   Z_simple_newr3   r"   )r;   r  r·   r?   r?   r@   r<   1  s
    zTestAllowNonNano.arrc                 C   s   t |ƒ}|j|jkst‚d S r�   )r   r3   rO   )r;   r<   rn   r?   r?   r@   Útest_index_allow_non_nano:  s    z*TestAllowNonNano.test_index_allow_non_nanoc                 C   s,   |rt  |¡}nt|ƒ}|j|jks(t‚d S r�   )r–  ZTimedeltaIndexr   r3   rO   )r;   r<   r  rn   r?   r?   r@   Útest_dti_tdi_allow_non_nano>  s    z,TestAllowNonNano.test_dti_tdi_allow_non_nanoc                 C   s   t |ƒ}|j|jkst‚d S r�   )r   r3   rO   )r;   r<   rÌ  r?   r?   r@   Útest_series_allow_non_nanoE  s    z+TestAllowNonNano.test_series_allow_non_nanoc                 C   s    t |ƒ}|jd |jkst‚d S r–   ©r   rÝ   r3   rO   rÃ   r?   r?   r@   Útest_frame_allow_non_nanoI  s    z*TestAllowNonNano.test_frame_allow_non_nanoc                 C   s$   t d|iƒ}|jd |jks t‚d S r–   r  rÃ   r?   r?   r@   Ú#test_frame_from_dict_allow_non_nanoM  s    z4TestAllowNonNano.test_frame_from_dict_allow_non_nanoN)rß  rà  rá  r`   r  r  r<   r  r  r  r  r  r?   r?   r?   r@   r  )  s   

r  )Hr^   Úcollectionsr   r   r   r   Údataclassesr   r   r   r	   rý  rÓ   r  Útypingr
   r­  Únumpyr4   r   Znumpy.mar   r`   rH  Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr’  Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.dtypesr   r   r   r   Zpandasr–  r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   Zpandas._testingZ_testingr9   Zpandas.arraysr"   r#   r$   r%   r&   rÙ   rØ   r.   rÃ  rÇ  rÊ  rð  rñ  r  r?   r?   r?   r@   Ú<module>   sx   D
ø                    9  a 