o
    $j                    @   s  d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZm
Z
mZ d dlZd dlZd dlZd dlmZ d dlmZ d dlZd dlZd dlmZ d d	lmZ d d
lmZ d dlm  mZ d dl m!Z! d dl"m#Z#m$Z$m%Z%m&Z& d dl'Z(d dl'm)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 d dl8m9Z: d dl;m<Z<m=Z=m>Z>m?Z?m@Z@ g dZAg dZBG dd dZCG dd dZDG dd dZEG dd dZFdd ZGG dd dZHG dd dZIdS )    N)OrderedDictabcdefaultdict
namedtuple)Iterator)make_dataclass)datedatetime	timedelta)ma)mrecords)lib)np_version_gt2)IntCastingNaNError)is_integer_dtype)DatetimeTZDtypeIntervalDtypeNumpyEADtypePeriodDtype)CategoricalCategoricalIndex	DataFrameDatetimeIndexIndexInterval
MultiIndexPeriod
RangeIndexSeries	Timedelta	Timestampcut
date_rangeisna)DatetimeArrayIntervalArrayPeriodArraySparseArrayTimedeltaArray)Zfloat16Zfloat32float64)uint8uint16uint32uint64int8Zint16int32int64c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zejdddgdd Zdd Zejddd dd dd dd d d d!d d"d d#d d$d d%d d&d gd'd( Zejdd)d d*d gd+d, Zejd-g ged.ed/fg g ged0ed/fd1d2 d3D ged.ed/fgd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zejd@dA ZejdBdC ZdDdE ZdFdG ZejdHdIi gdId.dJdKdLgdMi ggdNdO Z dPdQ Z!dRdS Z"dTdU Z#dVdW Z$dXdY Z%ejdZe&j'd[ge(d\e&'d0d] gd^ge&j'd_ge(d\e&'d`gd0d]  d0 ggdadb Z)ejdZe&j'd.ge&j*d\e&j'd.ge&j+d\e&j'd.ge&j,d\e&*d.ge&+d.ge&,d.ggdcdd Z-dedf Z.dgdh Z/didj Z0dkdl Z1dmdn Z2dodp Z3dqdr Z4dsdt Z5ejdud0e&j6dvdwgdxdy Z7ejdzd0e&j6dve8d{gd|d} Z9ejdze&j6dve8d{gd~d Z:dd Z;dd Z<dd Z=dd Z>dd Z?dd Z@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLejddd dfdd dfdd dfdd dfgdd ZMdd ZNdd ZOejdePdeQdfeRd/ddeSddfeTdddeUdddfgdd ZVdd ZWddÄ ZXddń ZYddǄ ZZej[dȡddʄ Z\dd̄ Z]dd΄ Z^ddЄ Z_ejddve`ead҃ddge(e&jbfdvdvddgde&cdfdve`ead҃ddgede&cdաfi dvdJdKgdve&jbfdd.ie`ead҃e`dփede&cdաfgdd؄ Zeejdg dڢdefjgfg dܢdefjhfg dޢdefjifg ddefjjffdd Zkdd Zldd Zmdd Zndd Zodd Zpdd Zqdd Zrdd Zsdd Ztdd Zudd ZvejdeTdggdeTdigdeTdgideTdwdigdd Zxd d Zydd Zzdd Z{dd Z|dd	 Z}d
d Z~dd Zdd Zdd Zdd Zejdeegdd Zejdeegdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zejd'd3g fd3g fd(d3d3gfd(g g gfg g fg g gfd.gd0gfd.gd0ggfg d)g d*fg d)g d*gfgd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zejd?g d@dAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Zd[d\ Zd]d^ Zejd_e&'dvdvdvdve dvge&'dvdve dvge&d`gdvgge&d`gefjggdvge&d`ggdvgefjggefjge&d`ggefjgdvgggdadb Zejdcg ddejdeg dfdgdh Zejdcg ddejdeg didjdk Zdldm Zdndo Zdpdq Zdrds Zdtdu Zejdveg d)g d*gd.e&j6gdweg d)g d*gdxdye&j6gdzeg d{g d|ge&j6dxdye&j6gdzeg d}g d|ge&j6dxdye&j6gdzeg d}g d|ge&j6d.d0d0gdzgd~d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zejdejej ej ej dd Zejdejej ej dd ZƐdd Zejjejdg ddd Zɐdd Zejdee`ded.e&j6e&j6e&j6geeRd/d.eRd.dgeefjϐddddgdd ZАdd Zѐdd Zej[ddd ZӐdd ZԐdd ZՐdd Z֐dd Zאdd Zejdd.d0gddge`eِdd0dde`eِdd0dddeRd/ddggdd Zڐdd ZejdddgddÄ ZܐdĐdń ZݐdƐdǄ ZސdȐdɄ Zߐdʐd˄ Zejdd.gd0gge&'d.gd0ggfe&'d.gd0ggd.gd0ggfe&'d.gd0gge&'d.gd0g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܄ ZdvS (  TestDataFrameConstructorsc                 C   s@   t ddd}t|td}t|tdd}t|| d S )N         dtypestr)nparangereshaper   r7   astypetmassert_frame_equal)selfarrdfexpected rB   e/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/frame/test_constructors.py,test_constructor_from_ndarray_with_str_dtypeN   s   zFTestDataFrameConstructors.test_constructor_from_ndarray_with_str_dtypec                 C   sv   t dddd}|jdd}t|}t|d d df |d d df d	}t|| |s7t|jjdks9J d S d S )
N
2016-01-01   
US/Pacificperiodstzr4      r      r   rL   )	r"   _datar:   r   r<   r=   len_mgrblocks)r>   using_array_managerdtiZdtar@   rA   rB   rB   rC   &test_constructor_from_2d_datetimearrayV   s   &z@TestDataFrameConstructors.test_constructor_from_2d_datetimearrayc                 C   sv   t d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nsdtr   indexrL   )rV   value)r    Z
tz_convertas_unitr   r<   r=   )r>   rV   r@   rA   rB   rB   rC   )test_constructor_dict_with_tzaware_scalara   s   
zCTestDataFrameConstructors.test_constructor_dict_with_tzaware_scalarc                 C   s   t dt jgddgg}d}tjt|d t|dd W d    n1 s&w   Y  tjt|d t|d ddd	 W d    d S 1 sGw   Y  d S )
NrL   rK   r4   9Cannot convert non-finite values \(NA or inf\) to integermatchi8r5   r   r6   name)r8   arraynanpytestraisesr   r   r   )r>   r?   msgrB   rB   rC   -test_construct_ndarray_with_nas_and_int_dtypeo   s   "zGTestDataFrameConstructors.test_construct_ndarray_with_nas_and_int_dtypec                 C   s0   t t t g}|d jtdksJ d S )Nr   M8[ns])r   r	   nowr6   r8   r>   r@   rB   rB   rC   %test_construct_from_list_of_datetimesz   s   z?TestDataFrameConstructors.test_construct_from_list_of_datetimesc                 C   s\   t ddgdd}|d}ttj| dddd}|j|jks"J t|}t|| d S )Nz2013-1-1 13:00z2013-1-2 14:00Bra   rG   objectr5   )	r   tz_localizer   r8   rb   tolistr6   r<   assert_series_equal)r>   ZnaiveidxrA   resultrB   rB   rC   +test_constructor_from_tzaware_datetimeindex~   s   
zETestDataFrameConstructors.test_constructor_from_tzaware_datetimeindexc                 C   P   d}t dddg|ddgi}|jdd}dd|didd|dig}||ks&J d S )	N_barL   rK   r4   r3   recordsZorientr   to_dict)r>   Zcol_underscorer@   dref_drB   rB   rC   6test_columns_with_leading_underscore_work_with_to_dict   
   zPTestDataFrameConstructors.test_columns_with_leading_underscore_work_with_to_dictc                 C   ru   )	NZ1_brw   rL   rK   r4   r3   rx   ry   rz   )r>   Zcol_with_numr@   r|   r}   rB   rB   rC   Atest_columns_with_leading_number_and_underscore_work_with_to_dict   r   z[TestDataFrameConstructors.test_columns_with_leading_number_and_underscore_work_with_to_dictc                 C   st   t dd}t j|gtd}|tu r|dd}d}tjt|d ||dd W d    d S 1 s3w   Y  d S )NNaTrU   r5   rL   =Invalid type for timedelta scalar: <class 'numpy.datetime64'>r]   m8[ns])	r8   
datetime64rb   rn   r   r:   rd   re   	TypeError)r>   frame_or_seriesZnatr?   rf   rB   rB   rC   ,test_array_of_dt64_nat_with_td64dtype_raises   s   "zFTestDataFrameConstructors.test_array_of_dt64_nat_with_td64dtype_raiseskindmMc                 C   sx  |dkr	d}t }nd}t}tjddd|dd}|tu r'|d d d	f }||td}|jj	d	 j
tks8J t|jj	d	  d	 |sGJ |||td}|jj	d	 j
tksZJ t|jj	d	  d	 |siJ |||ttd}|jj	d	 j
tks~J t|jj	d	  d	 |sJ |tu rd
d |D }||td}|jj	d	 j
tksJ t|jj	d	  d	 |sJ d S d S )Nr   rh   r   rF   r_   r5   r4   rK   r   c                 S      g | ]}t |qS rB   r   .0xrB   rB   rC   
<listcomp>       zXTestDataFrameConstructors.test_datetimelike_values_with_object_dtype.<locals>.<listcomp>)r    r   r8   r9   viewr:   r   rn   rP   arraysr6   
isinstanceravelr   r   )r>   r   r   r6   Zscalar_typer?   objZsersrB   rB   rC   *test_datetimelike_values_with_object_dtype   s0   zDTestDataFrameConstructors.test_datetimelike_values_with_object_dtypec                 C   st   t tddd}t tddd}t|dgd}tg dgd}t|| t|dgd}tg dgd}t|| d S )N   rL   rm   r   columns)r   ranger   r<   r=   )r>   r   yrs   rA   rB   rB   rC   )test_series_with_name_not_matching_column   s   zCTestDataFrameConstructors.test_series_with_name_not_matching_columnconstructorc                   C   s   t  S Nr   rB   rB   rB   rC   <lambda>   s    z"TestDataFrameConstructors.<lambda>c                   C   s   t d S r   r   rB   rB   rB   rC   r          c                   C   s   t dS NrB   r   rB   rB   rB   rC   r      r   c                   C   s   t g S r   r   rB   rB   rB   rC   r      r   c                   C   s   t dd dD S )Nc                 s       | ]}|V  qd S r   rB   r   _rB   rB   rC   	<genexpr>       5TestDataFrameConstructors.<lambda>.<locals>.<genexpr>rB   r   rB   rB   rB   rC   r      s    c                   C   s   t tdS Nr   r   r   rB   rB   rB   rC   r          c                   C   s
   t d dS Ndatar   rB   rB   rB   rC   r         
 c                   C   s
   t ddS )NrB   r   r   rB   rB   rB   rC   r      r   c                   C   s
   t g dS r   r   rB   rB   rB   rC   r      r   c                   C   s   t dd dD dS )Nc                 s   r   r   rB   r   rB   rB   rC   r      r   r   rB   r   r   rB   rB   rB   rC   r      r   c                   C   s   t tddS )Nr   r   r   rB   rB   rB   rC   r      s    c                 C   s@   t  }| }t|jdksJ t|jdksJ t|| d S r   )r   rO   rX   r   r<   r=   r>   r   rA   rs   rB   rB   rC   test_empty_constructor   s
   z0TestDataFrameConstructors.test_empty_constructorc                   C   s   t i S r   r   rB   rB   rB   rC   r      r   c                   C   s
   t i dS r   r   rB   rB   rB   rC   r      r   c                 C   sR   t tdtdd}| }t|jdksJ t|jdksJ tj||dd d S )Nr   rX   r   T)Zcheck_index_type)r   r   rO   rX   r   r<   r=   r   rB   rB   rC   #test_empty_constructor_object_index   s
   z=TestDataFrameConstructors.test_empty_constructor_object_indexz)emptylike,expected_index,expected_columnsrL   r   rK   c                 c   r   r   rB   r   rB   rB   rC   r     r   z#TestDataFrameConstructors.<genexpr>rB   c                 C   s$   t ||d}t |}t|| d S )Nr   r   r<   r=   )r>   Z	emptylikeZexpected_indexZexpected_columnsrA   rs   rB   rB   rC   test_emptylike_constructor   s   	z4TestDataFrameConstructors.test_emptylike_constructorc                 C   s$   |rdnt j}|d j|ksJ d S )Nr7   foo)r8   object_r6   )r>   Zfloat_string_frameusing_infer_stringr6   rB   rB   rC   test_constructor_mixed	  s   z0TestDataFrameConstructors.test_constructor_mixedc                 C   s   d}t jt|d tdg ditjd W d    n1 sw   Y  ttd}td |d< d}t jt|d td|d	< W d    n1 sOw   Y  td |d
