U
    `»{j$Å ã                   @   s®  d dl mZmZ d dlmZmZmZ d dlZd dlZd dlZd dl	Z	d dl
Zd dlmZ d dlm  mZ d dlZd dlZd dlm  mZ d dlmZ d dlmZmZmZmZ d dlZd dlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z0 d dl1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8 d	d
dgZ9ddddddddgZ:G dd„ dƒZ;G dd„ dƒZ<G dd„ dƒZ=G dd„ dƒZ>dd„ Z?G dd„ dƒZ@G d d!„ d!ƒZAdS )"é    )ÚOrderedDictÚabc)ÚdateÚdatetimeÚ	timedeltaN)Úis_integer_dtype)ÚDatetimeTZDtypeÚIntervalDtypeÚPandasDtypeÚPeriodDtype)ÚCategoricalÚCategoricalIndexÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalÚ
MultiIndexÚPeriodÚ
RangeIndexÚSeriesÚ	TimedeltaÚ	TimestampÚcutÚ
date_rangeÚisna)ÚDatetimeArrayÚIntervalArrayÚPeriodArrayÚSparseArrayÚTimedeltaArray)Ú
Int64IndexZ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„ d#d„ d$d„ g¡d%d&„ ƒZe
j d'g ged(ƒed)ƒfg g ged*ƒed)ƒfd+d,„ d-D ƒged(ƒed)ƒfg¡d.d/„ ƒZd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zejd:d;„ ƒZejd<d=„ ƒZd>d?„ Zd@dA„ Ze
j dBdCi gdCd(dDdEdFœgdGi gg¡dHdI„ ƒZdJdK„ ZdLdM„ ZdNdO„ Z dPdQ„ Z!dRdS„ Z"e
j dTe#j$dUge%dV�e# $d*dW g¡dXge#j$dYge%dV�e# $dZg¡d*dW  d* gg¡d[d\„ ƒZ&e
j dTe#j$d(ge#j'dV�e#j$d(ge#j(dV�e#j$d(ge#j)dV�e# 'd(¡ge# (d(¡ge# )d(¡gg¡d]d^„ ƒZ*d_d`„ Z+dadb„ Z,dcdd„ Z-dedf„ Z.dgdh„ Z/didj„ Z0dkdl„ Z1dmdn„ Z2e
j dod*e#j3dpdqg¡drds„ ƒZ4e
j dtd*e#j3dpe5duƒg¡dvdw„ ƒZ6e
j dte#j3dpe5duƒg¡dxdy„ ƒZ7dzd{„ Z8d|d}„ Z9d~d„ Z: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Ÿ„ ZJd d¡„ ZKd¢d£„ ZLe
j d¤eMd¥ƒeNdƒfeOd)d¦d§�ePd¨d©ƒfeQdªd«d¬�eRd«d¬�fg¡d­d®„ ƒZSd¯d°„ ZTd±d²„ ZUd³d´„ ZVdµd¶„ ZWd·d¸„ ZXd¹dº„ ZYd»d¼„ ZZe
jj[d½d¾„ ƒZ\d¿dÀ„ Z]e
j dÁdpe^e_dÂƒƒdÃdÄge%e#j`fdpdpdÃdÄgd¨e# ad¨¡fdpe^e_dÂƒƒdÃdÄgebe# adÅ¡fi dpdDdEgdpe#j`fdÄd(ie^e_dÂƒƒe^dÆƒebe# adÅ¡fg¡dÇdÈ„ ƒZce
j dÉdÊdËdpgdÌedjefdÍdÎdpgdÏedjffd(d*dpgdÐedjgfdÃdÄdÑgdÒedjhff¡dÓdÔ„ ƒZidÕdÖ„ Zjd×dØ„ ZkdÙdÚ„ ZldÛdÜ„ ZmdÝdÞ„ Zndßdà„ Zodádâ„ Zpdãdä„ Zqdådæ„ Zrdçdè„ Zsdédê„ Zte
j dëeQdìƒggdíeQdìƒigdíeQdìƒgidíeQdìƒig¡dîdï„ ƒZudðdñ„ Zvdòdó„ Zwdôdõ„ Zxdöd÷„ Zydødù„ Zzdú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$�d%„ Z��d&�d'„ Z��d(�d)„ Z‘�d*�d+„ Z’�d,�d-„ Z“e
j �d.�d/�d0�d1�d2�d3�d4�d5g¡�d6�d7„ ƒZ”�d8�d9„ Z•�d:�d;„ Z–�d<�d=„ Z—�d>�d?„ Z˜�d@�dA„ Z™�dB�dC„ Zš�dD�dE„ Z›�dF�dG„ Zœ�dH�dI„ Z��dJ�dK„ Zž�dL�dM„ ZŸ�dN�dO„ Z �dP�dQ„ Z¡�dR�dS„ Z¢e
j �dTe# $dpdpdpdpe£ ¤¡ dpg¡e# $dpdpe£ ¤¡ dpg¡e# ¥�dU¡gdpgge# ¥�dU¡gedj¦ggdpge# ¥�dU¡ggdpgedj¦ggedj¦ge# ¥�dU¡ggedj¦gdpggg¡�dV�dW„ ƒZ§e
j �dX�dY�dZ�d[�d\g¡e
j �d]�d^�d_�d`�da�db�dc�dd�deg¡�df�dg„ ƒƒZ¨e
j �dX�dY�dZ�d[�d\g¡e
j �d]�dh�di�dj�dk�dl�dm�dng¡�do�dp„ ƒƒZ©�dq�dr„ Zª�ds�dt„ Z«�du�dv„ Z¬�dw�dx„ Z­e
j �dye®d(d*�dg�dd¦�dggd(e#j3g�dz�e®d(d*�dg�dd¦�dgg�d{�d|e#j3g�d}�e®d)d(d*�dg�dd¦�d�d~gge#j3�d{�d|e#j3g�d}�e®�dd(d*�d€g�dd¦�d�d~gge#j3�d{�d|e#j3g�d}�e®�dd(d*�d€g�dd¦�d�d~gge#j3d(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¼ 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]dp�d™�dšg¡�d›�dœ„ ƒƒZÇ�d��dž„ ZÈe
j �dŸeÉe^�d ƒƒeÊd(e#j3e#j3e#j3gƒeËeOd)d(ƒeOd(d¦ƒgƒeÌedjÍ�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¼�ƒeOd)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àdpS (Ñ  Ú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© r9   úc/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/frame/test_constructors.pyÚ,test_constructor_from_ndarray_with_str_dtypeI   s    zFTestDataFrameConstructors.test_constructor_from_ndarray_with_str_dtypec                 C   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Útzr+   é   r   é   ©r   rC   )
r   Ú_datar0   r   r3   r4   ÚlenÚ_mgrÚblocksÚAssertionError)r5   Úusing_array_managerÚdtiZdtar7   r8   r9   r9   r:   Ú&test_constructor_from_2d_datetimearrayQ   s    &z@TestDataFrameConstructors.test_constructor_from_2d_datetimearrayc                 C   sl   t dƒ d¡}td|idgd�}td|giƒ}t ||¡ t|dgdœƒ}t|gdgdœƒ}t ||¡ d S )Nz2019-11-03 01:00:00-0700zAmerica/Los_AngelesÚdtr   ©ÚindexrC   )rM   Úvalue)r   Z
tz_convertr   r3   r4   )r5   rM   r7   r8   r9   r9   r:   Ú)test_constructor_dict_with_tzaware_scalar\   s    zCTestDataFrameConstructors.test_constructor_dict_with_tzaware_scalarc              	   C   s    t  dt jgddgg¡}t t¡� t|dd�}W 5 Q R X |jj|jksLt	‚t
|jd ƒs^t	‚t t¡� t|d ddd�}W 5 Q R X |jd }t ||¡ d S )	NrC   rB   r+   Úi8r,   rD   r   ©r-   Úname)r.   ÚarrayÚnanr3   Úassert_produces_warningÚFutureWarningr   Úvaluesr-   rI   r   Úilocr   Úassert_series_equal)r5   r6   r7   Úserr8   r9   r9   r:   Ú-test_construct_ndarray_with_nas_and_int_dtypei   s    
zGTestDataFrameConstructors.test_construct_ndarray_with_nas_and_int_dtypec                 C   s0   t t ¡ t ¡ gƒ}|d jt d¡ks,t‚d S )Nr   úM8[ns])r   r   Únowr-   r.   rI   ©r5   r7   r9   r9   r:   Ú%test_construct_from_list_of_datetimesw   s    z?TestDataFrameConstructors.test_construct_from_list_of_datetimesc                 C   s\   t ddgdd�}| d¡}ttj| ¡ dd�dd�}|j|jksDt‚t|ƒ}t 	||¡ d S )Nz2013-1-1 13:00z2013-1-2 14:00ÚB©rT   r>   Úobjectr,   )
r   Útz_localizer   r.   rU   Útolistr-   rI   r3   r[   )r5   ZnaiveÚidxr8   Úresultr9   r9   r:   Ú+test_constructor_from_tzaware_datetimeindex{   s    
zETestDataFrameConstructors.test_constructor_from_tzaware_datetimeindexc              	   C   sh   t  dd¡}t j|gtd�}|tkr0| dd¡}d ddg¡}tjt	|d�� ||d	d� W 5 Q R X d S )
NÚNaTÚnsr,   rC   ú|z+Could not convert object to NumPy timedeltaz=Invalid type for timedelta scalar: <class 'numpy.datetime64'>©Úmatchúm8[ns])
r.   Ú
datetime64rU   rd   r   r0   ÚjoinÚpytestÚraisesÚ
ValueError)r5   Úframe_or_seriesZnatr6   Úmsgr9   r9   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   r^   ro   r=   rR   r,   r+   rB   r   c                 S   s   g | ]}t |ƒ‘qS r9   ©r   ©Ú.0Úxr9   r9   r:   Ú
<listcomp>µ   s     zXTestDataFrameConstructors.test_datetimelike_values_with_object_dtype.<locals>.<listcomp>)r   r   r.   r/   Úviewr0   r   rd   rG   Úarraysr-   rI   Ú
isinstanceÚravelr
   r   )r5   rx   ru   r-   Zscalar_typer6   ÚobjZsersr9   r9   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é   rC   rc   r   ©Úcolumns)r   Úranger   r3   r4   )r5   r~   Úyrh   r8   r9   r9   r:   Ú)test_series_with_name_not_matching_columnº   s    zCTestDataFrameConstructors.test_series_with_name_not_matching_columnÚconstructorc                   C   s   t ƒ S ©N©r   r9   r9   r9   r:   Ú<lambda>Ê   ó    z"TestDataFrameConstructors.<lambda>c                   C   s   t d ƒS r�   rŽ   r9   r9   r9   r:   r�   Ë   r�   c                   C   s   t i ƒS r�   rŽ   r9   r9   r9   r:   r�   Ì   r�   c                   C   s   t dƒS ©Nr9   rŽ   r9   r9   r9   r:   r�   Í   r�   c                   C   s   t g ƒS r�   rŽ   r9   r9   r9   r:   r�   Î   r�   c                   C   s   t dd„ dD ƒƒS )Nc                 s   s   | ]
}|V  qd S r�   r9   ©r}   Ú_r9   r9   r:   Ú	<genexpr>Ï   s     ú5TestDataFrameConstructors.<lambda>.<locals>.<genexpr>r9   rŽ   r9   r9   r9   r:   r�   Ï   r�   c                   C   s   t tdƒƒS ©Nr   ©r   r‰   r9   r9   r9   r:   r�   Ð   r�   c                   C   s
   t d d�S ©N©ÚdatarŽ   r9   r9   r9   r:   r�   Ñ   r�   c                   C   s
   t i d�S r˜   rŽ   r9   r9   r9   r:   r�   Ò   r�   c                   C   s
   t dd�S )Nr9   r™   rŽ   r9   r9   r9   r:   r�   Ó   r�   c                   C   s
   t g d�S r˜   rŽ   r9   r9   r9   r:   r�   Ô   r�   c                   C   s   t dd„ dD ƒd�S )Nc                 s   s   | ]
}|V  qd S r�   r9   r’   r9   r9   r:   r”   Õ   s     r•   r9   r™   rŽ   r9   r9   r9   r:   r�   Õ   r�   c                   C   s   t tdƒd�S )Nr   r™   r—   r9   r9   r9   r:   r�   Ö   r�   c                 C   s@   t ƒ }|ƒ }t|jƒdkst‚t|jƒdks0t‚t ||¡ d S r–   )r   rF   rO   rI   rˆ   r3   r4   )r5   rŒ   r8   rh   r9   r9   r:   Útest_empty_constructorÇ   s
    z0TestDataFrameConstructors.test_empty_constructorz)emptylike,expected_index,expected_columnsrC   r   rB   c                 c   s   | ]
}|V  qd S r�   r9   r’   r9   r9   r:   r”   å   s     z#TestDataFrameConstructors.<genexpr>r9   c                 C   s$   t ||d�}t |ƒ}t ||¡ d S )N©rO   rˆ   ©r   r3   r4   )r5   Z	emptylikeZexpected_indexZexpected_columnsr8   rh   r9   r9   r:   Útest_emptylike_constructorà   s    	z4TestDataFrameConstructors.test_emptylike_constructorc                 C   s8   t  ¡ \}}t||d�}t|ƒ}|d jtjks4t‚d S )NrN   Úfoo)r3   ZgetMixedTypeDictr   r-   r.   Úobject_rI   )r5   Zfloat_string_framerO   rš   Zindexed_frameZunindexed_framer9   r9   r:   Útest_constructor_mixedí   s    z0TestDataFrameConstructors.test_constructor_mixedc              	   C   sª   d}t jt|d�� tddddgitjd�}W 5 Q R X |d jtksHt‚tt 	d¡ƒ}t 	d¡ 
¡ |d< d	}tjt|d�� t 	d¡|d
< W 5 Q R X t 	d¡ 
¡ |d< d S )NúBeither all columns will be cast to that dtype, or a TypeError willrm   ÚaÚbÚcr,   )r*   rB   rŸ   z5Expected a 1D array, got an array with shape \(4, 2\)ÚtestZfoo2)r3   rW   rX   r   r.   r!   r-   rd   rI   Úonesrf   rr   rs   rt   )r5   rv   rŸ   r7   r9   r9   r:   Útest_constructor_cast_failureö   s    "z7TestDataFrameConstructors.test_constructor_cast_failurec                 C   sD   t dgdgdgdœƒ}t |tdd�}d|d< |d d	 dks@t‚d S )
Nç      ð?ç       @ç      @)Úcol1Úcol2Úcol3T)r-   Úcopyg      i@r¬   r   )r   ÚfloatrI   )r5   Zorig_dfZnew_dfr9   r9   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 )NrC   rB   r   r,   éc   ©r   r   )r   r-   rZ   rY   rI   )r5   Úusing_copy_on_writer7   Úshould_be_viewr9   r9   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 )
NrC   rB   r+   r*   r'   r,   r   éa   r³   )r   rY   r-   rI   rG   r�   ÚflagsÚc_contiguous)r5   rJ   r´   r7   rµ   Údf2r9   r9   r:   Ú+test_constructor_dtype_nocast_view_2d_array  s    zETestDataFrameConstructors.test_constructor_dtype_nocast_view_2d_arrayc                 C   s0   t jddgdd�}t|ƒ}t  |j|¡s,t‚d S )Nr£   r¤   rd   r,   ©r.   rU   r   Úshares_memoryrY   rI   ©r5   r6   r7   r9   r9   r:   Ú"test_1d_object_array_does_not_copy+  s    z<TestDataFrameConstructors.test_1d_object_array_does_not_copyc                 C   s8   t jddgddggdd�}t|ƒ}t  |j|¡s4t‚d S )Nr£   r¤   r¥   Údrd   r,   r¼   r¾   r9   r9   r:   Ú"test_2d_object_array_does_not_copy2  s    z<TestDataFrameConstructors.test_2d_object_array_does_not_copyc                 C   s@   t ddgd dggtd�}|jd d ks*t‚|jd dks<t‚d S )NrC   Ú2r£   r,   ©rC   r   rD   )r   rd   ÚlocrI   r`   r9   r9   r:   Ú test_constructor_dtype_list_data9  s    z:TestDataFrameConstructors.test_constructor_dtype_list_datac              	   C   s’   t ƒ }t d¡}tjtdd�� t |gƒ W 5 Q R X tjtdd�� t |gƒ W 5 Q R X t dddgiƒ}tjtdd�� t ||gƒ W 5 Q R X d S )Nr³   zshape=\(1, 0, 0\)rm   ÚArC   rB   zshape=\(2, 2, 1\))r   r.   Úemptyrr   rs   rt   )r5   r£   r¤   r9   r9   r:   Ú"test_constructor_list_of_2d_raises>  s    
z<TestDataFrameConstructors.test_constructor_list_of_2d_raisesztyp, adr°   rŸ   Úbar©rÆ   rb   Ú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@| dd„ t||ƒD ƒ¡ 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 )é
   r,   )r.   rU   ÚrandomÚrand©r}   rÀ   r9   r9   r:   r   Z  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Í   )Úsizer,   )r.   rU   rÎ   ÚrandintrÐ   r9   r9   r:   r   ]  s     c                 S   s   i | ]\}}||“qS r9   r9   )r}   rÀ   r£   r9   r9   r:   Ú