< d S )Nz!could not convert string to floatr]   rw   rw   bcr5   )r3   rK   r   z5Expected a 1D array, got an array with shape \(4, 2\)testZfoo2)rd   re   
ValueErrorr   r8   r)   onesrp   )r>   rf   r@   rB   rB   rC   test_constructor_cast_failure  s   z7TestDataFrameConstructors.test_constructor_cast_failurec                 C   sD   t dgdgdgd}t |tdd}d|d< |d d	 dks J d S )
N      ?       @      @)col1col2col3Tr6   copyg      i@r   r   )r   float)r>   Zorig_dfZnew_dfrB   rB   rC   test_constructor_dtype_copy"  s   z5TestDataFrameConstructors.test_constructor_dtype_copyc                 C   s   t ddgg}t ||d jd}|r"d|jd< |jd dks J d S t| d|jd< W d    n1 s7w   Y  |jd dksEJ d S )NrL   rK   r   r5   c   r   r   )r   r6   ilocvaluesr<   Zassert_cow_warning)r>   using_copy_on_writewarn_copy_on_writer@   should_be_viewrB   rB   rC   ,test_constructor_dtype_nocast_view_dataframe*  s   
zFTestDataFrameConstructors.test_constructor_dtype_nocast_view_dataframec                 C   s   t ddgddggdd}|s*|s*t |j|d jd}d|jd	< |jd	 dks(J d S t |j|d jd}|jjd jjs>J d S )
NrL   rK   r4   r3   r0   r5   r   a   r   )r   r   r6   r   rP   r   flagsc_contiguous)r>   rR   r   r   r@   r   df2rB   rB   rC   +test_constructor_dtype_nocast_view_2d_array7  s   
zETestDataFrameConstructors.test_constructor_dtype_nocast_view_2d_arrayc                 C   s   t jddgdd}t|dd}|r'|d jjdkrnt |d  |s&J n	t |j|s0J t|tdd	}t |j|s@J d S )
Nrw   r   rn   r5   Fr   r   pyarrowr   	r8   rb   r   r6   Zstorageshares_memoryZto_numpyr   rn   r>   r   r?   r@   rB   rB   rC   "test_1d_object_array_does_not_copyG  s   z<TestDataFrameConstructors.test_1d_object_array_does_not_copyc                 C   s   t jddgddggdd}t|dd}|r+|d	 jjd
krnt |d	  |s*J n	t |j|s4J t|tdd}t |j|sDJ d S )Nrw   r   r   r|   rn   r5   Fr   r   r   r   r   r   rB   rB   rC   "test_2d_object_array_does_not_copyY  s   z<TestDataFrameConstructors.test_2d_object_array_does_not_copyc                 C   s@   t ddgd dggtd}|jd d u sJ |jd dksJ d S )NrL   2rw   r5   rL   r   rM   )r   rn   locrj   rB   rB   rC    test_constructor_dtype_list_datak  s   z:TestDataFrameConstructors.test_constructor_dtype_list_datac                 C   s   t  }td}tjtdd t |g W d    n1 sw   Y  tjtdd t |g W d    n1 s;w   Y  t dddgi}tjtdd t ||g W d    d S 1 saw   Y  d S )Nr   zshape=\(1, 0, 0\)r]   ArL   rK   zshape=\(2, 2, 1\))r   r8   emptyrd   re   r   )r>   rw   r   rB   rB   rC   "test_constructor_list_of_2d_raisesp  s   
"z<TestDataFrameConstructors.test_constructor_list_of_2d_raisesztyp, adr   r   barr   rl   Cintc                 C   s   |dkrt }dd |D }n|dkrt}dd |D }t||D ]\}}|j|ks+J q |tt|| t|}tt  }|D ]}||v rO|j| |ksOJ q@d S )Nr   c                 S   s(   g | ]}t jt jd d|dqS )rK   
   r5   )r8   rb   randomdefault_rngr   r|   rB   rB   rC   r     s    zKTestDataFrameConstructors.test_constructor_mixed_dtypes.<locals>.<listcomp>r   c                 S   s,   g | ]}t jt jd jddd|dqS )rK   r   )sizer5   )r8   rb   r   r   Zintegersr   rB   rB   rC   r     s    )MIXED_INT_DTYPESMIXED_FLOAT_DTYPESzipr6   updatedictr   dtypes)r>   typadr   r   r|   rw   r@   rB   rB   rC   test_constructor_mixed_dtypes~  s(   z7TestDataFrameConstructors.test_constructor_mixed_dtypesc                 C   sj   t jddt j}t jddt j}t||d}|j|jjks*J |j|j	jks3J d S )NrK   r   rw   r   )
r8   r   r   r;   Z	complex64
complex128r   r6   rw   r   r>   rw   r   r@   rB   rB   rC   test_constructor_complex_dtypes  s
   z9TestDataFrameConstructors.test_constructor_complex_dtypesc                 C   sx   t ddd gi|d}| }t dddgi}t|| |jd d u s%J t ddtjgi|d}t|jd s:J d S )Nr   r   r5   FTr   )r   r#   r<   r=   r   r8   rc   isnan)r>   string_dtyper@   rs   rA   rB   rB   rC   $test_constructor_dtype_str_na_values  s   z>TestDataFrameConstructors.test_constructor_dtype_str_na_valuesc           	      C   s   |j dd}t|jjd d d |j_|j}t|}t|jt	|jj t||d}t|jt	|jj t|j| t
t|d d d }t||ddgd}t||djddgd}t|| d S )NFrW   r   rl   r   r   )Z
to_recordslistr6   namesrX   r   r<   assert_index_equalr   r   r8   r9   rO   reindexr=   )	r>   float_frameZrecrX   r@   r   rngdf3rA   rB   rB   rC   test_constructor_rec  s   z.TestDataFrameConstructors.test_constructor_recc                 C   s8   t tjdtdtjdtdd}|jjtjksJ d S )Nr   r5   rM   )r   r8   r   boolzerosr   r6   bool_rj   rB   rB   rC   test_constructor_bool  s   "z/TestDataFrameConstructors.test_constructor_boolc                 C   s   t jdd tddD t jd}td|i}|d jt jks J g d}dd	g}t jt|f|d}||d d < t|}|d
 jt jksFJ d S )Nc                 S   s   g | ]}d | qS )            rB   r   irB   rB   rC   r     r   zMTestDataFrameConstructors.test_constructor_overflow_int64.<locals>.<listcomp>rL   r   r5   rw   ))l   Y2<   )l   FJLW]L*    )l   M:M^ -   )l   8Ma i  )l   r*R3_PvN r  )uidu8)Zscorer  r  )r8   rb   r   r-   r   r6   r
  rO   )r>   r   rs   Zdata_scoresr6   r   Z	df_crawlsrB   rB   rC   test_constructor_overflow_int64  s    z9TestDataFrameConstructors.test_constructor_overflow_int64r   r  r5   A   l           l        l        c                 C   s:   |d }t |}|d jtksJ |d d |ksJ d S r   )r   r6   rn   r>   r   rY   rs   rB   rB   rC   test_constructor_int_overflow  s   z7TestDataFrameConstructors.test_constructor_int_overflowc                 C   s<   |d }t |}|d j|jksJ |d d |ksJ d S r   r   r6   r  rB   rB   rC   test_constructor_numpy_uints  s   z6TestDataFrameConstructors.test_constructor_numpy_uintsc                 C   s`   d}t t|}tjd| dd |D }ttt|dgg| }|t |j	ks.J d S )Nd   rK   c                 S   s   g | ]}d |dqS )r   r|   rB   r  rB   rB   rC   r   
      zJTestDataFrameConstructors.test_constructor_ordereddict.<locals>.<listcomp>r   )
r  r   r8   r   r   shuffler   r   r   r   )r>   ZnitemsZnumsrA   r@   rB   rB   rC   test_constructor_ordereddict  s   z6TestDataFrameConstructors.test_constructor_ordereddictc                 C   sP  t tjdtjdtdddd}|dd  }t||d}t|dks%J t|dks-J t|d	 |	d	 t t
tjgd |jg|jd
d}t||d
  t||dg dd}t|t|ksgJ d	|vsmJ t|d  swJ tt dksJ d}tjt|d tdddg dd W d    d S 1 sw   Y  d S )N   r5   
2020-01-01rI   rW   r   r   r      r   r   rX   ra   )r   r   Zcol4r   r   r   <Mixing dicts with non-Series may lead to ambiguous ordering.r]   rw   r   r   r   r   rl   )r   r8   r9   r)   r"   r   rO   r<   rq   renameZconcatenaterc   r   rX   r#   allrd   re   r   )r>   datetime_seriesdatetime_series_shortframeexprf   rB   rB   rC   test_constructor_dict  s4   "z/TestDataFrameConstructors.test_constructor_dictc                 C   s,   t ddddi}t|jtddg d S )Nr   rL   rK   1r   r/  r   )r   r<   r  rX   r   r>   r+  rB   rB   rC   test_constructor_dict_length16  s   z7TestDataFrameConstructors.test_constructor_dict_length1c                 C   s*   t g d}ti |d}|j|u sJ d S )Nr   rL   rK   rW   )r   r   rX   r>   rr   r+  rB   rB   rC    test_constructor_dict_with_index;  s   z:TestDataFrameConstructors.test_constructor_dict_with_indexc                 C   sL   t g d}ti ||d}|j|u sJ |j|u sJ t|jdks$J d S )Nr2  r   r4   )r   r   rX   r   rO   _seriesr3  rB   rB   rC   ,test_constructor_dict_with_index_and_columnsA  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   rl   r   r   Texact)r   r<   r  rX   r   r0  rB   rB   rC   $test_constructor_dict_of_empty_listsI  s   z>TestDataFrameConstructors.test_constructor_dict_of_empty_listsc                 C   s^   t dd idgd}t dd gidgd}|ddd u sJ |ddd u s'J t|| d S )Nrw   r   rW   )r   
_get_valuer<   r=   )r>   Z
frame_noneZframe_none_listrB   rB   rC   test_constructor_dict_with_noneN  s
   z9TestDataFrameConstructors.test_constructor_dict_with_nonec                 C   s   d}t jt|d tddi W d    n1 sw   Y  t jt|d tddidgd W d    d S 1 s;w   Y  d S )N2If using all scalar values, you must pass an indexr]   rw   gffffff?r   rd   re   r   r   r>   rf   rB   rB   rC   test_constructor_dict_errorsW  s   "z6TestDataFrameConstructors.test_constructor_dict_errorsscalarNDc                 C   s.   t d|idgd}t dgd}t|| d S )Nrw   r   r   r   )r>   r@  rs   rA   rB   rB   rC   %test_constructor_invalid_items_unuseda  s   z?TestDataFrameConstructors.test_constructor_invalid_items_unusedrY   rc   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 )NrL   r4   rw   r   r3   rK   r   c                    "   i | ]} | t | d qS rW   r   r   r   colsrr   r   rB   rC   
<dictcomp>n     " zKTestDataFrameConstructors.test_constructor_dict_nan_key.<locals>.<dictcomp>ZaxisrF   r0   r5   r   rW   )r   r   sort_valuesr8   r9   r:   r<   r=   r>   rY   r   rs   rA   rB   rF  rC   test_constructor_dict_nan_keyh  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)            rw   rK   r   r4   rL   r3   r   c                    rC  rD  r   rE  rF  rB   rC   rH    rI  zQTestDataFrameConstructors.test_constructor_dict_nan_tuple_key.<locals>.<dictcomp>rJ  rF   r0   r5   r   rW   )	r   r   r   rK  r8   r9   r:   r<   r=   rL  rB   rF  rC   #test_constructor_dict_nan_tuple_key{  s   z=TestDataFrameConstructors.test_constructor_dict_nan_tuple_keyc                 C   s`   t tjdtjdtdddd}|d d }||d}t|d}t|td	d
}t|| d S )Nr   r5   r   r!  rW   r   r   rw   r   bar   r   )	r   r8   r9   r)   r"   r   r  r<   r=   )r>   r)  r*  r|   r+  rA   rB   rB   rC   %test_constructor_dict_order_insertion  s   

z?TestDataFrameConstructors.test_constructor_dict_order_insertionc                 C   sR   t tjddgdddgitjdgd}t ddgddggtjdgd}t|| d S )NrL   rK   r4   r   )r   r8   rc   r<   r=   r>   rs   rA   rB   rB   rC   )test_constructor_dict_nan_key_and_columns  s   $zCTestDataFrameConstructors.test_constructor_dict_nan_key_and_columnsc                 C   sl   g d}t |}t||d}t|j  sJ g d}t |}t||d}t|j  s4J d S )N)rK   r4   r4   r4   rZ  r   )rZ  rY  rZ  )r   from_tuplesr   r#   r   r   r(  )r>   tuplesmir@   rB   rB   rC   test_constructor_multi_index  s   

z6TestDataFrameConstructors.test_constructor_multi_indexc                 C   s   t dggdggddgd}t ddgt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 )	NrL   rK   r   rX   r0   r5   r   )Zlevelscodesr   )r   r   r   r<   r=   r>   r@   rA   rB   rB   rC   test_constructor_2d_index  s   z3TestDataFrameConstructors.test_constructor_2d_indexc                 C   s  d}t jt|d ttddgd W d    n1 sw   Y  d}t jt|d tddd	g d
d W d    n1 sCw   Y  d}t jt|d ttddg dtdddd W d    n1 sow   Y  t	g dg}d}t jt|d tdgt
d|d W d    n1 sw   Y  t	g d}d}t jt|d tdgt
d|d W d    n1 sw   Y  t jtdd ttdg ddgd W d    n1 sw   Y  d}t jt|d ttjddg ddgd W d    n	1 sw   Y  d}t jt|d ttjddd d!gddgd W d    n	1 s?w   Y  d"}t jt|d tt
d#t
d#d$fd%d& W d    n	1 sfw   Y  d'}t jt|d td(d)d	 W d    d S 1 sw   Y  d S )*Nz)Empty data passed with indices specified.r]   r   rL   rW   r%  rw   r   r   r   r&  z:Shape of passed values is \(4, 3\), indices imply \(3, 3\)r2   )r3   r4   r   r   baz
2000-01-01r4   r!  r_  r3   r   rF   z:Shape of passed values is \(1, 3\), indices imply \(1, 4\)r3   rX   r   r   z:Shape of passed values is \(3, 1\), indices imply \(1, 4\)Must pass 2-d inputr4   r4   r4   r   :Shape of passed values is \(2, 3\), indices imply \(1, 3\)rK   rY  :Shape of passed values is \(2, 3\), indices imply \(2, 2\)r   rl   z,2 columns passed, passed data had 10 columnsr      )r   Ztwosr   r<  FT)rd   re   r   r   r8   r   r9   r:   r"   rb   r   r
  r   r   )r>   rf   r?   rB   rB   rC   test_constructor_error_msgs  sj   
$z5TestDataFrameConstructors.test_constructor_error_msgsc                 C   s|   |dd t dD |dd t dD d}t|}tdd | D }t|| || }t|}t|| d S )Nc                 s       | ]	}|d | fV  qdS )g      $@NrB   r   rB   rB   rC   r          zKTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<genexpr>r   c                 s   rn  )g      4@NrB   r   rB   rB   rC   r     ro  r"  c                 S   s   i | ]\}}|t | qS rB   )r   items)r   colvalrB   rB   rC   rH    s    zLTestDataFrameConstructors.test_constructor_subclass_dict.<locals>.<dictcomp>)r   r   rp  r<   r=   )r>   Zdict_subclassr   r@   ZrefdfrB   rB   rC   test_constructor_subclass_dict  s   z8TestDataFrameConstructors.test_constructor_subclass_dictc                 C   st   i }t j|jd |jd df< | D ]\}}tt}||  |||< qt	|}|j
|jd}t|| d S )Nr   rl   rW   )r8   rc   r   rX   rp  r   r   r   r{   r   r  r<   r=   )r>   r  r   kvdctr+  rA   rB   rB   rC   test_constructor_defaultdict  s   
z6TestDataFrameConstructors.test_constructor_defaultdictc                 C   sD   t g dg}tdgdgdgdgdg dd}t|j| d S )N)      @r   r   r   rx  r   r   r   )r|   r   r   rw   r   )r8   rb   r   r<   assert_numpy_array_equalr   )r>   rA   r@   rB   rB   rC   test_constructor_dict_block  s   z5TestDataFrameConstructors.test_constructor_dict_blockc                 C   s   dddddddd}t |td	}t|d
ksJ |d jtjks$J |d jtjks.J t |}t|d
ks:J |sF|d jtjksGJ 	 |d jtjksQJ d S )NrL   rK   r.  r/  r   3)r/  r   r{  r&  r5   r4   rl   r   )r   r   rO   r6   r8   r)   r   )r>   r   	test_datar+  rB   rB   rC   test_constructor_dict_cast   s   z4TestDataFrameConstructors.test_constructor_dict_castc                 C   s   t ttddd tdD t ttdtjddd}tjt	dd t
|td	 W d    d S 1 s:w   Y  d S )
Nrl  c                 S   s   g | ]}d | qS )Zword_rB   r  rB   rB   rC   r   0      zITestDataFrameConstructors.test_constructor_dict_cast2.<locals>.<listcomp>   rK   r&  zcould not convert stringr]   r5   )r   r   r   r8   r   r   standard_normalrd   re   r   r   r   )r>   r|  rB   rB   rC   test_constructor_dict_cast2-  s   "z5TestDataFrameConstructors.test_constructor_dict_cast2c                 C   s2   ddt jdi}t|}t|d d tsJ d S )NZCol1zA String)ZRow1Row2r  )r8   rc   r   r   r   )r>   r|   r@   rB   rB   rC   !test_constructor_dict_dont_upcast6  s   z;TestDataFrameConstructors.test_constructor_dict_dont_upcastc                 C   s<   t ddgddggddgddgd}t|d d tsJ d S )NrL   rK   rw   r   r   )r   r   r   )r>   dmrB   rB   rC   "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rL   rK   r4   rf  r   c                 S   s   i | ]	\}}|t |qS rB   )r  )r   rt  ru  rB   rB   rC   rH  D  s    zMTestDataFrameConstructors.test_constructor_dict_of_tuples.<locals>.<dictcomp>FZcheck_dtype)r   rp  r<   r=   r>   r   rs   rA   rB   rB   rC   test_constructor_dict_of_tuples?  s   
z9TestDataFrameConstructors.test_constructor_dict_of_tuplesc                 C   sB   t dt ddd}t|}tg dg dd}t|| d S )Nr4   rF   r   r2  )r4   r3   r   r   r   r<   r=   r  rB   rB   rC   test_constructor_dict_of_rangesG  s   z9TestDataFrameConstructors.test_constructor_dict_of_rangesc                 C   sH   t tdttdd}t|}tg dg dd}t|| d S )Nr4   r   r2  rK   rL   r   )iterr   reversedr   r<   r=   r  rB   rB   rC   "test_constructor_dict_of_iteratorsO  s   z<TestDataFrameConstructors.test_constructor_dict_of_iteratorsc                 C   sX   dd t dD dd tt dD d}t|}tg dg dd}t|| d S )Nc                 s   r   r   rB   r  rB   rB   rC   r   Y  r   zPTestDataFrameConstructors.test_constructor_dict_of_generators.<locals>.<genexpr>r4   r   r2  r  )r   r  r   r<   r=   r  rB   rB   rC   #test_constructor_dict_of_generatorsW  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   rL   rK   )r  r  r  jr  r  rF   r   r3         	   ))rw   rw   rS  )r   r   c                 S      g | ]}|d  qS rL   rB   r   rB   rB   rC   r   g  r   zNTestDataFrameConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   r  r   rB   r   rB   rB   rC   r   g  r   rW   g     ^@o   )r   r  r  r  zc                 S   r  r  rB   r   rB   rB   rC   r   r  r   c                 S   r  r  rB   r   rB   rB   rC   r   r  r   F)Ztupleize_colsr_  )sortedrp  r   r   r[  TrX   r<   r=   insertr   r  r   )r>   r|   Z_dr@   rA   rB   rB   rC    test_constructor_dict_multiindex^  s6   


 z:TestDataFrameConstructors.test_constructor_dict_multiindexc           	   	      s   g d  fdd}|t j}|dd }|t}tdd d d dd dd d dd d d	d dd d d d
dgdd  D d}t|}t|}t|}t|| t|| t|| d S )N)z
1984-02-19z
1988-11-06z
1989-12-03z
1990-03-15c                    s    fddt D S )Nc                    "   i | ]\}}| |d | iqS rK   rB   r   r  sr   rB   rC   rH  ~  rI  ziTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<dictcomp>)	enumerater  Zdates_as_strr  rC   create_data}  s   zUTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S      t | dS )Nz%Y-%m-%d)r	   strptimer   rB   rB   rC   r     r   zRTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>r   r   rL   rK   r4   rK   r3   rF   c                 S   r   rB   )r    )r   rV   rB   rB   rC   r     r   zTTestDataFrameConstructors.test_constructor_dict_datetime64_index.<locals>.<listcomp>rW   )r8   r   r    r   r<   r=   )	r>   r  Zdata_datetime64Zdata_datetimeZdata_TimestamprA   Zresult_datetime64Zresult_datetimeZresult_TimestamprB   r  rC   &test_constructor_dict_datetime64_indexy  s&   

z@TestDataFrameConstructors.test_constructor_dict_datetime64_indexz
klass,namec                 C   r  NrA  )r8   timedelta64r  rB   rB   rC   r     r   r  c                 C   s
   t | dS )N)days)r
   r  rB   rB   rC   r     r   Zpytimedeltac                 C   s
   t | dS r  r   r  rB   rB   rC   r     r   zTimedelta[ns]c                 C   s   t | ddS )NrA  r  )r   rZ   r  rB   rB   rC   r     s    zTimedelta[s]c              	      s|   g d} fddt |D }tdd d d dd dd d dd d dd dd d d ddgd	d
 |D d}t|}t|| d S )NrL   rK   r4   r3   c                    r  r  rB   r  klassrB   rC   rH    rI  zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<dictcomp>r   r  rK   r3   rF   c                 S   s   g | ]}t |d qS )rA  r  )r   tdrB   rB   rC   r     r~  zUTestDataFrameConstructors.test_constructor_dict_timedelta64_index.<locals>.<listcomp>rW   )r  r   r<   r=   )r>   r  ra   Z	td_as_intr   rA   rs   rB   r  rC   'test_constructor_dict_timedelta64_index  s   
zATestDataFrameConstructors.test_constructor_dict_timedelta64_indexc                 C   s   t jg ddd}t jg ddd}t||d}|d j|jks#J |d j|jks-J t|t |t d}|d j|jksHJ |d j|jksRJ d S )	N)z2012-01r   z2012-04r   freq)z
2012-02-01z
2012-03-01r   rA  r   rw   r   )pdZPeriodIndexr   r6   r;   rn   rp   r   rB   rB   rC   test_constructor_period_dict  s   "z6TestDataFrameConstructors.test_constructor_period_dictc                 C   sN   |\}}t d|idgd}|d j|ksJ t dgdg|d}t|| d S )Nrw   r   rW   rg  )r   r6   r<   r=   )r>   Zea_scalar_and_dtypeZ	ea_scalarZea_dtyper@   rA   rB   rB   rC   &test_constructor_dict_extension_scalar  s
   z@TestDataFrameConstructors.test_constructor_dict_extension_scalarz
data,dtypez2020-01r   )leftrightr0   r  z
2011-01-01
US/EasternrJ   r  )unitrJ   c                 C   sl   t ddgddg|d}|d j|ksJ |d j|ksJ tj|gd |d}t ||d}t|| d S )	Nr   rL   rw   r   rg  rK   r5   r   )r   r6   r  rb   r<   r=   )r>   r   r6   r@   r?   rA   rB   rB   rC   &test_constructor_extension_scalar_data  s   z@TestDataFrameConstructors.test_constructor_extension_scalar_datac                 C   s   t jddd}ttjdd|d}i }|jD ]}|jD ]}|	|||
|i |< qqt||d}t|| i }|jD ]}|jD ]}|	|||
|i |< qDq?t||dj}t|| d S )Nz1/1/2000r   r!  rK   r   r   r   rW   )r  period_ranger   r8   r   r   r  r   rX   r:  
setdefaultr<   r=   r  )r>   r  r@   r   rq  rowrs   rB   rB   rC   "test_nested_dict_frame_constructor  s    



z<TestDataFrameConstructors.test_nested_dict_frame_constructorc                 C   s  |dt d}t|g dddgd}t|jdksJ t|jdks#J t|dd	gg d
d}t|jdks8J t|jdksAJ |tjurod}tjt	|d t|g dddgtj
d W d    d S 1 shw   Y  d S t|g dddgtj
d}|jjtj
ksJ d}tjt|d t|g ddgd W d    n1 sw   Y  d}tjt|d t|d	dgddgd W d    n1 sw   Y  tjtdd t|dg ddgd W d    n1 sw   Y  t|}tj|jttddd tj|jttddd t|ddgd}tj|jttddd t|g dd}tj|jttddd t|d}t|jdksGJ t|d}t|jdksWJ d S )NrY  r5   r   rL   rK   r_  r4   )r4   r   r  r\   r]   r   rX   r6   rj  rk  rl   rh  ri  Tr7  rW   r   )r   r4   r   )r4   r   )r   r   rO   rX   r   r8   r   rd   re   r   r0   r   r6   r   r<   r  r   r   )r>   r   matr+  rf   rB   rB   rC   _check_basic_constructor  sR   

z2TestDataFrameConstructors._check_basic_constructorc                 C   s8   |  tj tddgddgdgd}t|dksJ d S )Nr   r   r   rL   r   r   rK   )r  r8   r   r   rO   r0  rB   rB   rC   test_constructor_ndarray+  s   z2TestDataFrameConstructors.test_constructor_ndarrayc                 C   s   |  tj tjdtd}d|d< d|d< t|g ddd	gd
}d|d d ks*J d|d d	 ks4J tjdtd}t|g ddd	gd
}tt||k sSJ d S )NrY  r5   r   r   r   rL   rK   r   rL   rK   r_  r   r   )r  r   
masked_allr   r   r8   r(  asarray)r>   r  r+  rB   rB   rC   test_constructor_maskedarray1  s   z6TestDataFrameConstructors.test_constructor_maskedarrayz7ignore:elementwise comparison failed:DeprecationWarningc                 C   s  t jdtd}t|g dddgd}t|jdksJ t|jdks$J tt	||k s1J t|g dddgtj
d}|jjtj
ksGJ t |}d|d	< d|d
< t|g dddgd}d|d d ksiJ d|d d kssJ t jddd}t|g dddgd}t|jdksJ t|jdksJ t|j sJ d}tjt|d t|g dddgtjd W d    n1 sw   Y  t |}d|d	< d|d
< t|g dddgd}d|d dd ksJ d|d dd ksJ t jdtd}t|g dddgd}t|jdksJ t|jdksJ tt	||k s,J t|g dddgtd}|jjtksAJ t |}d|d	< d|d
< t|g dddgd}|d d du sdJ |d d du soJ d S )NrY  r5   r   rL   rK   r_  r4   r  r   r  r   r   rh   z8datetime64\[ns\] values and dtype=int64 is not supportedr]   r_   TF)r   r  r   r   rO   rX   r   r8   r(  r  r)   r   r6   r   r#   rd   re   r   r0   r;   r	  rn   )r>   r  r+  Zmat2rf   rB   rB   rC   %test_constructor_maskedarray_nonfloatA  sR   


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)rK   rK   r5   r   rl   rL   rK   r_  r&  r  r   )
r   r  r   Zharden_maskr   r8   rc   r<   r=   r   )r>   Zmat_hardrs   rA   rB   rB   rC   %test_constructor_maskedarray_hardened  s$   z?TestDataFrameConstructors.test_constructor_maskedarray_hardenedc                 C   sr   t jjt jjdddgddgd d}|tj}tjt	dd t
|td W d    d S 1 s2w   Y  d S )	Nr   )r   <f8)Zpricer  r5   F)maskzPass \{name: data\[name\]r]   )r8   r   rb   r
  r   r   Z	mrecarrayrd   re   r   r   r   r>   r   rB   rB   rC   %test_constructor_maskedrecarray_dtype  s   "z?TestDataFrameConstructors.test_constructor_maskedrecarray_dtypec                 C   s   t g d}|jjdksJ d S )NrW   r   )r   r   shaperj   rB   rB   rC   test_constructor_corner_shape  s   