<dictcomp>a  s      zKTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>.<dictcomp>)ÚMIXED_INT_DTYPESÚMIXED_FLOAT_DTYPESÚzipr-   rI   Úupdater   Údtypes)r5   ÚtypÚadrØ   r�   rÀ   r£   r7   r9   r9   r:   Útest_constructor_mixed_dtypesL  s    z7TestDataFrameConstructors.test_constructor_mixed_dtypesc                 C   s^   t j d¡ t j¡}t j d¡ t j¡}t||dœƒ}|j|jjksHt	‚|j|j
jksZt	‚d S )NrÍ   ©r£   r¤   )r.   rÎ   rÏ   r2   Z	complex64Ú
complex128r   r-   r£   rI   r¤   ©r5   r£   r¤   r7   r9   r9   r:   Útest_constructor_complex_dtypesi  s
    z9TestDataFrameConstructors.test_constructor_complex_dtypesc                 C   sx   t ddd gi|d�}| ¡ }t dddgiƒ}t ||¡ |jd d ksJt‚t ddtjgi|d�}t |jd ¡stt‚d S )NrÆ   r~   r,   FTrÃ   )	r   r   r3   r4   rZ   rI   r.   rV   Úisnan)r5   Ústring_dtyper7   rh   r8   r9   r9   r:   Ú$test_constructor_dtype_str_na_valuesr  s    z>TestDataFrameConstructors.test_constructor_dtype_str_na_valuesc           	      C   sÌ   |j dd�}t|jjƒd d d… |j_|j}t|ƒ}t |jt	|jjƒ¡ t||d�}t |jt	|jjƒ¡ t |j|¡ t
 t|ƒ¡d d d… }t||ddgd�}t||d�jddgd�}t ||¡ d S )NFrN   éÿÿÿÿrË   rb   rœ   r‡   )Z
to_recordsÚlistr-   ÚnamesrO   r   r3   Úassert_index_equalrˆ   r   r.   r/   rF   Úreindexr4   )	r5   Úfloat_frameZrecrO   r7   rº   ÚrngÚdf3r8   r9   r9   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Í   r,   rD   )	r   r.   r§   ÚboolÚzerosrY   r-   Úbool_rI   r`   r9   r9   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 )ì            r9   ©r}   Úir9   r9   r:   r   –  s     zMTestDataFrameConstructors.test_constructor_overflow_int64.<locals>.<listcomp>rC   rÍ   r,   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ö   )	r.   rU   r‰   r%   r   r-   rI   rí   rF   )r5   rY   rh   Zdata_scoresr-   rš   Z	df_crawlsr9   r9   r:   Útest_constructor_overflow_int64”  s     ûz9TestDataFrameConstructors.test_constructor_overflow_int64rY   rð   r,   éA   l           lûÿÿÿ        lûÿÿÿ        c                 C   s:   |d }t |ƒ}|d jtks"t‚|d d |ks6t‚d S r–   )r   r-   rd   rI   ©r5   rY   rP   rh   r9   r9   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   r-   rI   rú   r9   r9   r:   Útest_constructor_numpy_uints¼  s    z6TestDataFrameConstructors.test_constructor_numpy_uintsc                 C   s`   dd l }d}tt|ƒƒ}| |¡ dd„ |D ƒ}ttt|dgg| ƒƒƒ}|t|jƒks\t‚d S )Nr   éd   c                 S   s   g | ]}d |d›�‘qS )rÆ   rÀ   r9   rñ   r9   r9   r:   r   Õ  s     zJTestDataFrameConstructors.test_constructor_ordereddict.<locals>.<listcomp>)	rÎ   rä   r‰   Úshuffler   r   rÖ   rˆ   rI   )r5   rÎ   ZnitemsZnumsr8   r7   r9   r9   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­   ©rO   rT   r®   Zcol4r‡   r   ú<Mixing dicts with non-Series may lead to ambiguous ordering.rm   r£   r¤   rÜ   r¥   ©rÆ   rb   )r3   ÚmakeTimeSeriesr   rF   rI   r[   Úrenamer   r.   ZconcatenaterV   rY   rO   r   Úallrr   rs   rt   )r5   Údatetime_seriesÚdatetime_series_shortÚframeÚexprv   r9   r9   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Æ   rC   rB   ©Ú1rÂ   r  rÂ   )r   r3   ræ   rO   r   ©r5   r  r9   r9   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   rC   rB   rN   )r   r   rO   rI   ©r5   rg   r  r9   r9   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   rC   rB   rœ   r+   )r   r   rO   rI   rˆ   rF   Ú_seriesr  r9   r9   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Æ   rb   r‡   r   T©Úexact)r   r3   ræ   rO   r   r  r9   r9   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   rN   )r   Ú
_get_valuerI   r3   r4   )r5   Z
frame_noneZframe_none_listr9   r9   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 indexrm   r£   gffffffæ?r‡   ©rr   rs   rt   r   ©r5   rv   r9   r9   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�   )r5   r!  rh   r8   r9   r9   r:   Ú%test_constructor_invalid_items_unused*  s    z?TestDataFrameConstructors.test_constructor_invalid_items_unusedrP   rV   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 )NrC   r+   r£   r   r*   rB   r†   c                    s"   i | ]}ˆ | t ˆ| ˆd �“qS ©rN   r{   ©r}   r¥   ©Úcolsrg   rY   r9   r:   rÓ   7  s      zKTestDataFrameConstructors.test_constructor_dict_nan_key.<locals>.<dictcomp>©Zaxisr=   r'   r,   rœ   rN   )r‰   r   Úsort_valuesr.   r/   r0   r3   r4   ©r5   rP   rš   rh   r8   r9   r&  r:   Útest_constructor_dict_nan_key1  s    
  ÿz7TestDataFrameConstructors.test_constructor_dict_nan_keyc                    sæ   t d|dfd|fgƒ‰ t d|f|dfgƒ‰ddgdd	gdd
gg‰‡ ‡‡fdd„tdƒD ƒ}t|ƒ d¡jd|fdd�}ttjddd� dd¡ˆˆ d�}t ||¡ t|ˆd�jd|fdd�}t ||¡ t|ˆˆ d�}t ||¡ d S )N)é   é   é   é   r£   rB   r   r+   rC   r*   r†   c                    s"   i | ]}ˆ | t ˆ| ˆd �“qS r$  r{   r%  r&  r9   r:   rÓ   J  s      zQTestDataFrameConstructors.test_constructor_dict_nan_tuple_key.<locals>.<dictcomp>r(  r=   r'   r,   rœ   rN   )	r   r‰   r   r)  r.   r/   r0   r3   r4   r*  r9   r&  r:   Ú#test_constructor_dict_nan_tuple_keyD  s      ÿz=TestDataFrameConstructors.test_constructor_dict_nan_tuple_keyc                 C   sL   t jdd�}t jdd�}||dœ}t|d�}t|tdƒd�}t  ||¡ d S )Nr  r  r  ©r¤   r£   r™   Úba©rš   rˆ   )r3   r  r   rä   r4   )r5   r  r  rÀ   r  r8   r9   r9   r:   Ú%test_constructor_dict_order_insertionW  s    