z7TestDataFrameConstructors.test_constructor_corner_shapez%data, index, columns, dtype, expectedr   rw   r   r)   r   c                 C   s"   t ||||}|jj|ksJ d S r   )r   r   r6   )r>   r   rX   r   r6   rA   r@   rB   rB   rC   test_constructor_dtype  s   z0TestDataFrameConstructors.test_constructor_dtypezdata,input_dtype,expected_dtype)TFNbooleanr   r   NZFloat64)rL   rK   NInt64r   stringc                 C   s(   t d|i|d}|d j| ksJ d S )Nrw   r5   r  )r>   r   Zinput_dtypeZexpected_dtyper@   rB   rB   rC   0test_constructor_dtype_nullable_extension_arrays  s   zJTestDataFrameConstructors.test_constructor_dtype_nullable_extension_arraysc                 C   s   dddddd}t |tdd}|d	 jtjksJ |d
 jtjks%J |d jtjks/J |d jtjks9J |sE|d jtjksGJ d S d S )NrL   Tr   y              @r   )r   r	  r   complexrn   r   rW   r   r	  r   r  rn   )	r   r8   r9   r6   r0   r  r)   r   r   )r>   r   r   r@   rB   rB   rC   !test_constructor_scalar_inference  s    z;TestDataFrameConstructors.test_constructor_scalar_inferencec                 C   s   t tjdddd}t |d jdgd d}t|| tj	t
dd t ddd W d    d S 1 s;w   Y  d S )	NrK   r   Tr   rw   zmust pass an indexr]   F)r   r8   r   r   r  r   r<   r=   rd   re   r   )r>   r@   r,  rB   rB   rC   #test_constructor_arrays_and_scalars  s   "z=TestDataFrameConstructors.test_constructor_arrays_and_scalarsc                 C   s8   t |}t|| t |tjd}|jjtjksJ d S Nr5   )r   r<   r=   r8   r0   r   r6   )r>   r  r@   Z	df_castedrB   rB   rC   test_constructor_DataFrame  s   z4TestDataFrameConstructors.test_constructor_DataFramec                 C   s*   t t  dd}t g dd}t|| d S )Nrn   r5   r   )r>   actualrA   rB   rB   rC    test_constructor_empty_dataframe  s   z:TestDataFrameConstructors.test_constructor_empty_dataframec                 C   s  t jdd}t|dgt dd}|jjdksJ t jdd}t|}|jjdks1J |jjdks9J tddgt dd}|jjdksLJ tddgd}|jjd	ks[J tt dd
}|jjdkskJ t j	ddgt
ddd}d}tjt|d t|ddgdgtd W d    n1 sw   Y  tt|j}t|| tt jdtdt jdt jddt dd
}t|jdksJ |jjt jksJ d S )NrK   r   r   r_  r   rl   r   rK   r   )r   rK   rW   )r   r   r   r   r5   rL   z(could not convert string to float: 'foo'r]   rX   r   r6   r&  )r8   r   r   r  r   r9   r   ndimr  rb   rn   r:   rd   re   r   r   r5  r<   r=   r   r   r)   rO   r   r6   )r>   r  r?   r  r  rf   rB   rB   rC   test_constructor_more  s4   z/TestDataFrameConstructors.test_constructor_morec                 C   sx   t g g d}t g d}t|| t g ddgd}t i ddgd}t|| dd }t | ddgd}t|| d S )NrW   r   rl   r   c                   s   s    dE d H  d S r   rB   rB   rB   rB   rC   	empty_gen  s   zHTestDataFrameConstructors.test_constructor_empty_list.<locals>.empty_genr   )r>   r@   rA   r  rB   rB   rC   test_constructor_empty_list  s   
z5TestDataFrameConstructors.test_constructor_empty_listc                 C   s   t ddgddggddgd}t|d sJ |s"|d jtjks#J 	 t dtd	i}d
d td	D }t |}t|| d S )NrL   rw   rK   r   numr7   rU  r   r   c                 S      g | ]}t |qS rB   r8   rb   r   rB   rB   rC   r   &  r~  zLTestDataFrameConstructors.test_constructor_list_of_lists.<locals>.<listcomp>)	r   r   r6   r8   r   r9   r   r<   r=   )r>   r   r@   rA   r   rs   rB   rB   rC   test_constructor_list_of_lists  s   z8TestDataFrameConstructors.test_constructor_list_of_listsc                 C   sx   t ddg}tjd d gtd}||d< |d |d< t|}tt|}t|| |jdks1J t	|d j
| d S )NrL   rK   r5   r   )rK   rL   )r   r8   rb   rn   r   r  r<   r=   r  ry  r   )r>   serr?   r@   rA   rB   rB   rC   .test_nested_pandasarray_matches_nested_ndarray*  s   zHTestDataFrameConstructors.test_nested_pandasarray_matches_nested_ndarrayc                 C   sZ   t dt dg}tg dg dg|d}t|}tg dg dg|d}t|| d S )NabcdZcdefr  r3   r   rF   r  r   )r  r   r   Zfrom_arraysr<   r=   )r>   r   rs   r]  rA   rB   rB   rC   2test_constructor_list_like_data_nested_list_column8  s
   
zLTestDataFrameConstructors.test_constructor_list_like_data_nested_list_columnc                 C   `   t dt dg}d}tjt|d tg dg dg|d W d    d S 1 s)w   Y  d S )Nr   cdez#3 columns passed, passed data had 4r]   r  r  r   r  rd   re   r   r   r>   r   rf   rB   rB   rC   0test_constructor_wrong_length_nested_list_columnB  s
   "zJTestDataFrameConstructors.test_constructor_wrong_length_nested_list_columnc                 C   r  )Nr  r  zall arrays must be same lengthr]   r  r  r   r  r  rB   rB   rC   2test_constructor_unequal_length_nested_list_columnJ  s
   "zLTestDataFrameConstructors.test_constructor_unequal_length_nested_list_columnr   
2021-01-01r   rU   c                 C   s:   t |g ddgd}t dtdgd i}t|| d S )Nr2  r   r   r  r4   )r   r    r<   r=   r  rB   rB   rC   &test_constructor_one_element_data_listS  s   z@TestDataFrameConstructors.test_constructor_one_element_data_listc                 C   sj   G dd dt j}|ddg|ddgg}ddg}t||d	}tddgddgg|d	}tj||d
d d S )Nc                   @   s,   e Zd Zd	ddZdd ZdefddZdS )
zPTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainerreturnNc                 S   s
   || _ d S r   )_lst)r>   lstrB   rB   rC   __init__g     
zYTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__init__c                 S   s   | j |S r   )r  __getitem__)r>   nrB   rB   rC   r   j  s   z\TestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__getitem__c                 S   s
   | j  S r   )r  __len__)r>   rB   rB   rC   r  m  r  zXTestDataFrameConstructors.test_constructor_sequence_like.<locals>.DummyContainer.__len__)r  N)__name__
__module____qualname__r  r   r   r  rB   rB   rB   rC   DummyContainerf  s    
r  rL   rw   rK   r   r  r7   r   Fr  )r   Sequencer   r<   r=   )r>   r  Zlst_containersr   rs   rA   rB   rB   rC   test_constructor_sequence_likeb  s   
z8TestDataFrameConstructors.test_constructor_sequence_likec                 C   s   t dtdtdi}t dttdi}tj||dd t ttdttdg}t tdtdtdtdg}tj||dd d S )Nr   r  r   Fr  )r   rb   r   r  r<   r=   rW  rB   rB   rC   test_constructor_stdlib_arrayv  s   $z7TestDataFrameConstructors.test_constructor_stdlib_arrayc                 C   s,   t td}t ttd}t|| d S Nr   r   r   r  r<   r=   rW  rB   rB   rC   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  rW  rB   rB   rC   test_constructor_list_of_ranges  s   z9TestDataFrameConstructors.test_constructor_list_of_rangesc                 C   s:   G dd d}t g dgd }t | }t|| d S )Nc                   @   s   e Zd ZdefddZdS )zATestDataFrameConstructors.test_constructor_iterable.<locals>.Iterr  c                 s   s    t dD ]}g dV  qd S )Nr   r  )r   )r>   r  rB   rB   rC   __iter__  s   zJTestDataFrameConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)r  r  r  r   r  rB   rB   rB   rC   Iter  s    r  r  r   r   )r>   r  rA   rs   rB   rB   rC   test_constructor_iterable  s   
z3TestDataFrameConstructors.test_constructor_iterablec                 C   s0   t ttd}t ttd}t|| d S r
  r   r  r   r  r<   r=   rW  rB   rB   rC   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  rW  rB   rB   rC   "test_constructor_list_of_iterators  s   z<TestDataFrameConstructors.test_constructor_list_of_iteratorsc                 C   s   dd t dD }dd t dD }ttt dtt dg}t||g}t|| dd t dD }t|}tt ddd}tj||dd	 d S )
Nc                 s   r   r   rB   r  rB   rB   rC   r     r   zGTestDataFrameConstructors.test_constructor_generator.<locals>.<genexpr>r   c                 s   r   r   rB   r  rB   rB   rC   r     r   c                 s   s    | ]}|d gV  qdS )rw   NrB   r  rB   rB   rC   r         rw   rM   Fr  )r   r   r  r<   r=   )r>   Zgen1Zgen2rA   rs   genrB   rB   rC   test_constructor_generator  s   z4TestDataFrameConstructors.test_constructor_generatorc                 C   s*   t i g}t tdg d}t|| d S )NrL   r   )r   r   r<   r=   rW  rB   rB   rC   test_constructor_list_of_dicts  s   
z8TestDataFrameConstructors.test_constructor_list_of_dictsc                 C   sf   t ddg}t ddg}t d|fd|fg}t|}ddgdd	gd
}t|ddgd}t|| d S )N)r   rL   )rw   rK   )r   rK   )rw   r   r   r   rL   rK   r   )r   r   r   rw   )r   rX   )r   r   r<   r=   )r>   Znested1Znested2r   rs   rA   rB   rB   rC   3test_constructor_ordered_dict_nested_preserve_order  s   zMTestDataFrameConstructors.test_constructor_ordered_dict_nested_preserve_order	dict_typec                 C   st   t ddggddgd}| }dg|d< dg|d< t |}t|| | }d|d< d|d< t |g}t|| d S )NrK   rL   r   rw   r   r   )r>   r  rA   r   rs   rB   rB   rC   ,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 )NrK   r   rL   rw   rS  r   r   )r>   r  Zrow_oneZrow_twoZ	row_threerA   rs   rB   rB   rC   0test_constructor_ordered_dict_conflicting_orders  s   
"zJTestDataFrameConstructors.test_constructor_ordered_dict_conflicting_ordersc                 C   sT   dd t dD }t|}tg dg dg ddg dg dd}t|| d S )Nc                 S   s"   g | ]}t |g d t|dqS )r   rw   r   r$  )r   r7   r  rB   rB   rC   r     rI  z[TestDataFrameConstructors.test_constructor_list_of_series_aligned_index.<locals>.<listcomp>r4   r2  r  )0r/  r   r_  r  )r>   seriesrs   rA   rB   rB   rC   -test_constructor_list_of_series_aligned_index  s   zGTestDataFrameConstructors.test_constructor_list_of_series_aligned_indexc                 C   sJ   G dd dt }ddd}||g}|g}t|}t|}t|| d S )Nc                   @      e Zd ZdS )zTTestDataFrameConstructors.test_constructor_list_of_derived_dicts.<locals>.CustomDictNr  r  r  rB   rB   rB   rC   
CustomDict      r"        ?r4   r   )r   r   r<   r=   )r>   r"  r|   Zdata_customr   Zresult_customrs   rB   rB   rC   &test_constructor_list_of_derived_dicts  s   

z@TestDataFrameConstructors.test_constructor_list_of_derived_dictsc                 C   sb   t jddt jddd}tjtdd t| W d    d S 1 s*w   Y  d S )NrK   r   r  r&  z%All arrays must be of the same lengthr]   )r8   r   r   r  rd   re   r   r   r  rB   rB   rC   test_constructor_ragged  s   
"z1TestDataFrameConstructors.test_constructor_raggedc                 C   sD   t td}tddi|d}tdg di|d}tj||dd d S )Nr4   rw   r   rW   )r   r   r   Fr  )r   r   r   r<   r=   )r>   rr   r@   rA   rB   rB   rC   test_constructor_scalar  s   z1TestDataFrameConstructors.test_constructor_scalarc                 C   s"   t |d |jdgd}|  d S )Nr   r   )r   rX   r   )r>   r  r@   rB   rB   rC    test_constructor_Series_copy_bug  s   z:TestDataFrameConstructors.test_constructor_Series_copy_bugc                 C   s   i }dddd|d< t g dg dd|d	< t|}|jjs J tjtd
d tddgdddd W d    n1 s>w   Y  tddgt ddgddgdd}tddgddgdddgd}t|| d S )NrL   rK   r4   rc  r   )r3   r4   rK   rL   )r   Zquxrd  r   rW   rl   zambiguous orderingr]   rw   r   r   r&  )	r   r   rX   Zis_monotonic_increasingrd   re   r   r<   r=   r  rB   rB   rC   &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 )NrL   rK   r4   r3   r4   r3   r   r  rB   rB   rC    test_constructor_mixed_type_rows"  s   z:TestDataFrameConstructors.test_constructor_mixed_type_rowsztuples,lists)rB   rB   r  rf  c                 C   s    t |}t |}t|| d S r   r   )r>   r\  listsrs   rA   rB   rB   rC   test_constructor_tuple)  s   z0TestDataFrameConstructors.test_constructor_tuplec                 C   s4   t dddgi}t dtddgi}t|| d S )Nr   r  r*  r   r   r<   r=   rW  rB   rB   rC   test_constructor_list_of_tuples;  s   z9TestDataFrameConstructors.test_constructor_list_of_tuplesc                 C   s   t dtd}|dd|ddg}tddgddgd}t|}t|| tddgddgd}t|d	d
gd}t|| d S )NZPandasabrL   r4   rK   r3   r   )r   r  r   r  r   )r   r  r   r<   r=   )r>   Znamed_tupler\  rA   rs   rB   rB   rC   $test_constructor_list_of_namedtuples@  s   z>TestDataFrameConstructors.test_constructor_list_of_namedtuplesc                 C   sX   t ddtfdtfg}|dd|ddg}tddgddgd}t|}t|| d S )NPointr   r   r   r4   rL   r   r   )r   r   r   r<   r=   )r>   r2  r   rA   rs   rB   rB   rC   $test_constructor_list_of_dataclassesM  s
   z>TestDataFrameConstructors.test_constructor_list_of_dataclassesc                 C   s   t ddtfdtfg}t ddtfdtfdtfg}|dd|d	ddg}tdtjgddgtjd	gtjdgd
}t|}t|| d S )Nr2  r   r   HLinex0x1r   r4   rL   )r   r   r6  r7  )r   r   r   r8   rc   r<   r=   )r>   r2  r5  r   rA   rs   rB   rB   rC   7test_constructor_list_of_dataclasses_with_varying_typesV  s   "zQTestDataFrameConstructors.test_constructor_list_of_dataclasses_with_varying_typesc                 C   sl   t ddtfdtfg}d}tjtt|d t|dddddg W d    d S 1 s/w   Y  d S )	Nr2  r   r   z0asdict() should be called on dataclass instancesr]   r   rL   r3  )r   r   rd   re   r   reescaper   )r>   r2  rf   rB   rB   rC   1test_constructor_list_of_dataclasses_error_thrownd  s
   "zKTestDataFrameConstructors.test_constructor_list_of_dataclasses_error_thrownc              	   C   sr   ddddddddd	d
dddddddg}t g dg dg dg dg dg dd}t |}t|| d S )NrL   r3   r  r   )FirstSecondThirdFourthr   rK   rN  r  )r=  r<  r?  r>  rF   r4   r2   r     rQ  )r=  r<  r?  r>  YYYXXXr  rf  )r  r  r  )r   rN  r2   )NNr@  )NNrQ  )r<  r=  r>  r?  rA  rB  r   )r>   r   rA   rs   rB   rB   rC   #test_constructor_list_of_dict_orderm  s   
z=TestDataFrameConstructors.test_constructor_list_of_dict_orderc                 C   s  t g dg ddd}t|}|jd dksJ t|j|j tjd	d}t |dd}t|}td|i}t
|| t |td	d
d}t|}td|i}t
|| d}tjt|d t|ddgd W d    n1 stw   Y  t g dtd}t|}|jd dksJ t |dd}t||gj}t||dddgd}t
|| t||gj}t||dddgd}t
|| d S )Nr  r   r   r$  r   rK   r   rm   r4   rQ  rW   z<Shape of passed values is \(10, 1\), indices imply \(10, 2\)r]   rL   r   ra   r6   )r   	Unnamed 0rE  r   )r   r   r   r<   r  rX   r8   r   r   r  r=   r   rd   re   r   rn   r  )r>   rw   r@   r?   r  rA   rf   s1rB   rB   rC   test_constructor_Series_named  s6   z7TestDataFrameConstructors.test_constructor_Series_namedc                 C   s   t tddd}t tddd}tt|dgd|  tt|dgd|  t|dgdjs4J t|dgdjs>J d S )Nr   r   rm   rL   r   )r   r   r<   r=   r   to_framer   )r>   s0rF  rB   rB   rC   )test_constructor_Series_named_and_columns  s   zCTestDataFrameConstructors.test_constructor_Series_named_and_columnsc                 C   s   t g dg ddd}t g dg dd}tddg}t||d}t||}|jd dks1J t|| t||d}t||}|jd dksMJ t|j| t|| d S )	Nr  r   r   r$  rW   rw   r   r   )	r   r   r   r  r   r<   r=   r  rX   )r>   rF  s2Zother_indexdf1Zexp1r   Zexp2rB   rB   rC   +test_constructor_Series_differently_indexed  s   zETestDataFrameConstructors.test_constructor_Series_differently_indexedz#name_in1,name_in2,name_in3,name_out))rr   rr   rr   rr   )rr   rr   NN)rr   NNN)idx1idx2NN)rN  rN  rO  N)rN  rO  Zidx3N)NNNNc           
      C   s   t g d|dt g d|dt g d|dg}dd t|g dD }t|}t g d|d}td	d
dtjtjgtjd	d
dtjgtjtjd	d
dgd|d}	t||	 d S )Nr   rm   )r   r   r|   )r   r|   ec                 S   s"   i | ]\}}|t g d |dqS )r2  rW   r   )r   r  r   rB   rB   rC   rH    s    zJTestDataFrameConstructors.test_constructor_index_names.<locals>.<dictcomp>)r   r   r  rw   r   r   r|   rP  r   rL   rK   rW   )r   r   r   r8   rc   r<   r=   )
r>   Zname_in1Zname_in2Zname_in3Zname_outindicesr  rs   Zexp_indrA   rB   rB   rC   test_constructor_index_names  s"   	z6TestDataFrameConstructors.test_constructor_index_namesc                 C   s   t |jd d }t |jd d }d}tjt|dd t|j||d}W d    n1 s/w   Y  t|jt	| t|jt	| d S )Nr   r4   z#Passing a BlockManager to DataFrameF)r^   Zcheck_stacklevelr   )
r  rX   r   r<   assert_produces_warningDeprecationWarningr   rP   r  r   )r>   r  rX   r   rf   rs   rB   rB   rC   test_constructor_manager_resize  s   z9TestDataFrameConstructors.test_constructor_manager_resizec                 C   s   t |d t|d dddgd}t||jd d ddgf  d}tjt|d t |d t|d d d d W d    d S 1 sFw   Y  d S )Nr   rl   r&  r   zdoes not match index lengthr]   )r   r  r<   r=   r   rd   re   r   )r>   r  r@   rf   rB   rB   rC   %test_constructor_mix_series_nonseries  s   $"z?TestDataFrameConstructors.test_constructor_mix_series_nonseriesc                 C   sT   d}t jt|d ttjdgddggtjd W d    d S 1 s#w   Y  d S )Nr\   r]   rL   r   r5   )rd   re   r   r   r8   rc   r0   r>  rB   rB   rC   %test_constructor_miscast_na_int_dtype  s   "z?TestDataFrameConstructors.test_constructor_miscast_na_int_dtypec                 C   s^   t ddggddgd}t ddgg}ddg|_t|| t jdgddgd}t|| d S )Nr  r   rw   r   )r  r   )r   r   r<   r=   Zfrom_records)r>   r@   ZedfZidfrB   rB   rC   "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jtjdd}t ddgddgtd}|r/t|| n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   rL   r  Zna_valueZU5)
r   rn   r  StringDtyper8   rc   r7   r<   r=   Zstr_)r>   r   rA   Zexpected_strr@   rB   rB   rC   (test_constructor_empty_with_string_dtype  s   zBTestDataFrameConstructors.test_constructor_empty_with_string_dtypec                 C   s,   t dg|d}t dg|d}t|| d S )Nc1r   r6   r   )r>   Znullable_string_dtyperA   r@   rB   rB   rC   ,test_constructor_empty_with_string_extension&  s   zFTestDataFrameConstructors.test_constructor_empty_with_string_extensionc                 C   s  t dg dg dd}t|t t|jd|j|j t dg dg dd}t|t t|jd|j|j t dd	d
gddgd}t|t tj	ddgddggt
dd	d
gddgd d}tjt|d t dd	d
g W d    n1 s|w   Y  tjt|d t dddgd W d    n1 sw   Y  d}tjt|d t dd	d
gddgt W d    d S 1 sw   Y  d S )N        r  r   r   r)   r   r0   rw   rL   rK   r   r5   z*DataFrame constructor not properly called!r]   r   zincompatible data and dtype)r   r<   r=   r8   r
  r  r;   rX   r   rb   rn   rd   re   r   r   r   )r>   r@   rf   rB   rB   rC   test_constructor_single_value,  s8   	"z7TestDataFrameConstructors.test_constructor_single_valuec                 C   s  t tj}t t j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|s;t |ntjt jdgd  t dt dg 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 |st dntjt j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 |st dntjt jdg t dg t |g ddd||gd
}t|| d S )NrL   r   r   Z20010101  rK   r   )r   rl   r   rA  Er   rW   r0   r[  M8[s]M8[us]ZABCDErw   r   r   r   r5   r)   rn   )r8   r6   r   ra   r)   r   r   r    r	   r9   r   r   r  r\  rc   r  r<   rq   rb   )r>   r   ZintnameZ	floatnameZ
objectnamer@   rs   rA   rB   rB   rC   test_constructor_with_datetimesL  s   






	




	z9TestDataFrameConstructors.test_constructor_with_datetimesc                 C   s6   t dddd}dd |D }t|}|jdksJ d S )Nre  rA  r   startr  rI   c                 S      g | ]}|  qS rB   to_pydatetimer   tsrB   rB   rC   r     r   zNTestDataFrameConstructors.test_constructor_with_datetimes1.<locals>.<listcomp>rh   )r"   r   r6   )r>   ind	datetimesZ
datetime_srB   rB   rC    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 )Nre  rA  r   rh  c                 S   rj  rB   rk  rm  rB   rB   rC   r     r   zNTestDataFrameConstructors.test_constructor_with_datetimes2.<locals>.<listcomp>c                 S   rj  rB   )r   rm  rB   rB   rC   r     r   rp  r   datesdatetime64[ns]rn   rW   )r"   r   r   r   r8   r6   r<   rq   )r>   ro  rp  rr  r@   rs   rA   rB   rB   rC    test_constructor_with_datetimes2  s   z:TestDataFrameConstructors.test_constructor_with_datetimes2c                 C   s   t d}|tddd}td|idgd}|jd |ks J t|jt	ddit
d	 td|ig}|jd |ks=J t|jt	dd
it
d	 d S )Nr    rL   zEnd Dater   rW   r   zdatetime64[us, US/Eastern]r5   datetime64[ns, US/Eastern])pytztimezonelocalizer	   r   iatr<   rq   r   r   rn   )r>   rJ   rV   r@   rB   rB   rC    test_constructor_with_datetimes3  s   
z:TestDataFrameConstructors.test_constructor_with_datetimes3c                 C   s   t ddd}td|i}|jd jd u sJ t dddd}td|i}t|jd jdks/J t dddd}td|i}t|jd jdksHJ d S )	N20130101r4   r!  rY   r   UTCrH   r  )r"   r   rz  rJ   r7   )r>   drr@   rB   rB   rC    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  rI   r  rJ   rw   TZdropr"   r   Z	to_seriesZreset_indexr<   r=   )r>   r  rA   r@   rB   rB   rC    test_constructor_with_datetimes5  s   z:TestDataFrameConstructors.test_constructor_with_datetimes5c                 C   sV   t ddddd}t dddd}t||d}t| jdd	|d}t|| d S )
Nr  r   r  r  r  rI   r  r   Tr  r  )r>   r  Zi_no_tzr@   rA   rB   rB   rC    test_constructor_with_datetimes6  s
   z:TestDataFrameConstructors.test_constructor_with_datetimes6r?   r   c                 C   s*   t |j}ttdg}t|| d S )Nrs  )r   r   r   r8   r6   r<   rq   )r>   r?   rs   rA   rB   rB   rC   %test_constructor_datetimes_with_nulls  s   
z?TestDataFrameConstructors.test_constructor_datetimes_with_nullsorder)Kr   r   Fr  )r   rA  hr   r  msusrU   c                 C   s   d| d}t jg dg dg||d}t|}t|d}|dv rEtjtdd	 || W d    n1 s:w   Y  |d
}n|j|d}t|| d S )Nzdatetime64[])z
2015-01-01z
2015-01-02z
2015-01-03)z
2017-01-01z
2017-01-02z
2017-02-03r6   r  rh   )r   rA  r  r   Cannot castr]   zdatetime64[s]r5   )	r8   rb   r   r;   rd   re   r   r<   r=   )r>   r  r  r6   nar@   rA   rB   rB   rC   !test_constructor_datetimes_non_ns  s"   z;TestDataFrameConstructors.test_constructor_datetimes_non_ns)rA  r  r   r  r  r  rU   c           	      C   s   d| d}t jt ddt ddgt ddt ddgg||d}t|}|d	v r/d
}n|}t d| d}ttddtddgtddtddgg|d}t|| d S )Nztimedelta64[r  rL   rA  rK   r3   r   r  )rA  r  r   r  zm8[r5   )r8   rb   r  r   r6   r   r<   r=   )	r>   r  r  r6   r  r@   Zexp_unit	exp_dtyperA   rB   rB   rC   !test_constructor_timedelta_non_ns  s(   	z;TestDataFrameConstructors.test_constructor_timedelta_non_nsc                 C   s0  t dd tdD }|j}ttdgd }t|| t dd tdD }|j}ttdgd }t|| t ddd	gi}|jjd
 tdksQJ t ddg}|jjd
 tdksdJ t ddg}|jjd
 tdkswJ t dddgi}|jjd
 tdksJ t dddgi}|jjd
 tdksJ t dditdd}|jjd
 tdksJ t dditdd}|jjd
 tdksJ t g dg dt	ddd tdD g dd}|j}ttdtd|stdnt
jtjdtdtdgt	dd}t|| d S )Nc                 S   s   g | ]}t d qS )r   )r8   r9   r   rB   rB   rC   r   B  r~  zSTestDataFrameConstructors.test_constructor_for_list_with_dtypes.<locals>.<listcomp>r   r   c                 S   s    g | ]}t jt d ddqS )r   r/   r5   )r8   rb   r9   r   rB   rB   rC   r   G  s     r/   rw   l        l       r   r0   rL   rK   r   r   r)   r4   rW   )rL   rK   r3   r  )g333333?gffffff@gffffff@g333333@r  c                 S   s   g | ]}t d ddqS )  rL   )r	   r  rB   rB   rC   r   j  r  r3   )r   rK   rx  r  rQ  rn   r[  rs  Zabcde)r   r   r   r   r8   r6   r<   rq   r   r  r  r\  rc   )r>   r   r@   rs   rA   rB   rB   rC   %test_constructor_for_list_with_dtypes@  sV   		z?TestDataFrameConstructors.test_constructor_for_list_with_dtypesc                 C   s@   t |dd}d|d< |d dk sJ |d dk rJ d S )NTr   r   r   )r   r(  )r>   r  coprB   rB   rC   test_constructor_frame_copy}  s   z5TestDataFrameConstructors.test_constructor_frame_copyc                 C   s@   |  }t|}|j|jusJ tt||_t|| d S r   )	r   r   rP   r8   r9   rO   rX   r<   r=   )r>   r  origr  rB   rB   rC   #test_constructor_frame_shallow_copy  s
   z=TestDataFrameConstructors.test_constructor_frame_shallow_copyc                 C   s   |s?|j  }t|}d|d< |r|j d dk rJ n|j d dk s(J t|dd}d|d< |j d dk r=J d S |j  }t|}|jjd jjsRJ d|d< |jd dks_J t|dd}|jjd jjroJ d	|d< |jd d	ks|J d S )
Nr   Tr   rF   r   r  r   Fi  )	r   r   r   r(  rP   r   r   r   r   )r>   r  rR   r   r?   r@   rB   rB   rC   test_constructor_ndarray_copy  s&   

z7TestDataFrameConstructors.test_constructor_ndarray_copyc                 C   sP   |j }td|d idd}d|j|jd |jd df< |d dk r&J d S )Nr   Tr   r   r   r   )r5  r   r   rX   r(  )r>   r  r  r@   rB   rB   rC   test_constructor_series_copy  s   z6TestDataFrameConstructors.test_constructor_series_copyr@   rW   g?g@r   r  r  )ra  rL   rK   r   c                 C   s   t t|jD ]}|jd d |f  qtt|jt|j }t|dkrJtjt	dd |j
d d tjf  W d    d S 1 sCw   Y  d S t|dkrit|jd d |d f |j
d d tjf  d S t|jd d |f |j
d d tjf  d S )Nr   z^nan$r]   rL   )r   rO   r   r   r8   r9   r#   rd   re   KeyErrorr   rc   r<   rq   r=   )r>   r@   r  ZindexerrB   rB   rC   test_constructor_with_nas  s   "2.z3TestDataFrameConstructors.test_constructor_with_nasc                 C   s:   t dtjdgi}|d jtjksJ |d d rJ d S )Nrw   FrL   )r   r8   rc   r6   r   )r>   r|   rB   rB   rC   &test_constructor_lists_to_object_dtype  s   z@TestDataFrameConstructors.test_constructor_lists_to_object_dtypec                 C   sZ   t g d}t|dd}t|d}t||jd}t||||d}t|| d S )Nr   r   rL   r*  r5   r  )	r   r8   rb   r:   Zbroadcast_tor   r6   r<   r=   )r>   catr?   rs   rA   rB   rB   rC   *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   categoryr5   r`   r   r   rm   )r   r  r   r<   rq   rH  )r>   r@   rA   r  rs   rB   rB   rC   test_constructor_categorical  s   z6TestDataFrameConstructors.test_constructor_categoricalc                 C   s6   t td}t|g}t|tg}t|| d S )Nr   )r   r  r   r;   rn   r<   r=   )r>   r  r@   rA   rB   rB   rC   -test_construct_from_1item_list_of_categorical  s   
zGTestDataFrameConstructors.test_construct_from_1item_list_of_categoricalc                 C   s@   t ttdttdg}t g dg dg}t|| d S )Nr   Zabdr   )rw   r   r|   r   r   r  r<   r=   ra  rB   rB   rC   (test_construct_from_list_of_categoricals	  s   zBTestDataFrameConstructors.test_construct_from_list_of_categoricalsc                 C   s<   t ttdtdg}t g dg dg}t|| d S )Nr   defr   r|   rP  fr  ra  rB   rB   rC   %test_from_nested_listlike_mixed_types	  s   z?TestDataFrameConstructors.test_from_nested_listlike_mixed_typesc                 C   s@   t ttdttdg}t tdtdg}t|| d S )Nr   Zabdefgr  ra  rB   rB   rC   0test_construct_from_listlikes_mismatched_lengths	  s   zJTestDataFrameConstructors.test_construct_from_listlikes_mismatched_lengthsc                 C   s   g d}t |d}t |dd}t|| g d}t |d}t |dd}t|| tddd}t ttjtjtjgg dd	}||_t	d
|i}t	d
t g dddi|d}t
|| d S )N)rL   rK   r4   rL   r  r5   )rw   r   r   rw   Z20000101r4   r!  r   )r   
categoriesr   rW   )r   r;   r<   rq   r"   r   r8   rc   rX   r   r=   )r>   rp  r,  resrX   rA   r@   rB   rB   rC   #test_constructor_categorical_series	  s    z=TestDataFrameConstructors.test_constructor_categorical_seriesr6   c                 C   s,   t dddgidg|d}|jj|ksJ d S )Nrw   rL   rK   r   r_  )r   r   r6   )r>   r6   r   rB   rB   rC   %test_check_dtype_empty_numeric_column2	  s   
z?TestDataFrameConstructors.test_check_dtype_empty_numeric_columnc                 C   sF   t dddgidg|d}|r|tjv rt| |jjjdks!J d S )Nrw   rL   rK   r   r_  rn   )r   r<   BYTES_DTYPESr  &mark_array_manager_not_yet_implementedr   r6   ra   )r>   requestr6   rR   r   rB   rB   rC   $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   rD  )r   rn   rH  r   r<   rq   r   rW  rB   rB   rC   test_to_frame_with_falsey_namesN	  s
   z9TestDataFrameConstructors.test_to_frame_with_falsey_names)Nr*   r  c                 C   s\   t dg di|p	dd}t tddg|d}t|| t dtdi|d}t|| d S )Nr   )r   rL   rK   r4   r3   r0   r5   r   r_  )r   r   r<   r=   )r>   r6   rA   rs   rB   rB   rC   test_constructor_range_dtypeW	  s
   z6TestDataFrameConstructors.test_constructor_range_dtypec                 C   sT   G dd dt }tg dg dg}t||g d|g dg}t|| d S )Nc                   @   r   )zETestDataFrameConstructors.test_frame_from_list_subclass.<locals>.ListNr!  rB   rB   rB   rC   Listf	  r#  r  r  rf  )r  r   r<   r=   )r>   r  rA   rs   rB   rB   rC   test_frame_from_list_subclassd	  s    z7TestDataFrameConstructors.test_frame_from_list_subclassextension_arrZaabbcz1/1/2017z1/1/2018)ri  endr  c                 C   s$   t t|}t |}t|| d S r   r.  )r>   r  rA   rs   rB   rB   rC   %test_constructor_with_extension_arraym	  s   z?TestDataFrameConstructors.test_constructor_with_extension_arrayc                 C   s\   t  }||f}t|ttdtddi|gd}tg dtt|gd}t|| d S )Nr4   rW   r   r2  )r   todayr   r   r   r   r<   r=   )r>   ru  tuprs   rA   rB   rB   rC   *test_datetime_date_tuple_columns_from_dict|	  s
   "zDTestDataFrameConstructors.test_datetime_date_tuple_columns_from_dictc                 C   sx   t g dtg dd}t g dtg dd}t||g}ttdddtjtjgg d	gg d