z?TestDataFrameConstructors.test_constructor_dict_order_insertionc                 C   sR   t tjddgdddgitjdgd�}t ddgddggtjdgd�}t ||¡ d S )NrC   rB   r+   r‡   )r   r.   rV   r3   r4   ©r5   rh   r8   r9   r9   r:   Ú)test_constructor_dict_nan_key_and_columnsb  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©rB   r+   )r+   r+   rœ   )r   Úfrom_tuplesr   r   rY   rƒ   r
  rI   )r5   ÚtuplesÚmir7   r9   r9   r:   Útest_constructor_multi_indexh  s    



z6TestDataFrameConstructors.test_constructor_multi_indexc                 C   s¶   t dggdggddgd�}t ddgtddgdd�tdggdggd�d�}t ||¡ t dggdggddggd�}t ddgtddggddggd�tdggdggd�d�}t ||¡ d S )	NrC   rB   ©rˆ   rO   r'   r,   r   )ZlevelsÚcodesrœ   )r   r    r   r3   r4   ©r5   r7   r8   r9   r9   r:   Útest_constructor_2d_indexu  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.rm   r   r   r‡   r  r£   r¤   rÜ   r¥   r  z:Shape of passed values is \(4, 3\), indices imply \(3, 3\)r)   )r*   r+   rŸ   rÉ   Úbazú
2000-01-01r+   ©r@   r<  r*   r†   r=   z:Shape of passed values is \(1, 3\), indices imply \(1, 4\)©rO   rˆ   rš   z:Shape of passed values is \(3, 1\), indices imply \(1, 4\)úMust pass 2-d input©r+   r+   r+   rÆ   rb   rË   rC   ú:Shape of passed values is \(2, 3\), indices imply \(1, 3\)rB   ú:Shape of passed values is \(2, 3\), indices imply \(2, 2\)z,2 columns passed, passed data had 10 columnsrÍ   é   )r§   Ztwosr  FT)rr   rs   rt   r   r.   rÇ   rä   r/   r0   r   rU   r‰   rí   rÎ   rÏ   )r5   rv   r6   r9   r9   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      $@Nr9   r|   r9   r9   r:   r”   ¿  s     zKTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<genexpr>rÍ   c                 s   s   | ]}|d | fV  qdS )g      4@Nr9   r|   r9   r9   r:   r”   À  s     r  c                 S   s   i | ]\}}|t | ¡ ƒ“qS r9   )ÚdictÚitems)r}   ÚcolÚvalr9   r9   r:   rÓ   Ã  s      zLTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<dictcomp>)r‰   r   rL  r3   r4   )r5   Zdict_subclassrš   r7   Zrefdfr9   r9   r:   Útest_constructor_subclass_dict¼  s    þz8TestDataFrameConstructors.test_constructor_subclass_dictc           	      C   sx   ddl m} i }tj|d d d…< | ¡ D ]&\}}|tƒ}| | ¡ ¡ |||< q*t|ƒ}|j	|j
d�}t ||¡ d S )Nr   )Údefaultdictrb   rÍ   rN   )ÚcollectionsrP  r.   rV   rL  rK  r×   Úto_dictr   rç   rO   r3   r4   )	r5   rè   rP  rš   ÚkÚvÚdctr  r8   r9   r9   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‡   )r.   rU   r   r3   Úassert_numpy_array_equalrY   ©r5   r8   r7   r9   r9   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 )NrC   rB   r  r  rÂ   Ú3)r  rÂ   r[  r  r,   r+   rb   rÆ   )r   r°   rF   rI   r-   r.   r!   r    )r5   Ú	test_datar  r9   r9   r:   Útest_constructor_dict_castà  s    z4TestDataFrameConstructors.test_constructor_dict_castc              	   C   sš   t ttdƒt d¡ƒƒt ttdƒtj d¡ƒƒdœ}d}tjt	|d�� t
|td�}W 5 Q R X t|ƒdksnt‚|d jtjks‚t‚|d jtjks–t‚d S )	NrI  é   r  r¢   rm   r,   rÆ   rb   )rK  rÖ   r‰   r3   ZmakeStringIndexr.   rÎ   ÚrandnrW   rX   r   r°   rF   rI   r-   r    r!   )r5   r\  rv   r  r9   r9   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ÚRow2ra  )r.   rV   r   r‚   r°   rI   )r5   rÀ   r7   r9   r9   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 )NrC   rB   r£   r¤   rœ   )r   r‚   rÌ   rI   )r5   Údmr9   r9   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)rC   rB   r+   )r*   r†   r=   rÜ   c                 S   s   i | ]\}}|t |ƒ“qS r9   )rä   ©r}   rS  rT  r9   r9   r:   rÓ   	  s      zMTestDataFrameConstructors.test_constructor_dict_of_tuples.<locals>.<dictcomp>F©Zcheck_dtype)r   rL  r3   r4   ©r5   rš   rh   r8   r9   r9   r:   Útest_constructor_dict_of_tuples  s    
z9TestDataFrameConstructors.test_constructor_dict_of_tuplesc                 C   sF   t dƒt ddƒdœ}t|ƒ}tdddgdddgdœƒ}t ||¡ d S )	Nr+   r=   rÜ   r   rC   rB   r*   r†   ©r‰   r   r3   r4   rg  r9   r9   r:   Útest_constructor_dict_of_ranges  s    z9TestDataFrameConstructors.test_constructor_dict_of_rangesc                 C   sL   t tdƒƒttdƒƒdœ}t|ƒ}tdddgdddgdœƒ}t ||¡ d S )Nr+   rÜ   r   rC   rB   )Úiterr‰   Úreversedr   r3   r4   rg  r9   r9   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�   r9   rñ   r9   r9   r:   r”     s     zPTestDataFrameConstructors.test_constructor_dict_of_generators.<locals>.<genexpr>r+   rÜ   r   rC   rB   )r‰   rl  r   r3   r4   rg  r9   r9   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   rC   rB   )©rò   rò   ©rò   Új©rq  rò   r=   r†   r*   é   é   é	   ))r£   r£   r1  )r¤   r¥   c                 S   s   g | ]}|d  ‘qS ©rC   r9   r|   r9   r9   r:   r   ,  s     zNTestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   s   g | ]}|d  ‘qS ©r   r9   r|   r9   r9   r:   r   ,  s     rN   g     À^@éo   )rŠ   ro  rp  rr  Úzc                 S   s   g | ]}|d  ‘qS rv  r9   r|   r9   r9   r:   r   7  s     c                 S   s   g | ]}|d  ‘qS rw  r9   r|   r9   r9   r:   r   7  s     F)Ztupleize_colsr<  )ÚsortedrL  r   r   r8  ÚTrO   r3   r4   Úinsertr   rç   rˆ   )r5   rÀ   Z_dr7   r8   r9   r9   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 ©rB   r9   ©r}   rò   Ús©rŒ   r9   r:   rÓ   C  s      ziTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<dictcomp>©Ú	enumerater�  ©Zdates_as_strr�  r:   Úcreate_dataB  s    zUTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S   s   t  | d¡S )Nz%Y-%m-%d)r   Ústrptime©r~   r9   r9   r:   r�   F  r�   zRTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>r   ©r   rC   rB   r+   rB   r*   r=   c                 S   s   g | ]}t |ƒ‘qS r9   )r   )r}   rM   r9   r9   r:   r   P  s     zTTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<listcomp>rN   )r.   rp   r   r   r3   r4   )	r5   r…  Zdata_datetime64Zdata_datetimeZdata_Timestampr8   Zresult_datetime64Zresult_datetimeZresult_Timestampr9   r„  r:   Ú&test_constructor_dict_datetime64_index>  s&    
üù
z@TestDataFrameConstructors.test_constructor_dict_datetime64_indexc           	   	      sÂ   ddddg‰ ‡ fdd„}|dd„ ƒ}|d	d„ ƒ}|d
d„ ƒ}t dd d d dœd dd d dœd d dd dœd d d ddœgdd„ ˆ D ƒd�}t |ƒ}t |ƒ}t |ƒ}t ||¡ t ||¡ t ||¡ d S )NrC   rB   r+   r*   c                    s   ‡ fdd„t ˆƒD ƒS )Nc                    s"   i | ]\}}|ˆ |ƒd | i“qS r~  r9   r  r�  r9   r:   rÓ   _  s      zjTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.create_data.<locals>.<dictcomp>r‚  r�  ©Z	td_as_intr�  r:   r…  ^  s    zVTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.create_datac                 S   s   t  | d¡S ©Nr"  )r.   Útimedelta64r‡  r9   r9   r:   r�   a  r�   zSTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<lambda>c                 S   s
   t | d�S )N)Údays)r   r‡  r9   r9   r:   r�   b  r�   c                 S   s
   t | dƒS r‹  ©r   r‡  r9   r9   r:   r�   c  r�   r   rˆ  r=   c                 S   s   g | ]}t |d ƒ‘qS )r"  rŽ  )r}   Útdr9   r9   r:   r   l  s     zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<listcomp>rN   r�   )	r5   r…  Zdata_timedelta64Zdata_timedeltaZdata_Timedeltar8   Zresult_timedelta64Zresult_timedeltaZresult_Timedeltar9   rŠ  r:   Ú'test_constructor_dict_timedelta64_indexZ  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-01rj   z2012-04rz   ©Úfreqz
2012-02-01z
2012-03-01r"  rÜ   r£   r¤   )ÚpdZPeriodIndexr   r-   rI   r2   rd   rf   rÞ   r9   r9   r:   Útest_constructor_period_dictv  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   rN   rD  )r   r-   rI   r3   r4   )r5   Zea_scalar_and_dtypeZ	ea_scalarZea_dtyper7   r8   r9   r9   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©rA   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   rC   r£   r¤   rD  rB   r,   rÜ   )r   r-   rI   r“  rU   r3   r4   )r5   rš   r-   r7   r6   r8   r9   r9   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†   rC  rÍ   r‡   rN   )r“  Úperiod_ranger   r.   rÎ   r_  rˆ   rO   r  Ú
setdefaultr3   r4   r{  )r5   ré   r7   rš   rM  Úrowrh   r9   r9   r:   Ú"test_nested_dict_frame_constructor£  s    



z<TestDataFrameConstructors.test_nested_dict_frame_constructorc              	   C   s–  |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 nt}t	 
|¡�" t|dddgddgtjd�}W 5 Q R X |tjkrè|jjtjksæt‚n<| ¡  ¡  ¡ süt‚|jjtjk�st‚t|jƒ ¡ �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�srt‚t|dƒƒ}t|jƒdk�s’t‚d S )Nr7  r,   rÆ   rb   rË   rC   rB   r<  r+   )r+   ©rˆ   rO   r-   rG  rm   rH  rE  rF  Tr  rN   r‡   )r   r+   r   )r+   r   )r°   r   rF   rO   rI   rˆ   r.   r§   rX   r3   rW   r'   rY   r-   r   r
  r!   rr   rs   rt   ræ   r   r‰   )r5   rÇ   Úmatr  Úwarnrv   r9   r9   r:   Ú_check_basic_constructor·  sN       ÿ
  $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   rC   rÆ   rœ   rB   )r¢  r.   r§   r   rF   rI   r  r9   r9   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 )Nr7  r,   r©   r³   rª   ©rC   rB   rÆ   rb   rË   rC   rB   r<  )	r¢  ÚmaÚ
masked_allr°   r   rI   r.   r
  Úasarray)r5   r   r  r9   r9   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 |jjtjk�sÀt‚t  |¡}d|d< d|d< t|dddgddgd�}d|d  d¡d k�st‚d|d  d¡d k�s*t‚t jdtd�}t|dddgddgd�}t|jƒdk�sdt‚t|jƒd	k�sxt‚t 	t 
||k¡ ¡�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 )Nr7  r,   rÆ   rb   rË   rC   rB   r<  r+   rŸ  r³   r¤  r^   z'datetime64\[ns\] values and dtype=int64rm   Úignorezelementwise comparison failed)ÚcategoryÚmessagerR   TF)r¥  r¦  rÌ   r   rF   rO   rI   rˆ   r.   r
  r§  r!   rY   r-   r¯   r   r3   rW   rX   ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningr'   r€   rì   rd   )r5   r   r  Zmat2rv   r9   r9   r:   Ú%test_constructor_maskedarray_nonfloat
  sh    

ý   ÿ