d}t|| d S )N)'   rF   r3   )femalemaleunknownrW   )rK      rK         )r  r  r   r  r  r  rF   r3   )g      c@g     @n@g     b@r   r   )r  r  r  r  r   r   )r   r   r   r8   rb   rc   r<   r=   )r>   rF  rK  rs   rA   rB   rB   rC   /test_construct_with_two_categoricalindex_series	  s   
zITestDataFrameConstructors.test_construct_with_two_categoricalindex_seriesz7ignore:invalid value encountered in cast:RuntimeWarningc                 C   s  t t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.  gMbXg#@r  )closedg3@g33333=@gC@g     H@g33333M@g33333SQ@gS@gfffffFV@r   T)orderedrW   )r   r   r!   Zvalue_countsheadtailr   r   r   r8   rc   r<   r=   )r>   r  ser1ser2rs   rX   rA   rB   rB   rC   1test_constructor_series_nonexact_categoricalindex	  s,   .zKTestDataFrameConstructors.test_constructor_series_nonexact_categoricalindexc                 C   s   t dddddt dddddfg}tj|ddgd	}t|}|d
 d |d d ks,J |d d |d d ks:J t|d
 }t|d tsIJ |d |d d ksUJ d S )Nru  r  r   r  r  r   )Daterf  )Forecastingrf  r5   r  r  rL   )r	   r8   rb   r   r   r   r    )r>   rr  r?   r@   r  rB   rB   rC   test_from_M8_structured	  s   "z1TestDataFrameConstructors.test_from_M8_structuredc                 C   s>   G dd dt }td|dddddgi}|j jdksJ d S )Nc                   @   r   )zOTestDataFrameConstructors.test_from_datetime_subclass.<locals>.DatetimeSubclassNr!  rB   rB   rB   rC   DatetimeSubclass	  r#  r  r	   i  rL   rs  )r	   r   r6   )r>   r  r   rB   rB   rC   test_from_datetime_subclass	  s   z5TestDataFrameConstructors.test_from_datetime_subclassc                 C   sV   t dddd}d}tjt|d t|tdd W d    d S 1 s$w   Y  d S )	NrE   r4   rG   rH   z@Shape of passed values|Passed arrays should have the same lengthr]   r3   rW   )r"   rd   re   r   r   r   )r>   rS   rf   rB   rB   rC   (test_with_mismatched_index_length_raises	  s
   "zBTestDataFrameConstructors.test_with_mismatched_index_length_raisesc                 C   sX   t dddd}t|}ttjdt||d}t|d j	t	ds*J d S )	Nz1/1/2000 00:00:00z1/1/2000 1:59:50r  r  rK   r&  rl   rh   )
r"   r8   r  r   r   r   r  rO   Z
issubdtyper6   )r>   r  rr  r@   rB   rB   rC   !test_frame_ctor_datetime64_column	  s   
 z;TestDataFrameConstructors.test_frame_ctor_datetime64_columnc                 C   s   g dg dg}t tjdddd |D d}t|jts"J t|jtr*J t tjdd|d}t|jts?J d S )	N)rw   rw   r   r   )r   r   r   r   rK   )r3   r3   c                 S   r  rB   r  r   rB   rB   rC   r   	  r~  zYTestDataFrameConstructors.test_dataframe_constructor_infer_multiindex.<locals>.<listcomp>rW   r   )	r   r8   r   r   r  r   rX   r   r   )r>   Zindex_listsmultirB   rB   rC   +test_dataframe_constructor_infer_multiindex	  s   zETestDataFrameConstructors.test_dataframe_constructor_infer_multiindex
input_valsr/  r   r  r  r  r  c                 C   s6   t d|i|d}t d|id|i}t|| d S )Nr   r5   )r   r;   r<   r=   )r>   r  r   rs   rA   rB   rB   rC   test_constructor_list_str	  s   z3TestDataFrameConstructors.test_constructor_list_strc                 C   s8   t dg di|d}t dg ditd}t|| d S )Nr   r  r5   )z1.0z2.0N)r   rn   r<   r=   )r>   r   rs   rA   rB   rB   rC   test_constructor_list_str_na	  s   z6TestDataFrameConstructors.test_constructor_list_str_nar   FTc           
         s&  |r|s|t jt j vrt| tjddg|d tjddg|djjdv r2t	