z?TestDataFrameConstructors.test_constructor_maskedarray_nonfloatc                 C   sÀ   t jdtd� ¡ }t|ddgddgd�}ttjtjgtjtjgdœddgddgtd	�}t ||¡ t j	dtd� ¡ }t|ddgddgd�}td
d
gd
d
gdœddgddgtd	�}t ||¡ d S )N)rB   rB   r,   rÆ   rb   rC   rB   r<  r  rŸ  r©   )
r¥  r¦  r°   Zharden_maskr   r.   rV   r3   r4   r§   )r5   Zmat_hardrh   r8   r9   r9   r:   Ú%test_constructor_maskedarray_hardenedT  s$    üüz?TestDataFrameConstructors.test_constructor_maskedarray_hardenedc              	      s¨   t jjt jjdddgd�dgd d�‰ ˆ  tj¡‰ t t	¡� t
ˆ td�}W 5 Q R X t
t jdtd�dd	gd
�}t ||¡ t
‡ fdd„ˆ jjD ƒtd�}t ||¡ d S )Nr†   )r   ú<f8)Úpricer²  r,   F©Úmask©r†   rB   r   r³  r‡   c                    s   i | ]}|ˆ | “qS r9   r9   )r}   rT   r™   r9   r:   rÓ   z  s      zSTestDataFrameConstructors.test_constructor_maskedrecarray_dtype.<locals>.<dictcomp>)r.   r¥  rU   rí   r€   ÚmrecordsZ	mrecarrayr3   rW   rX   r   rÌ   r4   r-   rå   )r5   rh   r8   Zaltr9   r™   r:   Ú%test_constructor_maskedrecarray_dtypej  s     ÿz?TestDataFrameConstructors.test_constructor_maskedrecarray_dtypec              
   C   s²  t jtjddd�}dt ddg¡fdt ddg¡fd	t d
dg¡fg}|d d … D ]*\}}| d| tjj|ddgd�f¡ qR| dtj 	d¡f¡ | dtjjddgdd�f¡ t
 |d¡D ]î}t|Ž \}}tj||d�}dd„ |D ƒ}t t¡� t|ƒ}	W 5 Q R X t||d�}
||	|
ƒ t t¡� t||d d d… d�}	W 5 Q R X t||d d d… d�}
||	|
ƒ t t¡� t|ddgd�}	W 5 Q R X t||ddgd�}
||	|
ƒ q¾d S )NT)Zcheck_index_typeZcheck_column_typer°   ç      ø?rª   rÌ   rC   rB   r1   r   ÚdefZmasked1_Fr´  r¦  r~  Zmasked_noner©   g      @r+   )rå   c                 S   s(   i | ] \}}|t |d ƒr | ¡ n|“qS )Úfilled)Úhasattrr»  re  r9   r9   r:   rÓ   —  s      zHTestDataFrameConstructors.test_constructor_mrecarray.<locals>.<dictcomp>r‡   rã   rN   r<  )Ú	functoolsÚpartialr3   r4   r.   rU   Úappendr¥  Zmasked_arrayr¦  Ú	itertoolsÚcombinationsrÖ   r·  Z
fromarraysrW   rX   r   )r5   Zassert_fr_equalr�   rT   r6   Úcombrå   rš   Zmrecsrh   r8   r9   r9   r:   Útest_constructor_mrecarray}  s>      ÿýÿ
 
z4TestDataFrameConstructors.test_constructor_mrecarrayc                 C   s   t g d�}|jjdkst‚d S )NrN   r³   )r   rY   ÚshaperI   r`   r9   r9   r:   Útest_constructor_corner_shape­  s    
z7TestDataFrameConstructors.test_constructor_corner_shapez%data, index, columns, dtype, expectedrÍ   r£   r¤   r!   r   c                 C   s"   t ||||ƒ}|jj|kst‚d S r�   )r   rY   r-   rI   )r5   rš   rO   rˆ   r-   r8   r7   r9   r9   r:   Útest_constructor_dtype±  s    z0TestDataFrameConstructors.test_constructor_dtypezdata,input_dtype,expected_dtypeTFÚbooleanr©   rª   ZFloat64ZInt64r¥   Ústringc                 C   s(   t d|i|d�}|d j|ƒ ks$t‚d S )Nr£   r,   rü   )r5   rš   Zinput_dtypeZexpected_dtyper7   r9   r9   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 )NrC   Tr«   y              @rŸ   )rÌ   rì   r°   Úcomplexrd   rÍ   rN   rÌ   rì   r°   rÊ  rd   )
r   r.   r/   r-   r'   rI   rî   r!   rÝ   r    )r5   rš   r7   r9   r9   r:   Ú!test_constructor_scalar_inferenceÎ  s    z;TestDataFrameConstructors.test_constructor_scalar_inferencec              	   C   sh   t tj d¡ddœƒ}t |d jdgd dœƒ}t ||¡ tjt	dd�� t dddœƒ W 5 Q R X d S )NrÍ   TrÜ   r£   zmust pass an indexrm   F)
r   r.   rÎ   r_  rY   r3   r4   rr   rs   rt   )r5   r7   r  r9   r9   r:   Ú#test_constructor_arrays_and_scalarsØ  s
    z=TestDataFrameConstructors.test_constructor_arrays_and_scalarsc                 C   s8   t |ƒ}t ||¡ t |tjd�}|jjtjks4t‚d S ©Nr,   )r   r3   r4   r.   r'   rY   r-   rI   )r5   rè   r7   Z	df_castedr9   r9   r:   Útest_constructor_DataFrameà  s    z4TestDataFrameConstructors.test_constructor_DataFramec                 C   s*   t t ƒ dd�}t g dd�}t ||¡ d S )Nrd   r,   r�   )r5   Úactualr8   r9   r9   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Æ   r<  rB   r   rb   )rÍ   rB   r‡   )r   rB   rN   )rÍ   r   rŸ   rÉ   r,   rC   z(could not convert string to float: 'foo'rm   ©rO   rˆ   r-   r  )r.   rÎ   r_  r   r/   rY   ÚndimrI   rÄ  rU   rd   r0   rr   rs   rt   r°   r  r3   r4   r§   rÌ   r!   rF   rˆ   r-   )r5   rè   r6   rc  r   rv   r9   r9   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 )NrN   rÆ   rb   r‡   c                   s   s   dE d H  d S r‘   r9   r9   r9   r9   r:   Ú	empty_gen  s    zHTestDataFrameConstructors.test_constructor_empty_list.<locals>.empty_genr�   )r5   r7   r8   rÔ  r9   r9   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 )NrC   r£   rB   r¤   Únumr1   r3  r   rÍ   c                 S   s   g | ]}t  |¡‘qS r9   ©r.   rU   r|   r9   r9   r:   r   .  s     zLTestDataFrameConstructors.test_constructor_list_of_lists.<locals>.<listcomp>)
r   r   rI   r-   r.   r    r/   r‰   r3   r4   )r5   r7   r8   rš   rh   r9   r9   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 )NrC   rB   r,   r   )rB   rC   )r   r.   rU   rd   r   r“  r3   r4   rÄ  rI   rX  rY   )r5   r\   r6   r7   r8   r9   r9   r:   Ú.test_nested_pandasarray_matches_nested_ndarray2  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cdefrC   rB   r+   r*   r†   r=   rs  r‡   )rä   r   r   Zfrom_arraysr3   r4   )r5   r�   rh   r:  r8   r9   r9   r:   Ú2test_constructor_list_like_data_nested_list_column@  s
     
 zLTestDataFrameConstructors.test_constructor_list_like_data_nested_list_columnc              	   C   sR   t dƒt dƒg}d}tjt|d��& tddddgdd	d
dgg|d� W 5 Q R X d S )Nr   Úcdez#3 columns passed, passed data had 4rm   rC   rB   r+   r*   r†   r=   rs  r‡   ©rä   rr   rs   rt   r   ©r5   r�   rv   r9   r9   r:   Ú0test_constructor_wrong_length_nested_list_columnJ  s    zJTestDataFrameConstructors.test_constructor_wrong_length_nested_list_columnc              	   C   sR   t dƒt dƒg}d}tjt|d��& tddddgdd	d
dgg|d� W 5 Q R X d S )NrÚ  rÜ  zall arrays must be same lengthrm   rC   rB   r+   r*   r†   r=   rs  r‡   rÝ  rÞ  r9   r9   r:   Ú2test_constructor_unequal_length_nested_list_columnR  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   rC   rB   r~   rœ   rá  r+   )r   r   r3   r4   rg  r9   r9   r:   Ú&test_constructor_one_element_data_list[  s    z@TestDataFrameConstructors.test_constructor_one_element_data_listc                 C   sj   G dd„ dt jƒ}|ddgƒ|ddgƒg}ddg}t||d	�}tddgddgg|d	�}tj||d
d� d S )Nc                   @   s*   e Zd Zddœdd„Zdd„ Zdd„ ZdS )	zPTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainerN)Úreturnc                 S   s
   || _ d S r�   )Ú_lst)r5   Úlstr9   r9   r:   Ú__init__o  s    zYTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__init__c                 S   s   | j  |¡S r�   )rä  Ú__getitem__)r5   Únr9   r9   r:   rç  r  s    z\TestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__getitem__c                 S   s
   | j  ¡ S r�   )rä  Ú__len__)r5   r9   r9   r:   ré  u  s    zXTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__len__)Ú__name__Ú
__module__Ú__qualname__ræ  rç  ré  r9   r9   r9   r:   ÚDummyContainern  s   rí  rC   r£   rB   r¤   rÖ  r1   r‡   Frf  )r   ÚSequencer   r3   r4   )r5   rí  Zlst_containersrˆ   rh   r8   r9   r9   r:   Útest_constructor_sequence_likej  s    
z8TestDataFrameConstructors.test_constructor_sequence_likec                 C   s˜   dd l }td|  dtdƒ¡iƒ}tdttdƒƒiƒ}tj||dd� tttdƒƒttdƒƒgƒ}t|  dtdƒ¡|  dtdƒ¡gƒ}tj||dd� d S )Nr   rÆ   rò   rÍ   Frf  )rU   r   r‰   rä   r3   r4   )r5   rU   rh   r8   r9   r9   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ä   r3   r4   r5  r9   r9   r:   Útest_constructor_range‹  s    z0TestDataFrameConstructors.test_constructor_rangec                 C   s@   t tdƒtdƒgƒ}t ttdƒƒttdƒƒgƒ}t ||¡ d S rñ  rò  r5  r9   r9   r:   Útest_constructor_list_of_ranges‘  s    z9TestDataFrameConstructors.test_constructor_list_of_rangesc                 C   s<   G dd„ dƒ}t dddggd ƒ}t |ƒ ƒ}t ||¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )zATestDataFrameConstructors.test_constructor_iterable.<locals>.Iterc                 s   s   t dƒD ]}dddgV  qd S )NrÍ   rC   rB   r+   )r‰   )r5   rò   r9   r9   r:   Ú__iter__™  s    zJTestDataFrameConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)rê  rë  rì  rõ  r9   r9   r9   r:   ÚIter˜  s   rö  rC   rB   r+   rÍ   r�   )r5   rö  r8   rh   r9   r9   r:   Útest_constructor_iterable–  s    
z3TestDataFrameConstructors.test_constructor_iterablec                 C   s0   t ttdƒƒƒ}t ttdƒƒƒ}t ||¡ d S rñ  ©r   rk  r‰   rä   r3   r4   r5  r9   r9   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ø  r5  r9   r9   r:   Ú"test_constructor_list_of_iterators¦  s    z<TestDataFrameConstructors.test_constructor_list_of_iteratorsc                 C   s˜   dd„ t dƒD ƒ}dd„ t dƒD ƒ}ttt dƒƒtt dƒƒgƒ}t||gƒ}t ||¡ dd„ t dƒD ƒ}t|ƒ}tt dƒddœƒ}tj||dd	� d S )
Nc                 s   s   | ]
}|V  qd S r�   r9   rñ   r9   r9   r:   r”   ®  s     zGTestDataFrameConstructors.test_constructor_generator.<locals>.<genexpr>rÍ   c                 s   s   | ]
}|V  qd S r�   r9   rñ   r9   r9   r:   r”   ¯  s     c                 s   s   | ]}|d gV  qdS )r£   Nr9   rñ   r9   r9   r:   r”   µ  s     r£   rD   Frf  )r‰   r   rä   r3   r4   )r5   Zgen1Zgen2r8   rh   Úgenr9   r9   r:   Útest_constructor_generator«  s    z4TestDataFrameConstructors.test_constructor_generatorc                 C   s&   t i gƒ}t dgd�}t ||¡ d S )Nr   rN   r�   r5  r9   r9   r:   Útest_constructor_list_of_dictsº  s    
z8TestDataFrameConstructors.test_constructor_list_of_dictsÚ	dict_typec                 C   st   t ddggddgd�}|ƒ }dg|d< dg|d< t |ƒ}t ||¡ |ƒ }d|d< d|d< t |gƒ}t ||¡ d S )NrB   rC   r¤   r£   r‡   r�   )r5   rþ  r8   rš   rh   r9   r9   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 )NrB   r¤   rC   r£   r1  r‡   r�   )r5   rþ  Zrow_oneZrow_twoZ	row_threer8   rh   r9   r9   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   r1   rñ   r9   r9   r:   r   ê  s     z[TestDataFrameConstructors.test_constructor_list_of_series_aligned_index.<locals>.<listcomp>r+   r   rC   rB   )r¤   r£   r¥   r¤   r£   r¥   Ú0r  rÂ   r<  ri  )r5   Úseriesrh   r8   r9   r9   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ì  r9   r9   r9   r:   Ú
CustomDictô  s   r  r¹  r+   rÜ   )rK  r   r3   r4   )r5   r  rÀ   Zdata_customrš   Zresult_customrh   r9   r9   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Í   rt  r  z%All arrays must be of the same lengthrm   )r.   rÎ   r_  rr   rs   rt   r   ©r5   rš   r9   r9   r:   Útest_constructor_ragged   s    z1TestDataFrameConstructors.test_constructor_raggedc                 C   sF   t tdƒƒ}tddi|d�}tddddgi|d�}tj||dd� d S )Nr+   r£   r   rN   Frf  )r   r‰   r   r3   r4   )r5   rg   r7   r8   r9   r9   r:   Útest_constructor_scalar  s    z1TestDataFrameConstructors.test_constructor_scalarc                 C   s"   t |d |jdgd�}| ¡  d S )NrÆ   rœ   )r   rO   r¯   )r5   rè   r7   r9   r9   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 )NrC   rB   r+   )rŸ   rÉ   rA  rÆ   r*   rÉ   ZquxrA  rŸ   rN   rb   zambiguous orderingrm   r£   r¤   rÜ   r  )
r   r   rO   Zis_monotonic_increasingrI   rr   rs   rt   r3   r4   rg  r9   r9   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 )NrC   rB   ©r+   r*   r+   r*   r�   rg  r9   r9   r:   Ú test_constructor_mixed_type_rows   s    z:TestDataFrameConstructors.test_constructor_mixed_type_rowsztuples,lists)r9   r9   r+   r*   r=   c                 C   s    t |ƒ}t |ƒ}t ||¡ d S r�   r�   )r5   r9  Úlistsrh   r8   r9   r9   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   r3   r4   r5  r9   r9   r:   Útest_constructor_list_of_tuples9  s    z9TestDataFrameConstructors.test_constructor_list_of_tuplesc                 C   sŽ   ddl m} |dtdƒƒ}|ddƒ|ddƒg}tddgddgd	œƒ}t|ƒ}t ||¡ tddgddgd
œƒ}t|ddgd�}t ||¡ d S )Nr   )Ú
namedtupleZPandasÚabrC   r+   rB   r*   rÜ   )rŠ   ry  rŠ   ry  r‡   )rQ  r  rä   r   r3   r4   )r5   r  Znamed_tupler9  r8   rh   r9   r9   r:   Ú$test_constructor_list_of_namedtuples>  s    z>TestDataFrameConstructors.test_constructor_list_of_namedtuplesc                 C   sd   ddl m} |ddtfdtfgƒ}|ddƒ|ddƒg}tddgddgdœƒ}t|ƒ}t ||¡ d S )	Nr   ©Úmake_dataclassÚPointr~   rŠ   r+   rC   ©r~   rŠ   )Údataclassesr  rÌ   r   r3   r4   )r5   r  r  rš   r8   rh   r9   r9   r:   Ú$test_constructor_list_of_dataclassesM  s    z>TestDataFrameConstructors.test_constructor_list_of_dataclassesc                 C   s”   ddl m} |ddtfdtfgƒ}|ddtfdtfdtfgƒ}|dd	ƒ|d
d	d	ƒg}tdtjgd	d	gtjd
gtjd	gdœƒ}t|ƒ}t ||¡ d S )Nr   r  r  r~   rŠ   ÚHLineÚx0Úx1r+   rC   )r~   rŠ   r  r  )r  r  rÌ   r   r.   rV   r3   r4   )r5   r  r  r  rš   r8   rh   r9   r9   r:   Ú7test_constructor_list_of_dataclasses_with_varying_typesX  s    "ÿzQTestDataFrameConstructors.test_constructor_list_of_dataclasses_with_varying_typesc              	   C   sb   ddl m} |ddtfdtfgƒ}d}tjtt |¡d�� t|ddƒddd	œgƒ W 5 Q R X d S )
Nr   r  r  r~   rŠ   z0asdict() should be called on dataclass instancesrm   rC   r  )	r  r  rÌ   rr   rs   Ú	TypeErrorÚreÚescaper   )r5   r  r  rv   r9   r9   r:   Ú1test_constructor_list_of_dataclasses_error_thrownh  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 )NrC   r*   rs  rÍ   )ÚFirstÚSecondÚThirdÚFourthr†   rB   r,  rt  )r$  r#  r&  r%  r=   r+   r)   ru  é   r/  )r$  r#  r&  r%  ÚYYYÚXXX)r#  r$  r%  r&  r(  r)  r�   )r5   rš   r8   rh   r9   r9   r:   Ú#test_constructor_list_of_dict_orders  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 )NrC   rB   r+   r£   r¤   r¥   r~   r  r   rÍ   rc   r/  rN   z<Shape of passed values is \(10, 1\), indices imply \(10, 2\)rm   r‡   ©rT   r-   )r~   ú	Unnamed 0r,  rÃ   )r   r   rˆ   rI   r3   ræ   rO   r.   rÎ   r_  r4   r‰   rr   rs   rt   rd   r{  )r5   r£   r7   r6   r€  r8   rv   Ús1r9   r9   r:   Útest_constructor_Series_named‡  s4    z7TestDataFrameConstructors.test_constructor_Series_namedc                 C   s€   t tdƒdd�}t tdƒdd�}t t|dgd�| ¡ ¡ t t|dgd�| ¡ ¡ t|dgd�jsht‚t|dgd�js|t‚d S )Nr†   r   rc   rC   r‡   )r   r‰   r3   r4   r   Úto_framerÇ   rI   )r5   Ús0r-  r9   r9   r:   Ú)test_constructor_Series_named_and_columns­  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 )NrC   rB   r+   r£   r¤   r¥   r~   r  rN   r   )
r   r   r   rç   rˆ   rI   r3   r4   ræ   rO   )r5   r-  Ús2Zother_indexÚdf1Zexp1rº   Zexp2r9   r9   r:   Ú+test_constructor_Series_differently_indexed»  s    zETestDataFrameConstructors.test_constructor_Series_differently_indexedz#name_in1,name_in2,name_in3,name_out)rg   rg   rg   rg   )rg   rg   NN)rg   NNN)Úidx1Úidx2NN)r5  r5  r6  N)r5  r6  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¥   rc   rÀ   Úec                 S   s$   i | ]\}}|t d ddg|d�“qS )r   rC   rB   rN   r{   )r}   rò   r¥   r9   r9   r:   rÓ   â  s     zJTestDataFrameConstructors.test_constructor_index_names.<locals>.<dictcomp>r~   rŠ   ry  r   rC   rB   )r~   rŠ   ry  rN   )r   rÖ   r   r.   rV   r3   r4   )
r5   Zname_in1Zname_in2Zname_in3Zname_outÚindicesr  rh   Zexp_indr8   r9   r9   r:   Útest_constructor_index_namesÏ  s"    ýÿýú	z6TestDataFrameConstructors.test_constructor_index_namesc                 C   s\   t |jd d… ƒ}t |jd d… ƒ}t|j||d�}t |jt|ƒ¡ t |jt|ƒ¡ d S )Nr†   r+   rœ   )rä   rO   rˆ   r   rG   r3   ræ   r   )r5   rè   rO   rˆ   rh   r9   r9   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Æ   rb   r  r‡   zdoes not match index lengthrm   éþÿÿÿ)r   rä   r3   r4   rÄ   rr   rs   rt   )r5   rè   r7   rv   r9   r9   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 ttjdgddggƒ}t  ||¡ d S )Nz6float-dtype values containing NaN and an integer dtyperm   rC   r   r,   )r3   rW   rX   r   r.   rV   r'   r4   ©r5   rv   r7   r8   r9   r9   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 )Nrt  r†   r£   r‡   )rt  r†   )r   rˆ   r3   r4   Zfrom_records)r5   r7   ZedfZidfr9   r9   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   rC   rÑ  ZU5)r   rd   r1   r3   r4   r.   Zstr_Zunicode_rY  r9   r9   r:   Ú(test_constructor_empty_with_string_dtype  s    zBTestDataFrameConstructors.test_constructor_empty_with_string_dtypec                 C   s.   t g dg|d�}t dg|d�}t ||¡ d S )NÚc1rÑ  ©rˆ   r-   r�   )r5   Znullable_string_dtyper8   r7   r9   r9   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ç        rC   rB   r+   r£   r¤   r¥   rœ   r!   r   r'   r,   z*DataFrame constructor not properly called!rm   r‡   zincompatible data and dtype)r   r3   r4   r.   rí   rÄ  r2   rO   rˆ   rU   rd   rr   rs   rt   r  r°   )r5   r7   rv   r9   r9   r:   Útest_constructor_single_value+  s6     ÿ ÿýþ	z7TestDataFrameConstructors.test_constructor_single_valuec                 C   sò  t  t j¡j}t  t j¡j}t  d¡j}t  t j¡j}tdddtdƒtdddddƒd	œt  	d
¡d�}|j
}tt  d¡gt  |¡gd  t  |¡gd  tdƒd�}t ||¡ tdddddd|t jd|d�|t jd|d�it  	d
¡d�}|j
}tt  d¡gt  d¡g t  d¡g t  d¡g t  |¡g ddd||gd�}t ||¡ tdddddd|t jdgd
 |d�|t jdgd
 |d�it  	d
¡d�}|j
}tt  d¡gt  d¡g t  d¡g t  d¡g t  |¡g ddd||gd�}t ||¡ d S )Nr^   rC   rŸ   rÉ   Z20010101éÑ  rB   r   )rÆ   rb   rË   r"  ÚErÍ   rN   r'   ZABCDEr£   r©   r¤   r¥   r,   r!   rd   )r.   r-   Úint_rT   Zfloat_r    r   r   r   r/   rØ   r   rä   r3   r[   rU   )r5   ZintnameZ	floatnameZdatetime64nameZ
objectnamer7   rh   r8   r9   r9   r:   Útest_constructor_with_datetimesK  sž    ûø

ÿþü     ûø


ÿ
þ
ý
üú     ûø


ÿ
þ
ý
üúz9TestDataFrameConstructors.test_constructor_with_datetimesc                 C   s6   t dddd�}dd„ |D ƒ}t|ƒ}|jdks2t‚d S )NrB  r"  rÍ   ©Ústartr’  r@   c                 S   s   g | ]}|  ¡ ‘qS r9   ©Úto_pydatetime©r}   Útsr9   r9   r:   r   –  s     zNTestDataFrameConstructors.test_constructor_with_datetimes1.<locals>.<listcomp>r^   )r   r   r-   rI   )r5   ÚindÚ	datetimesZ
datetime_sr9   r9   r:   Ú test_constructor_with_datetimes1’  s    z:TestDataFrameConstructors.test_constructor_with_datetimes1c                 C   sv   t dddd�}dd„ |D ƒ}dd„ |D ƒ}t|dgd	�}||d
< |j}tt d¡t d¡gdd
gd�}t ||¡ d S )NrB  r"  rÍ   rJ  c                 S   s   g | ]}|  ¡ ‘qS r9   rL  rN  r9   r9   r:   r   �  s     zNTestDataFrameConstructors.test_constructor_with_datetimes2.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r9   )r   rN  r9   r9   r:   r   ž  s     rQ  r‡   Údatesúdatetime64[ns]rd   rN   )r   r   rØ   r   r.   r-   r3   r[   )r5   rP  rQ  rS  r7   rh   r8   r9   r9   r:   Ú test_constructor_with_datetimes2š  s    þz:TestDataFrameConstructors.test_constructor_with_datetimes2c                 C   s�   t  d¡}| tdddƒ¡}td|idgd�}|jd |ks@t‚t |j	t
ddiƒ¡ td|igƒ}|jd |ksvt‚t |j	t
ddiƒ¡ d S )	Nr˜  éÜ  rC   zEnd Dater   rN   r³   údatetime64[ns, US/Eastern])ÚpytzÚtimezoneZlocalizer   r   ÚiatrI   r3   r[   rØ   r   )r5   rA   rM   r7   r9   r9   r:   Ú test_constructor_with_datetimes3¨  s    
 
ÿ 
ÿz:TestDataFrameConstructors.test_constructor_with_datetimes3c                 C   s”   t ddd�}td|iƒ}|jd jd 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Ú20130101r+   rC  rP   r³   ÚUTCr?   r˜  )r   r   rZ  rA   rI   r1   )r5   Údrr7   r9   r9   r:   Ú test_constructor_with_datetimes4º  s    z:TestDataFrameConstructors.test_constructor_with_datetimes4c                 C   s^   t ddddd�}td| ¡ jdd�iƒ}tƒ }||d< t ||¡ td|iƒ}t ||¡ d S )	Nú1/1/2011r†   Ú10sr˜  ©r@   r’  rA   r£   T©Zdrop©r   r   Z	to_seriesZreset_indexr3   r4   )r5   rò   r8   r7   r9   r9   r:   Ú test_constructor_with_datetimes5Ç  s    z:TestDataFrameConstructors.test_constructor_with_datetimes5c                 C   sV   t ddddd�}t dddd�}t||dœƒ}t| ¡ jdd	�|dœƒ}t ||¡ d S )
Nr`  r†   ra  r˜  rb  ©r@   r’  rÜ   Trc  rd  )r5   rò   Zi_no_tzr7   r8   r9   r9   r:   Ú test_constructor_with_datetimes6Ô  s
    z:TestDataFrameConstructors.test_constructor_with_datetimes6r6   rj   c                 C   s*   t |ƒj}tt d¡gƒ}t ||¡ d S )NrT  )r   rØ   r   r.   r-   r3   r[   )r5   r6   rh   r8   r9   r9   r:   Ú%test_constructor_datetimes_with_nullsÜ  s    