j d tjddg|d }t d|d	d
d ddtf fdd}|s`|  tjjd drmd }	nt}	t j|	dd djd< djd< W d    n1 sw   Y  |s|d tjddgjdjd d df< jjd jksJ |s|s|d |r jjdkrވ d  jddksJ d jddksJ n d  jdksJ d jdksJ d |d ksJ d S |sd dksJ d S d S )NrL   rK   r5   r4   r3   )SUz2 get cast, making the checks below more cumbersomer   r   c                 S   s,   t | tjr	| jS t | jtjr| jjS tr   )r   r8   Zndarraybaser6   Z_ndarrayr   r   rB   rB   rC   get_base
  s
   z<TestDataFrameConstructors.test_dict_nocopy.<locals>.get_baseFc_onlyc                    sv   t fddjjD dksJ | rd S t  fddjjD dks'J t fddjjD dks9J d S )Nc                 3   s    | ]}| u V  qd S r   rB   r   )r   rB   rC   r   &
  r  zRTestDataFrameConstructors.test_dict_nocopy.<locals>.check_views.<locals>.<genexpr>rL   c                 3   *    | ]}t |jtjr| u V  qd S r   r   r6   r8   r   )rw   r  rB   rC   r   -
      

c                 3   r  r   r  r   )r   r  rB   rC   r   5
  r  )sumrP   r   )r  rw   r   r   r@   r  rB   rC   check_views
  s   "z?TestDataFrameConstructors.test_dict_nocopy.<locals>.check_viewsr   ZfciuOzincompatible dtyper]   r   rM   Tr  .   r   rU   )F)r<   STRING_DTYPESr  r  r  r8   rb   r6   r   rd   skipr  r   r   r	  r   Zis_np_dtyper   r   FutureWarningrT  type)
r>   r  r   Zany_numeric_ea_dtypeZany_numpy_dtyperR   r   Zc_origr  warnrB   r  rC   test_dict_nocopy	  sR   
	
"z*TestDataFrameConstructors.test_dict_nocopyc                 C   s<   t g ddd}td|i}t|jj|d jjrJ d S )Nr  r  r5   rw   )r   r   r8   r   r   rN   )r>   r  r@   rB   rB   rC   "test_construct_from_dict_ea_seriesc
  s    z<TestDataFrameConstructors.test_construct_from_dict_ea_seriesc                 C   s2   t tddddgd}t dgd}t|| d S )NrL   r   rm   r   r   r.  rW  rB   rB   rC   'test_from_series_with_name_with_columnsj
  s   zATestDataFrameConstructors.test_from_series_with_name_with_columnsc                 C   sV   t g dg dgg dg dgd}t g dg dgtg dd}t|| d S )Nr  rf  )r   r   r   r   r   ))r   rw   )r   r   )r   r   )r   r   r[  r<   r=   rW  rB   rB   rC   test_nested_list_columnsp
  s   z2TestDataFrameConstructors.test_nested_list_columnsc           
      C   s   t jddd}|jtdd}t|}|jdksJ |j|j	k
 s&J ||k
 
 s0J t jg d}|jtdd}t|}|jdksMJ |j|j	k
 sWJ ||k
 
 saJ tj||||f j}t|}t||||d}	t||	 d S )	Nz
2016-04-05r4   r!  rL   r   rL   r4   )r4   r3   r   rF   r  )r  r  rN   r;   rn   r:   r   r  r   r6   r(  ZIntervalIndexZfrom_breaksr8   Zr_r  r<   r=   )
r>   pir   r@   iiZdata2r   Zdata3r  rA   rB   rB   rC   1test_from_2d_object_array_of_periods_or_intervals{
  s    zKTestDataFrameConstructors.test_from_2d_object_array_of_periods_or_intervalszcol_a, col_bc                 C   sF   d}t jt|d t||d W d    d S 1 sw   Y  d S )Nz,Per-column arrays must each be 1-dimensionalr]   r   r=  )r>   Zcol_aZcol_brf   rB   rB   rC   test_error_from_2darray
  s   	"z1TestDataFrameConstructors.test_error_from_2darrayc                 C   s   t g dg ddd}t|d j|d jrJ d|jd< t dtjtjgtjtjtjgtjtjtjgdg dtd	}t|| d S )
Nr  r   F)rX   r   r   rw   r   r   r   rX   r6   )	r   r8   r   _valuesr   rc   rn   r<   r=   ra  rB   rB   rC   &test_from_dict_with_missing_copy_false
  s   
	z@TestDataFrameConstructors.test_from_dict_with_missing_copy_falsec                 C   sN   d}t jt|d ttg ddgd W d    d S 1 s w   Y  d S )Nz:Shape of passed values is \(0, 1\), indices imply \(0, 2\)r]   rw   r   rU  )rd   re   r   r   r8   rb   r>  rB   rB   rC   1test_construction_empty_array_multi_column_raises
  s   "zKTestDataFrameConstructors.test_construction_empty_array_multi_column_raisesc                 C   s8   t g ddgdd}t dg didd}t|| d S )N)r/  r   Nrw   r7   r_  r5   r   ra  rB   rB   rC   $test_construct_with_strings_and_none
  s   z>TestDataFrameConstructors.test_construct_with_strings_and_nonec                 C   s  t jtjd}tdddgi|tdg|dd}t dd tdddgi}W d    n1 s0w   Y  t|| tdddgi|tdg|dtdd	g|dd
}t dd tdddgidd	gd}W d    n1 sow   Y  t|| tdddgidtdg|dd}t dd tdddgi}W d    n1 sw   Y  t|| tdddgidtdg|dd}t dd tdddgidd}W d    n1 sw   Y  t|| d S )Nr[  rw   r   r5   r6   r   future.infer_stringTr   r   )r6   r   rX   rW   rL   rn   )	r  r\  r8   rc   r   r   option_contextr<   r=   r>   r6   rA   r@   rB   rB   rC   test_frame_string_inference
  s@   
z5TestDataFrameConstructors.test_frame_string_inferencec                 C   sn  t jtjd}tdddgi|tdg|dd}t dd tdtddgi}W d    n1 s3w   Y  t	|| tddgdd	gd
|d}t dd ttddgdd	gg}W d    n1 siw   Y  t	|| tddgdd	gd|tddg|dd}t dd ttddgdd	ggddgd}W d    n1 sw   Y  t	|| d S )Nr[  rw   r   r5   r  r  Tr   r|   rM   r   r   )
r  r\  r8   rc   r   r   r  rb   r<   r=   r  rB   rB   rC   .test_frame_string_inference_array_string_dtype
  s,   $zHTestDataFrameConstructors.test_frame_string_inference_array_string_dtypec                 C   s`   t dd ttddgddgg}W d    n1 sw   Y  |jjd jdks.J d S )Nr  TZhelloZgoodbyeZHellor   rK   )r  r  r   r8   rb   rP   rQ   r  rj   rB   rB   rC   %test_frame_string_inference_block_dim
  s   z?TestDataFrameConstructors.test_frame_string_inference_block_dimc                 C   s  t tdgtd}tjtdd t|dgd}W d    n1 s"w   Y  |jjd t	j
ks2J td|i}|jjd t	j
ksCJ ttdgtd}tjtdd t|dgd}W d    n1 sew   Y  |jjd t	j
ksuJ td|i}|jjd t	j
ksJ d S )Nz
2019-12-31r5   zDtype inferencer]   rw   r   r   )r   r    rn   r<   rT  r  r   r   r   r8   r   r   )r>   rr   rs   r  rB   rB   rC    test_inference_on_pandas_objects
  s   z:TestDataFrameConstructors.test_inference_on_pandas_objects)r  r  r  rD   rT   r[   rg   rk   rt   r~   r   r   rd   markparametrizer   r   r   r   r   r   r   r   r   r   r   r  Zskip_array_manager_invalid_testr   r   r   r   r   r   r   r  r  r  r8   rb   rn   r  r+   r,   r-   r  r  r-  r1  r4  r6  r9  r;  r?  rc   rB  r   rM  rR  rV  rX  r^  rb  rm  rs  rw  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r    r   r  r  r  r  r  filterwarningsr  r  r  r  r  r   r   r6   r   r  r  ZBooleanDtypeZFloat64DtypeZ
Int64Dtyper\  r  r  r  r  r  r  r  r  r  r  r  r  rZ   r  r  r	  r  r  r  r  r  r  r  r  r   r   r  r  r  r%  r&  r'  r(  r)  r+  r-  r/  r1  r4  r8  r;  rC  rG  rJ  rM  rS  rV  rX  rY  rZ  r]  r`  rb  rg  rq  rt  r{  r  r  r  r	   ri   r   r   r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r<   ZALL_NUMERIC_DTYPESZDATETIME64_DTYPESZTIMEDELTA64_DTYPESZBOOL_DTYPESr  r  r  ZOBJECT_DTYPESr  r  Zarm_slowr  r  r   r'   r%   r&   r  r  r  r  r  r  r  r  r  r  r"   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  rB   rB   rB   rC   r1   M   s   		
!





	





(	



<	




		


8
A
"


	
'
	

	

&		&
 S=
"(,$&
					

	h""r1   c                   @   sJ   e Zd Zdd Zdd Zejddddgdgd	d	d
gdggdd ZdS )&TestDataFrameConstructorIndexInferencec                 C   s   t jdddd}ttjdt||}t jdddd}ttjdt||}t||d}t jdddd}t	
|j| d S )	Nz1/1/19991/1/2012r   r  rK   z1/1/1980z	12/1/2001)rF  rK  )r  r  r   r8   r   r   r  rO   r   r<   r  rX   )r>   Zrng1rF  Zrng2rK  r@   r,  rB   rB   rC   Atest_frame_from_dict_of_series_overlapping_monthly_period_indexes  s   zhTestDataFrameConstructorIndexInference.test_frame_from_dict_of_series_overlapping_monthly_period_indexesc                 C   s,  t ddd}ttd|d}ttd|dd}ttd|dd}ttd}t|||d}tt|jt|j t|j td}t	
|j| t|||d	}tt|jt|j t|j td}	t	
|j|	 t|||d
}
tt|jt|j t|j td}	t	
|
j|	 t|||d}tt|jt|j t|j td}t	
|j| d}tjt|d t||||d W d    n1 sw   Y  tjt|d t|||d W d    n1 sw   Y  tjt|d t|||d W d    d S 1 sw   Y  d S )NrE   r4   r!  rW   r}  z
US/Centralr   r5   )r   r   rl   )rl   r   r   )r   rl   r   z0Cannot join tz-naive with tz-aware DatetimeIndexr]   )r   rl   r   rA  )r   rl   rA  )rA  r   rl   )r"   r   r   ro   r   r   r  rX   rn   r<   r  rd   re   r   )r>   rS   r  r  Zser3Zser4rL  Z	exp_indexr   Z
exp_index3r  Zdf4Z
exp_index4rf   rB   rB   rC   /test_frame_from_dict_with_mixed_tzaware_indexes  sF   $zVTestDataFrameConstructorIndexInference.test_frame_from_dict_with_mixed_tzaware_indexeszkey_val, col_vals, col_typer{  4utf8r4   r3   r.   c              
   C   s   t d}tj|j||| t|| d}t	|ddgi|d}t	dt
jgdt
jgg|d}|d|jd d df t t|| d S )Nr   )r  rL   rK   r   )rd   Zimportorskipr  r   ZArrowExtensionArrayrb   
dictionaryr.   getattrr   r8   rc   Zisetitemr   r;   rn   r<   r=   )r>   Zkey_valZcol_valsZcol_typeparG  rs   rA   rB   rB   rC   %test_dict_data_arrow_column_expansionE  s   
	  zLTestDataFrameConstructorIndexInference.test_dict_data_arrow_column_expansionN)	r  r  r  r  r  rd   r  r  r  rB   rB   rB   rC   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 d    n1 s#w   Y  t| dd}|j	dk
 s9J t j|d< d}tjt|d t|dd W d    n1 sXw   Y  tjt|d t|d	 dd W d    n1 sww   Y  d}tjt|d t|d W d    n1 sw   Y  tjt|d t|d	 d W d    d S 1 sw   Y  d S )
NrK   r  z)Trying to coerce float values to integersr]   r_   r5   r   r\   r   )r8   r   r   r  rd   re   r   r   roundr   r(  rc   r   r   r;   )r>   r?   rf   r@   rB   rB   rC   "test_floating_values_integer_dtypeY  s,   
"zLTestDataFrameConstructorWithDtypeCoercion.test_floating_values_integer_dtypeN)r  r  r  r  rB   rB   rB   rC   r  X  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ejje d&d'ejd(g d)g d*g d+d)gd,d- Zd.S )/&TestDataFrameConstructorWithDatetimeTZrJ   r  zdateutil/US/Easternc           
      C   s   t dddd}||}td|d|d}td|j}|d	 j|ks$J d
d |D }dd |D }td|i}||d< ||d< ||d< |j}ttdt|dtdt|dgg dd}	t	
||	 d S )N2011/1/12012/1/1W-FRIr  r   r&  rW   rU   rl   c                 S   rj  rB   rk  rm  rB   rB   rC   r     r   zeTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypes.<locals>.<listcomp>c                 S   rj  rB   rk  rm  rB   rB   rC   r     r   r~  dr_tzdatetimes_naivedatetimes_with_tzrs  r  )r~  r  r  r  )r"   ro   r   r   tzinfor6   r   r   r8   r<   rq   )
r>   rJ   r~  r  r@   Ztz_expectedr  r  rs   rA   rB   rB   rC   *test_construction_preserves_tzaware_dtypesy  s*   
	zQTestDataFrameConstructorWithDatetimeTZ.test_construction_preserves_tzaware_dtypespydtTFc                 C   s  |}t d|d}|r| }d}tjt|d td|gidd W d    n1 s+w   Y  d}tjt|d td|idgdd	 W d    n1 sNw   Y  tjt|d t|gdd W d    n1 slw   Y  tjt|d ttj|gt	ddd W d    n1 sw   Y  tjt|d t|dgdgdd
 W d    n1 sw   Y  tjt|d tt
|ggdd W d    n1 sw   Y  tjt|d t|ggdgdd W d    d S 1 sw   Y  d S )N2019r  sCannot convert timezone-aware data to timezone-naive dtype. Use pd.Series\(values\).dt.tz_localize\(None\) instead.r]   r   rs  r5   /Cannot unbox tzaware Timestamp to tznaive dtyper  r  r_  )r    rl  rd   re   r   r   r   r8   rb   rn   r   )r>   Ztz_aware_fixturer  rJ   rn  rf   Zmsg2rB   rB   rC   'test_constructor_data_aware_dtype_naive  s8   "zNTestDataFrameConstructorWithDatetimeTZ.test_constructor_data_aware_dtype_naivec                 C   s   t tdddddd}tddd}t||d	}|d
 js!J d|d
 jd
ks*J t|d
 t|d