z?TestDataFrameConstructors.test_constructor_datetimes_with_nullsÚorderÚKrÆ   rË   ÚFr-   zdatetime64[M]zdatetime64[D]zdatetime64[h]zdatetime64[m]zdatetime64[s]zdatetime64[ms]zdatetime64[us]rT  c                 C   s\   t jdddgdddgg||d�}t|ƒ}tdddgdddggƒ}|j|d�}t ||¡ d S )	Nz
2015-01-01z
2015-01-02z
2015-01-03z
2017-01-01z
2017-01-02z
2017-02-03©r-   ri  r,   )r.   rU   r   r2   r3   r4   ©r5   ri  r-   Únar7   r8   r9   r9   r:   Ú!test_constructor_datetimes_non_nsï  s    þúþÿz;TestDataFrameConstructors.test_constructor_datetimes_non_nsztimedelta64[D]ztimedelta64[h]ztimedelta64[m]ztimedelta64[s]ztimedelta64[ms]ztimedelta64[us]útimedelta64[ns]c                 C   s†   t jt  dd¡t  dd¡gt  dd¡t  dd¡gg||d�}t|ƒ d¡}ttddƒtddƒgtddƒtddƒggƒ}t ||¡ d S )NrC   r"  rB   r*   r†   rl  rp  )r.   rU   rŒ  r   r2   r   r3   r4   rm  r9   r9   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†   )r.   r/   r|   r9   r9   r:   r   1  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&   r,   )r.   rU   r/   r|   r9   r9   r:   r   6  s     r&   r£   l        l       r   r'   rC   rB   r©   rª   r!   r+   rN   r*   rs  g333333ó?gffffff@gffffff@g333333@rÚ  c                 S   s   g | ]}t d ddƒ‘qS )éÐ  rC   )r   rñ   r9   r9   r:   r   Y  s     rW  )r£   r¤   r¥   rÀ   r7  rd   rT  Zabcde)r   r‰   rØ   r   r.   r-   r3   r[   rZ   rI   rä   )r5   r7   rh   r8   r9   r9   r:   Ú%test_constructor_for_list_with_dtypes/  sR    


ûÿ	ûø
z?TestDataFrameConstructors.test_constructor_for_list_with_dtypesc                 C   s@   t |dd�}d|d< |d dk ¡ s(t‚|d dk ¡ r<t‚d S )NT©r¯   r†   rÆ   )r   r
  rI   )r5   rè   Úcopr9   r9   r:   Útest_constructor_frame_copyj  s    z5TestDataFrameConstructors.test_constructor_frame_copyc                 C   sÜ   |s^t |jƒ}d|jd< |jd dk ¡ s.t‚t |jdd�}d|j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†   Trt  r=   r   rþ   r³   Fiè  )
r   rY   r
  rI   r¯   rG   r�   r¸   r¹   rZ   )r5   rè   rJ   r7   r6   r9   r9   r:   Útest_constructor_ndarray_copyp  s     



z7TestDataFrameConstructors.test_constructor_ndarray_copyc                 C   sB   |j }td|d idd�}d|d d d …< |d dk ¡ r>t‚d S )NrÆ   Trt  r†   )r  r   r
  rI   )r5   rè   r  r7   r9   r9   r:   Útest_constructor_series_copyˆ  s    z6TestDataFrameConstructors.test_constructor_series_copyr7   rN   gš™™™™™ñ?gš™™™™™@r‡   rs  rD  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$rm   rC   )r‰   rF   rˆ   rZ   r.   r/   r   rr   rs   ÚKeyErrorrÄ   rV   r3   r[   r4   )r5   r7   rò   Zindexerr9   r9   r:   Útest_constructor_with_nas�  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£   FrC   )r   r.   rV   r-   r    rI   )r5   rÀ   r9   r9   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Æ   rb   rË   rã   rC   r  r,   rˆ  )	r   r.   rU   r0   Zbroadcast_tor   r-   r3   r4   )r5   Úcatr6   rh   r8   r9   r9   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ª  r,   rS   r   rŸ   rc   )r   rä   r   r3   r[   r/  )r5   r7   r8   r€  rh   r9   r9   r:   Útest_constructor_categoricalÁ  s    z6TestDataFrameConstructors.test_constructor_categoricalc              	   C   sX   d}t jt|d�� tttdƒƒgƒ}W 5 Q R X tdttdƒdd�iƒ}t  ||¡ d S )Nú%will be changed to match the behaviorrm   r   r   rª  r,   ©r3   rW   rX   r   r   rä   r   r4   r=  r9   r9   r:   Ú-test_construct_from_1item_list_of_categoricalØ  s
    zGTestDataFrameConstructors.test_construct_from_1item_list_of_categoricalc              	   C   sx   d}t jt|d��" tttdƒƒttdƒƒgƒ}W 5 Q R X tttdƒdd�ttdƒdd�dœdd	gd
�}t  ||¡ d S )Nr  rm   r   Zabdrª  r,   rD   r   rC   r‡   r€  r=  r9   r9   r:   Ú(test_construct_from_list_of_categoricalsà  s    &þûzBTestDataFrameConstructors.test_construct_from_list_of_categoricalsc              	   C   sl   d}t jt|d�� tttdƒƒtdƒgƒ}W 5 Q R X tttdƒdd�tdƒdœdd	gd
�}t  ||¡ d S )Nr  rm   r   rº  rª  r,   rD   r   rC   r‡   r€  r=  r9   r9   r:   Ú%test_from_nested_listlike_mixed_typesí  s    " ÿz?TestDataFrameConstructors.test_from_nested_listlike_mixed_typesc              
   C   sd   d  dg¡}d}tjt|d��< tjt|d��" ttt	dƒƒtt	dƒƒgƒ W 5 Q R X W 5 Q R X d S )Nrl   z;Length of values \(6\) does not match length of index \(3\)r  rm   r   Zabdefg)
rq   rr   rs   rt   r3   rW   rX   r   r   rä   )r5   rv   Zmsg2r9   r9   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 )NrC   rB   r+   rª  r,   r£   r¤   r¥   Z20000101rC  )rY   Ú
categoriesr~   rN   )r   r2   r3   r[   r   r   r.   rV   rO   r   r4   )r5   rL  r  ÚresrO   r8   r7   r9   r9   r:   Ú#test_constructor_categorical_series	  s     ÿz=TestDataFrameConstructors.test_constructor_categorical_seriesc                 C   s,   t dddgidg|d�}|jj|ks(t‚d S )Nr£   rC   rB   r¤   rB  )r   r¤   r-   rI   )r5   r-   rš   r9   r9   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£   rC   rB   r¤   rB  rd   )	r   r3   ÚBYTES_DTYPESr�  Ú&mark_array_manager_not_yet_implementedr¤   r-   rT   rI   )r5   Úrequestr-   rJ   rš   r9   r9   r:   Ú$test_check_dtype_empty_string_column,	  s    
z>TestDataFrameConstructors.test_check_dtype_empty_string_columnc                 C   sL   t dtd� ¡ j}t dtiƒ}t ||¡ tt dtd�ƒj}t ||¡ d S )Nr   r+  )r   rd   r/  rØ   r3   r[   r   r5  r9   r9   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   rC   rB   r+   r*   r'   r,   r†   rB  )r   r‰   r3   r4   )r5   r-   r8   rh   r9   r9   r:   Útest_constructor_range_dtypeC	  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  r9   r9   r9   r:   ÚListR	  s   r�  rC   rB   r+   r*   r†   r=   )rä   r   r3   r4   )r5   r�  r8   rh   r9   r9   r:   Útest_frame_from_list_subclassP	  s    $z7TestDataFrameConstructors.test_frame_from_list_subclassÚextension_arrZaabbcz1/1/2017z1/1/2018)rK  Úendr’  c                 C   s$   t t|ƒƒ}t |ƒ}t ||¡ d S r�   r  )r5   r‘  r8   rh   r9   r9   r:   Ú%test_constructor_with_extension_arrayY	  s    z?TestDataFrameConstructors.test_constructor_with_extension_arrayc                 C   s^   t  ¡ }||f}t|ttdƒtdƒd�i|gd�}tdddgtt|gƒƒd�}t ||¡ d S )Nr+   rN   r‡   r   rC   rB   )r   Útodayr   r   r‰   r   r3   r4   )r5   rT  Útuprh   r8   r9   r9   r:   Ú*test_datetime_date_tuple_columns_from_dicth	  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é'   r=   r*   ZfemaleZmaleÚunknownrN   rB   é˜   éò   é–   Úfry   g      c@g     @n@g     Àb@rª   r‡   )r   r   r   r.   rU   rV   r3   r4   )r5   r-  r2  rh   r8   r9   r9   r:   Ú/test_construct_with_two_categoricalindex_seriesp	  s    þ$þzITestDataFrameConstructors.test_construct_with_two_categoricalindex_seriesc                 C   s  t tddƒƒ}t|dƒ ¡  d¡}t|dƒ ¡  d¡}t||dœƒ}ttdddd	�tdd
dd	�td
ddd	�tdddd	�tdddd	�tdddd	�tdddd	�tdddd	�tdddd	�tdddd	�g
dd�}tdgd t	j
gd  t	j
gd dgd  dœ|d�}t ||¡ d S )Nr   rþ   rÍ   r†   r  gòÒMbX¹¿gÍÌÌÌÌÌ#@r—  )ÚclosedgÍÌÌÌÌÌ3@g33333³=@gÍÌÌÌÌÌC@g     ÀH@g33333³M@g33333SQ@gÍÌÌÌÌÌS@gfffffFV@r²   T)ÚorderedrN   )r   r‰   r   Zvalue_countsÚheadÚtailr   r   r   r.   rV   r3   r4   )r5   r\   Úser1Úser2rh   rO   r8   r9   r9   r:   Ú1test_constructor_series_nonexact_categoricalindex~	  s.    öó, ÿzKTestDataFrameConstructors.test_constructor_series_nonexact_categoricalindexc                 C   s®   t dddddƒt dddddƒfg}tj|ddgd	�}t|ƒ}|d
 d |d d ksXt‚|d d |d d kstt‚t|d
 ƒ}t|d tƒs’t‚|d |d d ksªt‚d S )NrV  ru  r   rt  r^  rÍ   )ÚDateúM8[us])ÚForecastingr¦  r,   r¥  r§  rC   )r   r.   rU   r   rI   r   r‚   r   )r5   rS  r6   r7   r€  r9   r9   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  r9   r9   r9   r:   ÚDatetimeSubclass¦	  s   r©  r   iä  rC   rT  )r   r   r-   rI   )r5   r©  rš   r9   r9   r:   Útest_from_datetime_subclass¤	  s    z5TestDataFrameConstructors.test_from_datetime_subclassc              	   C   s@   t dddd�}d}tjt|d�� t|tdƒd� W 5 Q R X d S )	Nr<   r+   r>   r?   z@Shape of passed values|Passed arrays should have the same lengthrm   r*   rN   )r   rr   rs   rt   r   r‰   )r5   rK   rv   r9   r9   r:   Ú(test_with_mismatched_index_length_raises¬	  s    zBTestDataFrameConstructors.test_with_mismatched_index_length_raisesc                 C   sR   t dddd�}t |¡}ttj t|ƒ¡|dœƒ}t |d jt d¡¡sNt	‚d S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50ra  r‘  r  rb   r^   )