d t|d t|dd d S )Nr|  r4   r  rH   r   rm   Z20130110r!  r&  r   zM8[ns, US/Easternrl   )r   r"   r   r6   ra   r<   rq   r   )r>   rr   r~  r@   rB   rB   rC   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|  r4   r  r   )rI   rJ   ra   rm   rH   r   )r"   r   r<   rq   r   )r>   rO  r   rB   rB   rC   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   r!  rW   r   r   )r"   r   r   r   )r>   r~  r  rB   rB   rC   +test_frame_dict_constructor_datetime64_1680  s   zRTestDataFrameConstructorWithDatetimeTZ.test_frame_dict_constructor_datetime64_1680c                 C   s@   t dddd}t|}td|d|d}|d   sJ d S )	Nr  r  r  r  r   r&  rW   rl   )r"   r   r   r#   r(  )r>   r~  rn  r|   rB   rB   rC   +test_frame_datetime64_mixed_index_ctor_1681  s   zRTestDataFrameConstructorWithDatetimeTZ.test_frame_datetime64_mixed_index_ctor_1681c                 C   sX   t ddddd}t|dgd}tdtdddtd	ddtd
ddgi}t|| d S )Nz20130101T10:00:00r4   minr  )ri  rI   r  rJ   Z
timestampsr   r  z20130101T10:01:00z20130101T10:02:00)r"   r   r    r<   r=   )r>   r~  rs   rA   rB   rB   rC   test_frame_timeseries_column  s   


	zCTestDataFrameConstructorWithDatetimeTZ.test_frame_timeseries_columnc                 C   sf   ddg}ddddddd	d
}t |g d|d}t ddtjtjfg|tg dd}t|| d S )NNevadaOhio333333@333333@)rc    r$  333333?@)r  rc  r*  )r&  r'  )rc  r*  i  r   )r(  r+  )r)  r,  r_  )r   r8   rc   r   r<   r=   )r>   r   poprs   rA   rB   rB   rC   test_nested_dict_construction  s   

zDTestDataFrameConstructorWithDatetimeTZ.test_nested_dict_constructionc                 C   sd   t dddd}|jtdd}t|}|jdksJ |j|jk	 s&J ||k	 	 s0J d S )Nz2016-04-05 04:30r4   r}  rH   rL   r   r  )
r"   rN   r;   rn   r:   r   r  r   r6   r(  )r>   rS   r   r@   rB   rB   rC   test_from_tzaware_object_array  s   zETestDataFrameConstructorWithDatetimeTZ.test_from_tzaware_object_arrayc              	   C   s   t jtdtdtdgtdddtjtdddgtdd	dtjtd
d	dggtdj}t|g dd}g d}|j|k	 sAJ d S )Nz2013-01-01 00:00:00z2013-01-02 00:00:00z2013-01-03 00:00:00z2013-01-01 00:00:00-0500r  r  z2013-01-03 00:00:00-0500z2013-01-01 00:00:00+0100ZCETz2013-01-03 00:00:00+0100r5   r   r   )rs  rv  zdatetime64[ns, CET])
r8   rb   r    r  r   rn   r  r   r   r(  )r>   r?   r  Zexpected_dtypesrB   rB   rC   $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   rK   zdatetime64[ns, UTC]r5   )r8   r9   r:   r   r;   r<   r=   )r>   Z
array_dim2r@   rA   rB   rB   rC   test_from_2d_ndarray_with_dtype,  s   zFTestDataFrameConstructorWithDatetimeTZ.test_from_2d_ndarray_with_dtyper   c                 C   s   |h d}d|j  d}tjt|d td|i W d    n1 s%w   Y  tjt|d t| W d    d S 1 sAw   Y  d S )N>   rL   rK   r4   'z' type is unorderedr]   rw   )r  rd   re   r   r   r   )r>   r   r   rf   rB   rB   rC   !test_construction_from_set_raises4  s   
"zHTestDataFrameConstructorWithDatetimeTZ.test_construction_from_set_raisesc                 C   s>   t jdddddd}t|}tdd |jjD sJ d S )	Nr   r2   rs  r5   r3   r4   c                 s   s    | ]}t |tV  qd S r   )r   r$   )r   r?   rB   rB   rC   r   D  s    zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelike.<locals>.<genexpr>)r8   r9   r:   r   r(  rP   r   r>   r?   r@   rB   rB   rC   +test_construction_from_ndarray_datetimelike?  s   zRTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_datetimelikec                 C   s   t jdd}tdgj}d}tjt	|d t
|dg|d W d    n1 s,w   Y  tg d}tjt	|d t
|dd	gd
 W d    d S 1 sSw   Y  d S )NrK   r  r   z'len\(arrays\) must match len\(columns\)r]   r   r_  )r   r   rx  r   r   )r8   r   r   r  r  rb   r6   rd   re   r   r   )r>   r?   r6   rf   Zarr2rB   rB   rC   >test_construction_from_ndarray_with_eadtype_mismatched_columnsF  s   "zeTestDataFrameConstructorWithDatetimeTZ.test_construction_from_ndarray_with_eadtype_mismatched_columnsc                 C   s   g dg dg}t jtdd t|ddhd W d    n1 s"w   Y  t jtdd t|h d	d
 W d    d S 1 sBw   Y  d S )Nr  rf  zindex cannot be a setr]   rw   r   rW   zcolumns cannot be a set>   rw   r   r   r   r=  r  rB   rB   rC   "test_columns_indexes_raise_on_setsQ  s   "zITestDataFrameConstructorWithDatetimeTZ.test_columns_indexes_raise_on_setsz/StringDType only available in numpy 2 and above)reasonr   r   )r   r   r   r  c                 C   s\   ddl m} tj|d | d|d< t|}|d jtjks J |d |d k s,J d S )Nr   )StringDTyperw   r5   )Znumpy.dtypesr9  r8   rb   r   r6   r   r(  )r>   r   r9  r  rB   rB   rC    test_np_string_array_object_castZ  s
   
zGTestDataFrameConstructorWithDatetimeTZ.test_np_string_array_object_castN)r  r  r  rd   r  r  r  r  r   r!  r"  r#  r%  r.  r/  r0  r1  set	frozensetr3  r5  r6  r7  Zskipifr   r:  rB   rB   rB   rC   r  x  s8    

!	

	r  c                 C   s   t | tr
| jd S | jd S )Nr   r   )r   r   r   r  rB   rB   rC   get1l  s   


r=  c                   @   s   e Zd Zejeedgddd Zejdd Zej	
ddd	gd
d Zdd Zdd Zdd Zej	
dejejgdd Zej	
deejgdd Zej	jdd Zej	
deejgdd Zej	jej	
dejejgdd Zdd ZdS )TestFromScalarNparamsc                 C      |j S r   paramr>   r  rB   rB   rC   boxt     zTestFromScalar.boxc                    s   dt di tu rdg d< |d u rtjfi  S |tu r2tu r+ fddS  fddS tu r= fddS  fd	dS )
NrX   rK   r   r   c                    s   | | dfi  |S )NrM   rB   r   kwargsextrar   rB   rC   r     s    z,TestFromScalar.constructor.<locals>.<lambda>c                    s   d| ifi  |S Nr   rB   rG  rI  rB   rC   r     r  c                    s   | | gfi  |S r   rB   rG  rI  rB   rC   r     r  c                    s   d| | gifi  |S rK  rB   rG  rI  rB   rC   r     s    )r   r   	functoolspartialr   r   )r>   r   rE  rB   rI  rC   r   x  s   
zTestFromScalar.constructorr6   rh   r   c                 C   s8   |t j|d}t|j|ksJ t| sJ d S r  )r  r   r8   r(  r   r#   )r>   r6   r   r   rB   rB   rC   test_from_nat_scalar  s   z#TestFromScalar.test_from_nat_scalarc                 C   s(   t d}||dd}t||ksJ d S )NrL   r   r5   r   r=  )r>   r   r  r   rB   rB   rC   *test_from_timedelta_scalar_preserves_nanos  s   z9TestFromScalar.test_from_timedelta_scalar_preserves_nanosc                 C   s,   |t d }||dd}t||ksJ d S )NrL   rh   r5   rO  )r>   r   Zfixed_now_tsrn  r   rB   rB   rC   *test_from_timestamp_scalar_preserves_nanos  s   z9TestFromScalar.test_from_timestamp_scalar_preserves_nanosc                 C   s4   t d}| }||td}tt|tjsJ d S )NrL   r5   )r   Zto_timedelta64rn   r   r=  r8   r  )r>   r   r  Ztd64r   rB   rB   rC   #test_from_timedelta64_scalar_object  s   z2TestFromScalar.test_from_timedelta64_scalar_objectclsc                 C   s   |dd}t jdt jdi| }|t ju rd}nd}dd|g}tjt|d	 |||d
 W d    n1 s8w   Y  |dd}tjt|d	 |||d
 W d    d S 1 s[w   Y  d S )Nr   rU   r   rh   r   z:<class 'numpy.timedelta64'> is not convertible to datetime|r  r]   r5   r3   )r8   r   r  joinrd   re   r   )r>   r   rS  r@  r6   Zmsg1rf   rB   rB   rC   (test_from_scalar_datetimelike_mismatched  s   


"z7TestFromScalar.test_from_scalar_datetimelike_mismatchedc                 C   s   |t u s|tu r|tu rtjjddd}|| tddd}d}|tj	u r.t	|d}d}||}	t
|	}
t|	}t|
tu sCJ |
jj|ksKJ ||ksQJ d S )	NziTimestamp constructor has been updated to cast dt64 to non-nano, but DatetimeArray._from_sequence has notTr8  strict'  rL   rf  rA  re  )r  r   r   rd   r  xfailapplymarkerr	   r8   r   r=  r<   	get_dtyper  r    asm8r6   r>   r   rS  r  rE  r   r  r@  r  rs   itemr6   rB   rB   rC   #test_from_out_of_bounds_ns_datetime  s"   


z2TestFromScalar.test_from_out_of_bounds_ns_datetimec                 C   sR   t t t jjd}||}t|}t|t ju sJ t|}|t	ks'J d S r  )
r8   r   iinfor0   maxr=  r  r<   r\  rn   )r>   r   r@  rs   r_  r6   rB   rB   rC   test_out_of_s_bounds_datetime64  s   
z.TestFromScalar.test_out_of_s_bounds_datetime64c                 C   s   |t u s|tu r|tu rtjjddd}|| tdddtddd }d}|tj	u r4t	|d}d	}||}	t
|	}
t|	}t|
tu sIJ |
jj|ksQJ ||ksWJ d S )
NzoTimedeltaArray constructor has been updated to cast td64 to non-nano, but TimedeltaArray._from_sequence has notTrW  rY  rL   i  zm8[us]rA  zm8[s])r  r   r   rd   r  rZ  r[  r	   r8   r  r=  r<   r\  r  r   r]  r6   r^  rB   rB   rC   $test_from_out_of_bounds_ns_timedelta  s"   


z3TestFromScalar.test_from_out_of_bounds_ns_timedeltac                 C   sN   |t t jjd}||}t|}t||u sJ t|}|tks%J d S r  )	r8   ra  r0   rb  r=  r  r<   r\  rn   )r>   r   rS  r@  rs   r_  r6   rB   rB   rC    test_out_of_s_bounds_timedelta64  s   
z/TestFromScalar.test_out_of_s_bounds_timedelta64c                 C   sz   d}t d|d}|d u s|tu r|tu rd}t}nd}t}tj||d ||dd W d    d S 1 s6w   Y  d S )	Nr  r  r  r  r  r]   rh   r5   )r    r   r   r   r   rd   re   )r>   r   rE  r   rJ   rn  rf   errrB   rB   rC   test_tzaware_data_tznaive_dtype  s   "z.TestFromScalar.test_tzaware_data_tznaive_dtype)r  r  r  rd   fixturer  r   rE  r   r  r  rN  rP  rQ  rR  r8   r   r  rV  r	   r`  Z
skip_ubsanrc  r
   rd  re  rg  rB   rB   rB   rC   r>  s  s,    






r>  c                   @   sZ   e Zd Zejddgddd Zejdd Zdd	 Zd
d Zdd Z	dd Z
dd ZdS )TestAllowNonNanoTFr?  c                 C   rA  r   rB  rD  rB   rB   rC   as_td  rF  zTestAllowNonNano.as_tdc                 C   sH   t dt jd}|r||d  }tj||jdS tj||jdS )Nr   re  r   r5   )	r8   r9   r;   r0   r   r(   Z_simple_newr6   r$   )r>   rj  r   rB   rB   rC   r?     s
   zTestAllowNonNano.arrc                 C      t |}|j|jksJ d S r   )r   r6   )r>   r?   rr   rB   rB   rC   test_index_allow_non_nano&     z*TestAllowNonNano.test_index_allow_non_nanoc                 C   s,   |rt |}nt|}|j|jksJ d S r   )r  ZTimedeltaIndexr   r6   )r>   r?   rj  rr   rB   rB   rC   test_dti_tdi_allow_non_nano*  s   z,TestAllowNonNano.test_dti_tdi_allow_non_nanoc                 C   rk  r   )r   r6   )r>   r?   r  rB   rB   rC   test_series_allow_non_nano1  rm  z+TestAllowNonNano.test_series_allow_non_nanoc                 C   s    t |}|jd |jksJ d S r   r   r   r6   r4  rB   rB   rC   test_frame_allow_non_nano5  s   z*TestAllowNonNano.test_frame_allow_non_nanoc                 C   s$   t d|i}|jd |jksJ d S r   rp  r4  rB   rB   rC   #test_frame_from_dict_allow_non_nano9  s   z4TestAllowNonNano.test_frame_from_dict_allow_non_nanoN)r  r  r  rd   rh  rj  r?   rl  rn  ro  rq  rr  rB   rB   rB   rC   ri    s    

ri  )Jrb   collectionsr   r   r   r   collections.abcr   dataclassesr   r	   r   r
   rL  r9  numpyr8   r   Znumpy.mar   rd   rw  Zpandas._libsr   Zpandas.compat.numpyr   Zpandas.errorsr   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandas.core.dtypes.commonr   Zpandas.core.dtypes.dtypesr   r   r   r   Zpandasr  r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   Zpandas._testingZ_testingr<   Zpandas.arraysr$   r%   r&   r'   r(   r   r   r1   r  r  r  r=  r>  ri  rB   rB   rB   rC   <module>   sl    D                     UK  u #