r   r.   r§  r   rÎ   r_  rF   Z
issubdtyper-   rI   )r5   ré   rS  r7   r9   r9   r:   Ú!test_frame_ctor_datetime64_column³	  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Š   r*   c                 S   s   g | ]}t  |¡‘qS r9   r×  r|   r9   r9   r:   r   ¿	  s     zYTestDataFrameConstructors.test_dataframe_constructor_infer_multiindex.<locals>.<listcomp>rN   r‡   )	r   r.   rÎ   r_  r‚   rO   r   rI   rˆ   )r5   Zindex_listsÚmultir9   r9   r:   Ú+test_dataframe_constructor_infer_multiindexº	  s    þzETestDataFrameConstructors.test_dataframe_constructor_infer_multiindexÚ
input_valsr  rÂ   r`  ÚHrf  rb  c                 C   s6   t d|i|d�}t d|iƒ d|i¡}t ||¡ d S )NrÆ   r,   )r   r2   r3   r4   )r5   r¯  rá   rh   r8   r9   r9   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ª   r,   z1.0z2.0)r   rd   r3   r4   )r5   rá   rh   r8   r9   r9   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tdd��( t	jddgˆjd�ˆjd d …df< W 5 Q R X ˆjjd ˆjk�s&t‚|�s:|�s:|dƒ |�rÔˆ jjdk�rˆˆ d ˆ j dd¡k�sjt‚ˆ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 )NrC   rB   r,   r+   r*   )ÚSÚU©r£   r¤   r¥   rt  c                 S   s0   t | tjƒr| jS t | jtjƒr(| jjS t‚d S r�   )r‚   r.   ZndarrayÚbaser-   Z_ndarrayr  ©r„   r9   r9   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�   r9   r|   )r¥   r9   r:   r”   
  s     zRTestDataFrameConstructors.test_dict_nocopy.<locals>.check_views.<locals>.<genexpr>rC   c                 3   s(   | ] }t |jtjƒrˆ|ƒˆ kV  qd S r�   ©r‚   r-   r.   r|   )r£   r¸  r9   r:   r”   
  s   þc                 3   s(   | ] }t |jtjƒrˆ|ƒˆ kV  qd S r�   rº  r|   )r¤   r¸  r9   r:   r”   
  s   þ)ÚsumrG   r�   rI   r¹  ©r£   r¤   r¥   r7   r¸  r9   r:   Úcheck_views
  s    "þûÿ	þûÿz?TestDataFrameConstructors.test_dict_nocopy.<locals>.check_viewsr   r³   rD   Tzwill attempt to setrm   rõ   é.   rz   rk   )F)r3   ÚSTRING_DTYPESr‰  r�  rŠ  r.   rU   r-   rx   r“  r¯   r   rì   rZ   rW   rX   rØ   rI   Útype)	r5   r‹  r¯   Zany_numeric_ea_dtypeZany_numpy_dtyperJ   r´   Zc_origr½  r9   r¼  r:   Útest_dict_nocopyà	  sH    ÿþý
	

,z*TestDataFrameConstructors.test_dict_nocopyc                 C   s2   t tddd�dgd�}t dgd�}t ||¡ d S )NrC   rŸ   rc   rÉ   r‡   r  r5  r9   r9   r:   Ú'test_from_series_with_name_with_columnsE
  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 )NrC   rB   r+   r*   r†   r=   rÆ   r£   r¤   r¥   r‡   )rÆ   r£   )rÆ   r¤   )rÆ   r¥   )r   r   r8  r3   r4   r5  r9   r9   r:   Útest_nested_list_columnsK
  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-05r+   rC  rC   rã   ©rC   r+   r*   r†   r=   rˆ  )r“  r›  rE   r2   rd   r0   r   rÄ  rI   rØ   r-   r
  ZIntervalIndexZfrom_breaksr.   Zr_r{  r3   r4   )
r5   Úpirš   r7   ÚiiZdata2rº   Zdata3rê   r8   r9   r9   r:   Ú1test_from_2d_object_array_of_periods_or_intervalsV
  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-dimensionalrm   rÜ   r  )r5   Zcol_aZcol_brv   r9   r9   r:   Útest_error_from_2darrayl
  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 )NrC   rB   r+   r£   r¤   r¥   F)rO   rˆ   r¯   r   r³   rµ  ©rO   r-   )
r   r.   r½   Z_valuesrI   rZ   rV   rd   r3   r4   r>  r9   r9   r:   Ú&test_from_dict_with_missing_copy_falsey
  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 )Nr@  rm   r£   r¤   r3  )rr   rs   rt   r   r.   rU   r  r9   r9   r:   Ú1test_construction_empty_array_multi_column_raisesŠ
  s    zKTestDataFrameConstructors.test_construction_empty_array_multi_column_raises)árê  rë  rì  r;   rL   rQ   r]   ra   ri   rw   rr   ÚmarkÚparametrizer…   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ø   r.   rU   rd   rû   r#   r$   r%   rý   r   r  r  r  r  r  r  r   rV   r#  r°   r+  r0  r4  r6  r;  r?  rJ  rO  rV  rZ  r]  r`  rb  rd  rh  rj  rm  rn  r}  r‰  r�  r”  r•  r   r   r   r	   r   r   rš  rž  r¢  r£  r¨  r°  r±  r¸  ZslowrÃ  rÅ  rä   r‰   r    r-   rÌ   rÆ  r“  ZBooleanDtypeZFloat64DtypeZ
Int64DtypeZStringDtyperÉ  rË  rÌ  rÎ  rÐ  rÓ  rÕ  rØ  rÙ  rÛ  rß  rà  râ  rï  rð  ró  rô  r÷  rù  rú  rü  rý  rK  r   rÿ  r   r  r  r  r	  r
  r  r  r  r  r  r  r  r"  r*  r.  r1  r4  r9  r:  r<  r>  r?  r@  rC  rE  rI  rR  rU  r[  r_  re  rg  r   r_   rp   rj   rh  ro  rq  rs  rv  rw  rx  r   rz  r{  r}  r~  r�  r‚  rƒ  r„  r‡  r3   ZALL_INT_NUMPY_DTYPESZALL_INT_EA_DTYPESZFLOAT_NUMPY_DTYPESZCOMPLEX_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Ë  r9   r9   r9   r:   r(   H   sô  
!óþ
ýþ
	

úþ
	
úþ



úþ

&	



4	
þýþ
=J
/"ûþ

üþ	

'
	

üþ	

2ùþ&ùþ
 Gøþøþùþ;(.8  ÿ4ùþ

ÿþýüûúþ
 ÿ		üþ	
ûþ
	d"ýþ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-  r2  )r“  r›  r   r.   rÎ   r_  rF   r   r3   ræ   rO   )r5   Zrng1r-  Zrng2r2  r7   r  r9   r9   r:   ÚAtest_frame_from_dict_of_series_overlapping_monthly_period_indexes’
  s    zhTestDataFrameConstructorIndexInference.test_frame_from_dict_of_series_overlapping_monthly_period_indexesc              	   C   sì  t ddd�}ttdƒ|d�}ttdƒ| d¡d�}ttdƒ| d¡d�}ttdƒƒ}t|||dœƒ}tt|jƒt|jƒ t|jƒ td�}t	 
|j|¡ t|||d	œƒ}tt|jƒt|jƒ t|jƒ td�}	t	 
|j|	¡ t|||d
œƒ}
tt|jƒt|jƒ t|jƒ td�}	t	 
|
j|	¡ t|||dœƒ}tt|jƒt|jƒ t|jƒ td�}t	 
|j|¡ d}tjt|d�� t||||dœƒ W 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 )Nr<   r+   rC  rN   r]  z
US/CentralrÊ   r,   )rÆ   rË   rb   )rb   rÆ   rË   )rË   rb   rÆ   z0Cannot join tz-naive with tz-aware DatetimeIndexrm   )rÆ   rb   rË   r"  )rÆ   rb   r"  )r"  rÆ   rb   )r   r   r‰   re   r   r   rä   rO   rd   r3   ræ   rr   rs   r  )r5   rK   r¢  r£  Zser3Zser4r3  Z	exp_indexrº   Z
exp_index3rê   Zdf4Z
exp_index4rv   r9   r9   r:   Ú/test_frame_from_dict_with_mixed_tzaware_indexes�
  sH     ÿ ÿ ÿ ÿzVTestDataFrameConstructorIndexInference.test_frame_from_dict_with_mixed_tzaware_indexesN)rê  rë  rì  rÐ  rÑ  r9   r9   r9   r:   rÎ  ‘
  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 ¡� t| ¡ dd� W 5 Q R X 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!if they cannot be cast losslesslyrm   rR   r,   r³   z)passing float-dtype values containing NaNr   z9Cannot convert non-finite values \(NA or inf\) to integer)r.   rÎ   r_  r3   rW   rX   r   ÚroundrV   r   rr   rs   rt   r2   )r5   r6   rv   r9   r9   r:   Ú"test_floating_values_integer_dtypeË
  s"    
zLTestDataFrameConstructorWithDtypeCoercion.test_floating_values_integer_dtypeN)rê  rë  rì  rÔ  r9   r9   r9   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 )'Ú&TestDataFrameConstructorWithDatetimeTZrA   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  rN   rk   rb   c                 S   s   g | ]}|  ¡ ‘qS r9   rL  rN  r9   r9   r:   r   ô
  s     zeTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypes.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r9   rL  rN  r9   r9   r:   r   õ
  s     r^  Údr_tzÚdatetimes_naiveÚdatetimes_with_tzrT  r™  )r   re   r   r   Útzinfor-   rI   rØ   r   r.   r3   r[   )
r5   rA   r^  rÙ  r7   Ztz_expectedrÚ  rÛ  rh   r8   r9   r9   r:   Ú*test_construction_preserves_tzaware_dtypesé
  s*    
ü
ù	zQTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypesÚpydtTFc           	   	   C   s¬  |}t d|d�}|r| ¡ }t dƒ}t t¡� td|gidd�}W 5 Q R X td|giƒ}t ||¡ t t¡� td|idgdd�}W 5 Q R X t ||¡ t t¡� t|gdd�}W 5 Q R X t ||¡ t t¡� ttj|gt	d�dd�}W 5 Q R X t ||¡ t t¡� t|dgdgdd�}W 5 Q R X t ||¡ t t¡� tt
|gƒgdd�}W 5 Q R X t ||¡ t t¡� t|ggdgdd�}W 5 Q R X t ||¡ d S )	NÚ2019r™  r   rT  r,   rÉ  rÑ  rB  )r   rM  r3   rW   rX   r   r4   r.   rU   rd   r   Zassert_equal)	r5   Ztz_aware_fixturerÞ  rA   rO  Úts_naiverh   r8   r7   r9   r9   r:   Ú'test_constructor_data_aware_dtype_naive  s6    "zNTestDataFrameConstructorWithDatetimeTZ.test_constructor_data_aware_dtype_naivec                 C   sˆ   t tdddd�dd�}tddd�}t||d	œƒ}|d
 jsBtdƒ‚|d
 jd
ksTt‚t |d
 t|d
d�¡ t |d t|dd�¡ d S )Nr\  r+   r˜  r?   rŸ   rc   Z20130110rC  r  rÆ   zM8[ns, US/Easternrb   )	r   r   r   r-   rI   rT   r3   r[   r   )r5   rg   r^  r7   r9   r9   r:   Útest_from_dict-  s    z5TestDataFrameConstructorWithDatetimeTZ.test_from_dictc                 C   sª   t ddddd�}t|ƒ}t |d t|dd�¡ tt|ƒƒ}t |d t|dd�¡ t dddd�}t|ƒ}t |d t|dd�¡ tt|ƒƒ}t |d t|dd�¡ d S )	Nr\  r+   r˜  rŸ   )r@   rA   rT   rc   r?   r   )r   r   r3   r[   r   )r5   r6  rº   r9   r9   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Í   rC  rN   rŸ   rÜ   )r   r   r   rY   )r5   r^  r€  r9   r9   r:   Ú+test_frame_dict_constructor_datetime64_1680K  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  rN   rb   )r   r   r   r   r
  rI   )r5   r^  rO  rÀ   r9   r9   r:   Ú+test_frame_datetime64_mixed_index_ctor_1681S  s    zRTestDataFrameConstructorWithDatetimeTZ.test_frame_datetime64_mixed_index_ctor_1681c                 C   sX   t ddddd�}t|dgd�}tdtddd�td	dd�td
dd�giƒ}t ||¡ d S )Nz20130101T10:00:00r+   r{  r˜  )rK  r@   r’  rA   Z
timestampsr‡   r™  z20130101T10:01:00z20130101T10:02:00)r   r   r   r3   r4   )r5   r^  rh   r8   r9   r9   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@)rF  éÒ  r¹  ç333333û?çÍÌÌÌÌÌ@)rr  rF  rë  )rç  rè  rF  rë  iÓ  rœ   )ré  rì  )rê  rí  r<  )r   r.   rV   r   r3   r4   )r5   rˆ   Úpoprh   r8   r9   r9   r:   Útest_nested_dict_constructionj  s    
þýzDTestDataFrameConstructorWithDatetimeTZ.test_nested_dict_constructionc                 C   sd   t dddd�}|j t¡ dd¡}t|ƒ}|jdks8t‚|j|j	k 
¡ sLt‚||k 
¡  
¡ s`t‚d S )Nz2016-04-05 04:30r+   r]  r?   rC   rã   rÄ  )r   rE   r2   rd   r0   r   rÄ  rI   rØ   r-   r
  )r5   rK   rš   r7   r9   r9   r:   Útest_from_tzaware_object_arrayy  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+0100r,   rÆ   rb   rË   r‡   rT  rW  zdatetime64[ns, CET])r.   rU   r   r“  rj   rd   r{  r   rØ   r
  rI   )r5   r6   r†  Zexpected_dtypesr9   r9   r:   Ú$test_from_tzaware_mixed_object_array‚  s,    ý

ý

ýõîýzKTestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_mixed_object_arrayc                 C   s:   t  d¡ d¡}t|dd�}t|ƒ d¡}t ||¡ d S )NrÍ   r¶  zdatetime64[ns, UTC]r,   )r.   r/   r0   r   r2   r3   r4   )r5   Z
array_dim2r7   r8   r9   r9   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 )NrC   rB   r+   ú'z' type is unorderedrm   r£   )rê  rr   rs   r  r   r   )r5   rÙ   rY   rv   r9   r9   r:   Ú!test_construction_from_set_raises©  s    zHTestDataFrameConstructorWithDatetimeTZ.test_construction_from_set_raisesc                 C   s>   t jdddd� dd¡}t|ƒ}tdd„ |jjD ƒƒs:t‚d S )	Nr   r)   rT  r,   r*   r+   c                 s   s   | ]}t |tƒV  qd S r�   )r‚   r   )r}   r6   r9   r9   r:   r”   ¹  s     zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelike.<locals>.<genexpr>)r.   r/   r0   r   r
  rG   r�   rI   r¾   r9   r9   r:   Ú+test_construction_from_ndarray_datetimelike´  s    zRTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelikec              	   C   sˆ   t j dd¡}t dg¡j}d}tjt|d�� t	|dg|d� W 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Í   rB   rª   z'len\(arrays\) must match len\(columns\)rm   rŸ   rB  r«   rW  rÉ   r‡   )
r.   rÎ   r_  r“  rU   r-   rr   rs   rt   r   )r5   r6   r-   rv   Zarr2r9   r9   r:   Ú>test_construction_from_ndarray_with_eadtype_mismatched_columns»  s    zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_with_eadtype_mismatched_columnsc              	   C   sn   dddgdddgg}t jtdd�� t|d	d
hd� W 5 Q R X t jtdd�� t|d	d
dhd� W 5 Q R X d S )NrC   rB   r+   r*   r†   r=   zindex cannot be a setrm   r£   r¤   rN   zcolumns cannot be a setr¥   r‡   r  r  r9   r9   r:   Ú"test_columns_indexes_raise_on_setsÆ  s
    zITestDataFrameConstructorWithDatetimeTZ.test_columns_indexes_raise_on_setsN)rê  rë  rì  rr   rÌ  rÍ  rÝ  rá  râ  rã  rä  rå  ræ  rï  rð  rñ  rò  ÚsetÚ	frozensetrô  rõ  rö  r÷  r9   r9   r9   r:   rÕ  è
  s$   

&	

rÕ  c                 C   s"   t | tƒr| jd S | jd S d S )Nr   r³   )r‚   r   rZ   r·  r9   r9   r:   Úget1Ï  s    

rú  c                   @   s¶   e Zd Zejeedgd�dd„ ƒZej 	dddg¡dd	„ ƒZ
d
d„ Zdd„ Zdd„ Zej 	dejejg¡dd„ ƒZej 	deejg¡dd„ ƒZej 	deejg¡dd„ ƒZdd„ ZdS )ÚTestFromScalarN©Úparamsc                    s�   |j }dtdƒi‰ ˆtkr$dgˆ d< |d kr:tjˆfˆ ŽS |tkrhˆtkrX‡ ‡fdd„S ‡ ‡fdd„S n$ˆtkr~‡ ‡fdd„S ‡ ‡fd	d„S d S )
NrO   rB   rÆ   rˆ   c                    s   ˆ| | dœfˆ |—ŽS )NrD   r9   ©r~   Úkwargs©Úextraru   r9   r:   r�   ä  s
   ÿ ÿz,TestFromScalar.constructor.<locals>.<lambda>c                    s   ˆd| ifˆ |—ŽS ©NrÆ   r9   rþ  r   r9   r:   r�   è  r�   c                    s   ˆ| | gfˆ |—ŽS r�   r9   rþ  r   r9   r:   r�   ë  r�   c                    s   ˆd| | gifˆ |—ŽS r  r9   rþ  r   r9   r:   r�   í  s
   
ÿ ÿ)Úparamr‰   r   r½  r¾  rK  r   )r5   r‹  ru   Úboxr9   r   r:   rŒ   ×  s    
zTestFromScalar.constructorr-   r^   ro   c                 C   s8   |t j|d�}t |j|k¡s"t‚t | ¡ ¡s4t‚d S rÍ  )r“  rj   r.   r
  rØ   rI   r   )r5   r-   rŒ   r„   r9   r9   r:   Útest_from_nat_scalarñ  s    z#TestFromScalar.test_from_nat_scalarc                 C   s(   t dƒ}||dd�}t|ƒ|ks$t‚d S )NrC   ro   r,   ©r   rú  rI   )r5   rŒ   r�  r„   r9   r9   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 )NrC   r^   r,   r  )r5   rŒ   Zfixed_now_tsrO  r„   r9   r9   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 )NrC   r,   )r   Zto_timedelta64rd   r‚   rú  r.   rŒ  rI   )r5   rŒ   r�  Ztd64r„   r9   r9   r:   Ú#test_from_timedelta64_scalar_object  s    z2TestFromScalar.test_from_timedelta64_scalar_objectÚclsc              	   C   s”   |ddƒ}t jdt jdi| }d}|t jkr: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 )Nrj   rk   ro   r^   zCannot castrl   z?dtype datetime64\[ns\] cannot be converted to timedelta64\[ns\]rm   r,   r*   )r.   rp   rŒ  rq   rr   rs   r  )r5   rŒ   r
  r!  r-   rv   r9   r9   r:   Ú(test_from_scalar_datetimelike_mismatched  s    

þÿ
z7TestFromScalar.test_from_scalar_datetimelike_mismatchedc                 C   sB   t dddƒ}|tjkr"t |d¡}||ƒ}tt|ƒƒ|ks>t‚d S )Né'  rC   r"  )r   r.   rp   rÀ  rú  rI   ©r5   rŒ   r
  r!  rh   r9   r9   r:   Ú test_from_out_of_bounds_datetime   s
    
z/TestFromScalar.test_from_out_of_bounds_datetimec                 C   sN   t dddƒt dddƒ }|tjkr.t |d¡}||ƒ}tt|ƒƒ|ksJt‚d S )Nr  rC   i²  r"  )r   r.   rŒ  rÀ  rú  rI   r  r9   r9   r:   Ú!test_from_out_of_bounds_timedelta)  s
    
z0TestFromScalar.test_from_out_of_bounds_timedeltac              	   C   sh   d}t d|d�}t dƒ}tjtdd�� ||dd�}W 5 Q R X t |jdk¡sRt‚t ||k¡sdt‚d S )Nr˜  rß  r™  zData is timezone-awarerm   r^   r,   )r   r3   rW   rX   r.   r
  rØ   rI   )r5   rŒ   rA   rO  rà  rh   r9   r9   r:   Útest_tzaware_data_tznaive_dtype2  s    z.TestFromScalar.test_tzaware_data_tznaive_dtype)rê  rë  rì  rr   Úfixturerä   rK  rŒ   rÌ  rÍ  r  r  r  r	  r.   rp   rŒ  r  r   r  r   r  r  r9   r9   r9   r:   rû  Ö  s   




rû  c                   @   sj   e Zd Zejddgd�dd„ ƒZejdd„ ƒZdd	„ Zd
d„ Zdd„ Z	dd„ Z
ejjddd�dd„ ƒZdS )ÚTestAllowNonNanoTFrü  c                 C   s   |j S r�   )r  )r5   r‹  r9   r9   r:   Úas_tdC  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†   zM8[s]r   r,   )	r.   r/   r2   r'   r€   r   Z_simple_newr-   r   )r5   r  rY   r9   r9   r:   r6   G  s
    zTestAllowNonNano.arrc                 C   s   t |ƒ}|j|jkst‚d S r�   )r   r-   rI   )r5   r6   rg   r9   r9   r:   Útest_index_allow_non_nanoP  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   r-   rI   )r5   r6   r  rg   r9   r9   r:   Útest_dti_tdi_allow_non_nanoT  s    z,TestAllowNonNano.test_dti_tdi_allow_non_nanoc                 C   s   t |ƒ}|j|jkst‚d S r�   )r   r-   rI   )r5   r6   r\   r9   r9   r:   Útest_series_allow_non_nano[  s    z+TestAllowNonNano.test_series_allow_non_nanoc                 C   s    t |ƒ}|jd |jkst‚d S r–   ©r   rØ   r-   rI   r¾   r9   r9   r:   Útest_frame_allow_non_nano_  s    z*TestAllowNonNano.test_frame_allow_non_nanozVstack_arrays converts TDA to ndarray, then goes through ensure_wrapped_if_datetimelike)ÚstrictÚreasonc                 C   s$   t d|iƒ}|jd |jks t‚d S r–   r  r¾   r9   r9   r:   Ú#test_frame_from_dict_allow_non_nanoc  s    z4TestAllowNonNano.test_frame_from_dict_allow_non_nanoN)rê  rë  rì  rr   r  r  r6   r  r  r  r  rÌ  Zxfailr  r9   r9   r9   r:   r  ?  s   

ýr  )BrQ  r   r   r   r   r   r½  rÀ  r   r¬  Únumpyr.   Znumpy.mar¥  Znumpy.ma.mrecordsr·  rr   rX  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_testingr3   Zpandas.arraysr   r   r   r   r   Zpandas.core.apir    rÕ   rÔ   r(   rÎ  rÒ  rÕ  rú  rû  r  r9   r9   r9   r:   Ú<module>   sp   D
ø                    ]9 hi