U
    f/eL                    @   s0  d dl mZ d dlmZmZ d dlmZ d dlZd dlm	Z	 d dl
Z
d dlmZmZ d dlm  mZ d dlmZmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z+ d d	l,m-Z-m.Z. d d
l/m0Z0 G dd dZ1G dd dZ2G dd dZ3dd Z4dS )    )OrderedDict)datetime	timedelta)tzoffsetN)iNaTlib)is_categorical_dtypeis_datetime64tz_dtype)CategoricalDtype)Categorical	DataFrameDatetimeIndexIndexIntervalIntervalIndex
MultiIndexNaTPeriod
RangeIndexSeries	Timestamp
date_rangeisnaperiod_rangetimedelta_range)IntervalArrayperiod_array)NumericBlockc                   @   s  e Zd Zejddd dfdd dfdd dfdd dfd	d dfd
d dfdd dfdd dfdd dfdd dfdd dfgdd Zdd Zdd Zdd Z	dd Z
dd Zejdeeegdd Zejdejed gd!d" Zejd#d$d%d&d'd(d)d*gejd+d,eg gd-d. Zd/d0 Zd1d2 Zejd3d4d5d6gd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD Zejd#dEdFdGdHgdIdJ ZejdKdLdMgdNdOgee dPdMdQdRee dPdMdQdSdTe!dUdVdWggdXdY Z"dZd[ Z#d\d] Z$d^d_ Z%d`da Z&dbdc Z'ddde Z(dfdg Z)dhdi Z*djdk Z+dldm Z,dndo Z-dpdq Z.drds Z/dtdu Z0dvdw Z1dxdy Z2dzd{ Z3ejd|dLdMd}gd~ee4d}e5dddgdd e4d}D e6dd e4d}gdd Z7dd Z8dd Z9dd Z:dd Z;dd Z<e=j>ejjd+e dd}dSde dd}de?dd}de@dd}ddReedeABdLdMd}geCdUd}gdd ddd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXddĄ ZYddƄ ZZddȄ Z[ddʄ Z\dd̄ Z]dd΄ Z^ddЄ Z_ejdej`ejagejd#ddgejddddddddgdd݄ Zbejddecejd,gdd Zddd Zeejdefeggdd Zhejjdeejigddgddd Zjejjdeejigddgddd Zkdd Zlejjdeejigddgddd Zmejjndddd Zodd Zpdd Zqdd Zrdd Zsdd Ztd d ZuejddMejd,ed gdd Zvdd Zwdd Zxd	d
 Zydd Zzdd Z{dd Z|ej}ddd Z~dd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zejjd+e d&d'de?dd'de@d(d'ddRgd)d dd*d+ Zejjd+e d&d'de?dd'de@d(d'ddRgd,d dd-d. Zejd#ejejgd/d0 Zejd1d2d3gd4d5 Zejd#d,d6d(gd7d8 Zd9d: Zd;d< Zejd=ddgd>d? Zd@dA ZdBdC ZejdDedEedFgdEdFgg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\ Zd,S (]  TestSeriesConstructorszconstructor,check_index_typec                   C   s   t  S Nr    r!   r!   I/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/series/test_constructors.py<lambda>;       zTestSeriesConstructors.<lambda>Tc                   C   s   t d S r   r    r!   r!   r!   r"   r#   <   r$   c                   C   s   t i S r   r    r!   r!   r!   r"   r#   =   r$   c                   C   s   t dS )Nr!   r    r!   r!   r!   r"   r#   >   r$   Fc                   C   s   t g S r   r    r!   r!   r!   r"   r#   ?   r$   c                   C   s   t dd dD S )Nc                 s   s   | ]
}|V  qd S r   r!   .0_r!   r!   r"   	<genexpr>@   s     2TestSeriesConstructors.<lambda>.<locals>.<genexpr>r!   r    r!   r!   r!   r"   r#   @   r$   c                   C   s
   t d dS Ndatar    r!   r!   r!   r"   r#   A   r$   c                   C   s
   t i dS r*   r    r!   r!   r!   r"   r#   B   r$   c                   C   s
   t ddS )Nr!   r+   r    r!   r!   r!   r"   r#   C   r$   c                   C   s
   t g dS r*   r    r!   r!   r!   r"   r#   D   r$   c                   C   s   t dd dD dS )Nc                 s   s   | ]
}|V  qd S r   r!   r%   r!   r!   r"   r(   E   s     r)   r!   r+   r    r!   r!   r!   r"   r#   E   r$   c              	   C   sH   t t t }| }W 5 Q R X t|jdks4tt j|||d d S )Nr   check_index_type)tmassert_produces_warningDeprecationWarningr   lenindexAssertionErrorassert_series_equal)selfconstructorr.   expectedresultr!   r!   r"   test_empty_constructor4   s
    z-TestSeriesConstructors.test_empty_constructorc              
   C   sD   d}t dtg}|D ],}tjt|d tg d|d W 5 Q R X qd S )Nznot understoodr   matchtime)namedtype)r   listpytestraises	TypeErrorr   )r6   msgZinvalid_listr?   r!   r!   r"   test_invalid_dtypeQ   s
    
z)TestSeriesConstructors.test_invalid_dtypec              	   C   sN   t ddg}t jddg|d}tjtdd t|dd	gd
 W 5 Q R X d S )N)ai8)bZf4)   g?)   ir?   zUse DataFrame insteadr;   ABr3   )npr?   arrayrA   rB   
ValueErrorr   )r6   Zc_dtypeZcdt_arrr!   r!   r"   test_invalid_compound_dtypeY   s    z2TestSeriesConstructors.test_invalid_compound_dtypec                 C   sF   t d}t|trttt dgdks,ttt dgdksBtd S )Ng      ?      ?rI   )r   
isinstancefloatr4   int)r6   Zscalarr!   r!   r"   test_scalar_conversiona   s    z-TestSeriesConstructors.test_scalar_conversionc                 C   sH   |\}}t |tdd}t |gd |d}|j|ks8tt|| d S )N   rN   rK   )r   ranger?   r4   r/   r5   )r6   ea_scalar_and_dtype	ea_scalarea_dtypeserr8   r!   r!   r"   test_scalar_extension_dtypek   s
    z2TestSeriesConstructors.test_scalar_extension_dtypec           	   	   C   sh  t t t }W 5 Q R X |jjs(tt|}|jjs<tt |j|jsPtt|jt|jkshttdt	j
gddgd}|jt	jkst|d t	j
kst|jjrtt t t jjrtW 5 Q R X tjtdd" tt	jddt	dd W 5 Q R X d|_t|j}d}||ks(ttdd	gdd
gg}d}tjt|d t| W 5 Q R X d S )NZhellor   rI   rN   zData must be 1-dimensionalr;   rX   r         z8initializing a Series from a MultiIndex is not supported)r/   r0   r1   r   r3   Z_is_all_datesr4   ZequalContentsidrO   NaNr?   object_rA   rB   rQ   randomrandnaranger>   r   Zfrom_arraysNotImplementedError)	r6   datetime_seriesZempty_seriesZderivedmixedrsZxpmrD   r!   r!   r"   test_constructorv   s.    &
z'TestSeriesConstructors.test_constructorinput_classc              	   C   s6  t t t }t| }W 5 Q R X t j||dd tdd}t| dd}t j||dd tdd}t| dd}t j||dd |tk	r2t t& ttdd}t| tdd}W 5 Q R X t || ttjtdd}t| tddd}t || td	t	td
d}td	td
d}t || d S )NFr-   float64rK   category
   rN   r3   r?    rX   r?   r3   )
r/   r0   r1   r   r5   r@   rY   rO   nanstr)r6   rm   emptyempty2r!   r!   r"   test_constructor_empty   s*    


z-TestSeriesConstructors.test_constructor_empty	input_argrt   c                 C   s4   t dtdd}t |tdd}tj||dd d S )Nrn   rp   rs   rN   Fr-   r   rY   r/   r5   )r6   ry   rv   rw   r!   r!   r"   test_constructor_nan   s    z+TestSeriesConstructors.test_constructor_nanr?   f8rG   M8[ns]m8[ns]ro   objectzdatetime64[ns, UTC]r3   Nc                 C   s.   t ||d}|j|kstt|dks*td S )Nrs   r   )r   r?   r4   r2   )r6   r?   r3   r9   r!   r!   r"   test_constructor_dtype_only   s    z2TestSeriesConstructors.test_constructor_dtype_onlyc              	   C   sB   t t tdddgd}W 5 Q R X |j dddgks>td S )NrH   rF   crN   )r/   r0   r1   r   r3   tolistr4   r6   r9   r!   r!   r"   $test_constructor_no_data_index_order   s    z;TestSeriesConstructors.test_constructor_no_data_index_orderc                 C   s&   t dgtd}t|jd s"td S NrI   rq   r   )r   ru   rO   isnanilocr4   r   r!   r!   r"   $test_constructor_no_data_string_type   s    z;TestSeriesConstructors.test_constructor_no_data_string_typeitementryu   ѐ   c                 C   s*   t |dgtd}|jd t|ks&td S r   )r   ru   r   r4   )r6   r   r9   r!   r!   r"   +test_constructor_string_element_string_type   s    zBTestSeriesConstructors.test_constructor_string_element_string_typec                 C   sl   t dd g|d}| }t ddg}t|| |jd d ksBtt dtjg|d}t|jd shtd S )NxrK   FTrI   )	r   r   r/   r5   r   r4   rO   rt   r   )r6   string_dtyper]   r9   r8   r!   r!   r"   $test_constructor_dtype_str_na_values   s    z;TestSeriesConstructors.test_constructor_dtype_str_na_valuesc                 C   sH   ddddg}t |}tddddg|d	}t||d	}t||  d S )
NdrH   rF   r   r`      rX   rN   )sortedr   r/   r5   Z
sort_index)r6   Zindex1index2s1s2r!   r!   r"   test_constructor_series   s
    z.TestSeriesConstructors.test_constructor_seriesc                 C   s@   G dd d}t ttddd}t | dd}t|| d S )Nc                   @   s   e Zd Zdd ZdS )z>TestSeriesConstructors.test_constructor_iterable.<locals>.Iterc                 s   s   t dE d H  d S )Nrp   )rY   )r6   r!   r!   r"   __iter__   s    zGTestSeriesConstructors.test_constructor_iterable.<locals>.Iter.__iter__N)__name__
__module____qualname__r   r!   r!   r!   r"   Iter   s   r   rp   int64rK   r   r@   rY   r/   r5   )r6   r   r8   r9   r!   r!   r"   test_constructor_iterable   s    z0TestSeriesConstructors.test_constructor_iterablec                 C   s4   t ttddd}t tddd}t|| d S )Nrp   r   rK   r   r6   r8   r9   r!   r!   r"   test_constructor_sequence   s    z0TestSeriesConstructors.test_constructor_sequencec                 C   s"   t dg}t d}t|| d S )Nabcr   r/   r5   r   r!   r!   r"   test_constructor_single_str  s    
z2TestSeriesConstructors.test_constructor_single_strc                 C   sZ   t dddgdd}dddgdtjdddgddfD ]"}t |dddgd}t|| q2d S )	NrI   r_   rX   r   rK   rI   r_   rX   r   rN   )r   rO   rP   r/   r5   )r6   r8   objr9   r!   r!   r"   test_constructor_list_like  s    $z1TestSeriesConstructors.test_constructor_list_likeboolint32r   rn   c                 C   s(   t tdddg|d}|j|ks$td S )Nr   r_   r`   rK   )r   r   r?   r4   )r6   r?   sr!   r!   r"   test_constructor_index_dtype  s    z3TestSeriesConstructors.test_constructor_index_dtype
input_valsrI   r_   12z1/1/2011Hperiodsfreq
US/Eastern)r   r   tzr      )leftrightc                 C   s*   t ||d}t ||}t|| d S NrK   r   astyper/   r5   )r6   r   r   r9   r8   r!   r!   r"   test_constructor_list_str  s    z0TestSeriesConstructors.test_constructor_list_strc                 C   sJ   t ddtjg|d}t ddtjgtd}t|| t|d sFtd S )NrS          @rK   z1.0z2.0r_   )r   rO   rt   r   r/   r5   r   r4   )r6   r   r9   r8   r!   r!   r"   test_constructor_list_str_na.  s    z3TestSeriesConstructors.test_constructor_list_str_nac                 C   sr   dd t dD }t|}tt d}t|| dd t dD }t|t ddd}t dd|_t|| d S )Nc                 s   s   | ]
}|V  qd S r   r!   r&   ir!   r!   r"   r(   5  s     zDTestSeriesConstructors.test_constructor_generator.<locals>.<genexpr>rp   c                 s   s   | ]
}|V  qd S r   r!   r   r!   r!   r"   r(   <  s        rN   )rY   r   r/   r5   r3   )r6   genr9   expr!   r!   r"   test_constructor_generator4  s    z1TestSeriesConstructors.test_constructor_generatorc                 C   sr   t dd td}t|}ttd}t|| t dd td}t|tddd}tdd|_t|| d S )Nc                 S   s   | S r   r!   r   r!   r!   r"   r#   C  r$   z=TestSeriesConstructors.test_constructor_map.<locals>.<lambda>rp   c                 S   s   | S r   r!   r   r!   r!   r"   r#   J  r$   r   rN   )maprY   r   r/   r5   r3   )r6   rk   r9   r   r!   r!   r"   test_constructor_mapA  s    z+TestSeriesConstructors.test_constructor_mapc                 C   sn   t ddddddgdddgdd}t|}t|j| tt ddd	gd
d}tddd	gd
d}t|| d S )Nr   rI   r_   rF   rH   r   T)ZfastpathrX   r   rK   )r   r   r/   Zassert_categorical_equalvaluesr5   )r6   catresr9   r8   r!   r!   r"   test_constructor_categoricalO  s     z3TestSeriesConstructors.test_constructor_categoricalc                 C   s4   t tdddgdd}t|s"tt|js0td S NrI   r_   rX   ro   rK   )r   r   r   r4   r?   )r6   r   r!   r!   r"   *test_construct_from_categorical_with_dtypeY  s    zATestSeriesConstructors.test_construct_from_categorical_with_dtypec                 C   s0   t dddgdd}t|stt|js,td S r   )r   r   r4   r?   )r6   r]   r!   r!   r"   ,test_construct_intlist_values_category_dtype_  s    zCTestSeriesConstructors.test_construct_intlist_values_category_dtypec              	   C   sz  t ddddddddg}t|dd}|jdks2tt|t|ksFtt|j t| td|i}|d }t	|| |j
d d df }t	|| t|t|kstt|j t| td|i}|d }t	|| t|t|kstt|j t| t||dd	}|d }|d
 }t	|| tj	||dd |jd
ksNtt|t|ksdtt|j t| d S )NrF   rH   r   rL   r>   ro   r   rI   )rL   rM   CrM   F)Zcheck_names)r   r   r?   r4   r2   ru   r   r   r/   r5   r   r>   )r6   Zfactorr   dfr9   Zresult1Zresult2r!   r!   r"   *test_constructor_categorical_with_coerciond  s:    



zATestSeriesConstructors.test_constructor_categorical_with_coercionc                 C   s   t ddgddgddggddgd}t|j|d< |jd j}|jjd }||ksTt|jd }||ksjt|jjd }||kstd S )	NrI   zJohn P. Doer_   z	Jane DoveZ	person_idperson_name)columnsr   )r   r   r   r   r4   loc)r6   r   r8   r9   r!   r!   r"   +test_constructor_categorical_with_coercion2  s    
zBTestSeriesConstructors.test_constructor_categorical_with_coercion2c                 C   s<   t dddg}t |dd}t dddgdd}t|| d S )NrF   rH   r   ro   rK   r   )r6   seriesr9   r8   r!   r!   r"   &test_constructor_series_to_categorical  s    z=TestSeriesConstructors.test_constructor_series_to_categoricalc                 C   s   t ddgtdddgddd}t|jdks0tt|jjt	dddg |jj
sVtt ddgtddgd}t|js|tt|jjt	ddg |jj
dkstt ddd	gtddgddd
}t ddgdd	gtddgddd
}t|| d S )NrF   rH   r   T)orderedrK   Fr   rI   rq   )r   r
   r   r?   r4   r/   assert_index_equalr   
categoriesr   r   r5   r6   r9   r8   r!   r!   r"   "test_constructor_categorical_dtype  s,         z9TestSeriesConstructors.test_constructor_categorical_dtypec                 C   sd   t tddd}ttd|d}ttd|d}t|dd}t|| t|dd}t|| d S )NZdabcT)r   r   ZabcabcrK   ro   )r
   r@   r   r   r/   r5   )r6   Zcdtr8   r   r9   r!   r!   r"   #test_constructor_categorical_string  s    z:TestSeriesConstructors.test_constructor_categorical_stringc                 C   sx  t ddddg}t|dd}|j|k	s*tdddg|j_tjddddgtjd	}tjddddgtjd	}t	
| | t	
| | d|d
< tjddddgtjd	}t	
| | t	
| | t ddddg}t|}|j|kstdddg|j_tjddddgtjd	}t	
| | t	
| | d|d
< tjddddgtjd	}t	
| | t	
| | d S )NrF   rH   r   T)copyrI   r_   rX   rK   r   )r   r   r   r4   r   rO   rP   r   rc   r/   assert_numpy_array_equalZ	__array__r   )r6   r   r   Zexp_sZexp_catZexp_s2r!   r!   r"   !test_categorical_sideeffects_free  s.    z8TestSeriesConstructors.test_categorical_sideeffects_freec                 C   sF   t dddgtddgd}t tddtjgddgd}t|| d S )NrF   rH   r   rK   )r   )r   r
   r   rO   rt   r/   r5   )r6   r   r   r!   r!   r"   test_unordered_compare_equal  s    z3TestSeriesConstructors.test_unordered_compare_equalc                 C   s  t jdtd}t|}ttjtjtjg}t|| d|d< d|d< ddd	g}t||d
}tdtjdg|d
}t|| d|d< t||d
}tdddg|d
}t|| t jdtd}t|}ttjtjtjgtd}t|| d|d< d|d< ddd	g}t||d
}tdtjdg|td}t|| d|d< t||d
}tdddg|td}t|| t jdt	d}t|}ttjtjtjgt
d}t|| d|d< d|d< ddd	g}t||d
}tdtjdg|t
d}t|| d|d< t||d
}tdddg|t	d}t|| t jddd}t|}ttttgdd}t|| tddd|d< tddd|d< ddd	g}t||d
}ttdddttdddg|dd}t|| tddd|d< t||d
}ttdddtdddtdddg|dd}t|| d S )NrX   rK           r   r   r_   rF   rH   r   rN   rS   rI   rq   TFr}     rX   )ma
masked_allrU   r   rO   rt   r/   r5   rV   r   r   r   r   )r6   r,   r9   r8   r3   r!   r!   r"   test_constructor_maskedarray  s    



 z3TestSeriesConstructors.test_constructor_maskedarrayc                 C   s>   t jdtd }t|}ttjtjtjg}t|| d S )Nr   rK   )	r   r   rU   Zharden_maskr   rO   rt   r/   r5   r6   r,   r9   r8   r!   r!   r"   %test_constructor_maskedarray_hardened<  s    z<TestSeriesConstructors.test_constructor_maskedarray_hardenedc                 C   s:   t dddd}dd |D }t||d}|j|ks6td S )NZ20090415Z20090519rM   r   c                 S   s   i | ]
}|d qS rI   r!   )r&   kr!   r!   r"   
<dictcomp>E  s      zNTestSeriesConstructors.test_series_ctor_plus_datetimeindex.<locals>.<dictcomp>rN   )r   r   r3   r4   )r6   rngr,   r9   r!   r!   r"   #test_series_ctor_plus_datetimeindexC  s    z:TestSeriesConstructors.test_series_ctor_plus_datetimeindexc                 C   s,   t dddg}tj|jttddd d S )Nr   rI   r_   rX   T)exact)r   r/   r   r3   r   rY   r6   r   r!   r!   r"   test_constructor_default_indexJ  s    z5TestSeriesConstructors.test_constructor_default_indexinputrX   r   rF   rH   c                 c   s   | ]
}|V  qd S r   r!   r   r!   r!   r"   r(   U  s     z TestSeriesConstructors.<genexpr>c                 C   s   | S r   r!   r   r!   r!   r"   r#   V  r$   c              	   C   s4   d}t jt|d t|tdd W 5 Q R X d S )Nz;Length of values \(3\) does not match length of index \(4\)r;   r`   rN   )rA   rB   rQ   r   rO   rf   )r6   r   rD   r!   r!   r"   test_constructor_index_mismatchN  s    z6TestSeriesConstructors.test_constructor_index_mismatchc                 C   s>   t tdtddd}t dtddd}t|| d S )Nd   r`   r   rq   )r   rO   rP   rf   r/   r5   r   r!   r!   r"   test_constructor_numpy_scalara  s    z4TestSeriesConstructors.test_constructor_numpy_scalarc              	   C   s6   d}t jt|d tdgdddgd W 5 Q R X d S )Nz;Length of values \(1\) does not match length of index \(3\)r;   foorF   rH   r   rN   rA   rB   rQ   r   r6   rD   r!   r!   r"   test_constructor_broadcast_listi  s    z6TestSeriesConstructors.test_constructor_broadcast_listc                 C   s2   t  }||g}t|ddgd}t|ts.td S )Nr   rI   rN   )r/   ZmakeTimeDataFramer   rT   r4   )r6   r   objsr   r!   r!   r"   test_constructor_cornerq  s    z.TestSeriesConstructors.test_constructor_cornerc                 C   s`   t tdddgdd}|jtdks,tt tddtjgddd}|jtdks\td S )NrS   g       @rG   rK   Tr   r?   r|   )r   rO   rP   r?   r4   rt   r   r!   r!   r"   test_constructor_sanitizew  s    z0TestSeriesConstructors.test_constructor_sanitizec                 C   st   dgt dgfD ]\}t|}t|dtd}t|| d|d< ||rNt|d dks^t|d dkstqd S )NrS   Tr   r   r   )rO   rP   r   rU   r/   r5   equalsr4   )r6   r,   r   yr!   r!   r"   test_constructor_copy~  s    z,TestSeriesConstructors.test_constructor_copyZ20170101r   r   r   z1 dayZ2012Q1Qr   c                 C   s
   t | jS r   typer   r   r!   r!   r"   r#     r$   )idsc                 C   s"   t |}|jjd j|k	std S )Nr   )r   _mgrblocksr   r4   )r6   r3   r   r!   r!   r"   test_constructor_limit_copies  s    z4TestSeriesConstructors.test_constructor_limit_copiesc              	   C   s   t t td tdd}W 5 Q R X |jtjks6ttd tdt	d}|jtj
ksXtt t( ttd gd}ttd gd}W 5 Q R X t || d S )Nr   rN   rq   )r/   r0   r1   r   rY   r?   rO   rn   r4   r   rc   rP   r   r5   r6   r   r8   r!   r!   r"   test_constructor_pass_none  s    z1TestSeriesConstructors.test_constructor_pass_nonec                 C   s  t tjtjgtjd}|jtjks&ttt tjtjg| tt ttjtjg| t t	t	g}|jdksvttt t	t	g| tt tt	t	g| tt t	tjg| tt tt	tjg| tt tjt	g| tt ttjt	g| d S )NrK   datetime64[ns])
r   rO   rt   rn   r?   r4   r/   r5   rP   r   )r6   r   r!   r!   r"   test_constructor_pass_nan_nat  s    z4TestSeriesConstructors.test_constructor_pass_nan_natc              	   C   s4   d}t jt|d tdddgtd W 5 Q R X d S )Nz!could not convert string to floatr;   rF   rH   r   rK   )rA   rB   rQ   r   rU   r   r!   r!   r"   test_constructor_cast  s    z,TestSeriesConstructors.test_constructor_castc              	   C   s   d}t jt|d tdddgdd}W 5 Q R X tddd	gdd}t || t jt|d tdddgd
d}W 5 Q R X tddd	gd
d}t || d S )Nz*Values are too large to be losslessly castr;   rI      i2 Zint8rK   i2   uint8)r/   r0   FutureWarningr   r5   )r6   rD   r]   r8   r!   r!   r"   0test_constructor_signed_int_overflow_deprecation  s    zGTestSeriesConstructors.test_constructor_signed_int_overflow_deprecationc              	   C   s0   d}t jt|d tdg|d W 5 Q R X d S )Nz5Trying to coerce negative values to unsigned integersr;   rK   )rA   rB   OverflowErrorr   )r6   Z
uint_dtyperD   r!   r!   r"   (test_constructor_unsigned_dtype_overflow  s    z?TestSeriesConstructors.test_constructor_unsigned_dtype_overflowc              	   C   s4   d}t jt|d tdddg|d W 5 Q R X d S )Nz)Trying to coerce float values to integersr;   rI   r_         @rK   r   r6   Zany_int_dtyperD   r!   r!   r"   "test_constructor_coerce_float_fail  s    z9TestSeriesConstructors.test_constructor_coerce_float_failc                 C   s6   t dddg|d}t dddg|}t|| d S )NrI   r_   r  rK   r   )r6   Zfloat_dtyper   r8   r!   r!   r"   #test_constructor_coerce_float_valid  s    z:TestSeriesConstructors.test_constructor_coerce_float_validc              	   C   s6   d}t jt|d tddtjg|d W 5 Q R X d S )Nz#cannot convert float NaN to integerr;   rI   r_   rK   )rA   rB   rQ   r   rO   rt   r  r!   r!   r"   3test_constructor_invalid_coerce_ints_with_float_nan  s    zJTestSeriesConstructors.test_constructor_invalid_coerce_ints_with_float_nanc                 C   s8   t dddg}t |tjd}d|d< |d dks4td S )NrI   r_   rX   rK   r   )r   rO   r   r4   )r6   r   r   r!   r!   r"   test_constructor_dtype_no_cast  s    z5TestSeriesConstructors.test_constructor_dtype_no_castc                 C   sN   t tddgtd}|jd tdks*t|jd dks<t|jtksJtd S )N20130101ZNOVrK   r   rI   )r   r   r   r   r4   r?   r   r!   r!   r"   "test_constructor_datelike_coercion  s    z9TestSeriesConstructors.test_constructor_datelike_coercionc                 C   sn   d  }d  }d  }td  }t|||d|d}|jd }|jtksRt|jd }|jtksjtd S )	Nz216 3T19z	2T15 4H19z416 4T20z2016-01-22 2019-09-07)wing1wing2matrN   Z3T19Z216)splitpdZto_datetimer   r   r?   r   r4   )r6   Zbellyr   r!  r"  r   r9   r!   r!   r"   #test_constructor_datelike_coercion2  s    

z:TestSeriesConstructors.test_constructor_datelike_coercion2c                 C   sB   t ddtjg}||dd}|t dt dtg}t|| d S )N	   rp   r}   rK   )r   r   valuer/   Zassert_equal)r6   Zframe_or_seriesr   r9   r8   r!   r!   r"   (test_constructor_mixed_int_and_timestamp  s    z?TestSeriesConstructors.test_constructor_mixed_int_and_timestampc                 C   sP   t d d d d t d gt d d t d gfD ]}t|}|jdks0tq0d S Nr}   )rO   rP   r   nowr   r?   r4   )r6   arrr9   r!   r!   r"   %test_constructor_datetimes_with_nulls  s
    z<TestSeriesConstructors.test_constructor_datetimes_with_nullsc                 C   s   t tdtdd}t| s"tt ttdd}t| rBtt tjdtdd}t| sftt tdddddtgdd	}t|d st|j	dkstt tdddddtjgdd	}t|d st|j	dkstd S )
Nr}   r   rs   rN   r   rI   r_   r   rK   )
r   r   rY   r   allr4   rO   rt   r   r?   r   r!   r!   r"   !test_constructor_dtype_datetime64"  s    z8TestSeriesConstructors.test_constructor_dtype_datetime64c              	   C   s  t tdddt tdddt tdddg}t|}|jdksJtt j|jd< |jdksdtttdddtdddtdddgdd}tt|t j	d	 d
d}t
|| t|dd}t
|| tttdddtdddgdd}tt jg|dd   dd}t
|| t|dd}t
t |d W 5 Q R X d}tjt|d |d W 5 Q R X t
t$ t|t j	d}t|t j	}W 5 Q R X t
|| d S )Ni  rI   r_   rX   r}   r   r  rK   i@B zM8[ms]r   zCcannot astype a datetimelike from \[datetime64\[ns\]\] to \[int32\]r;   r   )rO   
datetime64r   r   r?   r4   rt   r   viewr   r/   r5   r   r0   r  r   rA   rB   rC   )r6   datesr   r8   r9   ZdtsrD   r!   r!   r"   $test_constructor_dtype_datetime64_107  s@      z;TestSeriesConstructors.test_constructor_dtype_datetime64_10c                 C   s`   t tdddg}|d tdddddks.tt tdddg}|d tdddddks\td S )Nr_   rI   r   i  )r   r   r4   r   r!   r!   r"   #test_constructor_dtype_datetime64_9l  s    z:TestSeriesConstructors.test_constructor_dtype_datetime64_9c                 C   s@   t tddgddgd}|d tdks,t|d dks<td S )Nr  rI   rF   rH   rN   )r   r   r4   r   r!   r!   r"   #test_constructor_dtype_datetime64_8t  s    z:TestSeriesConstructors.test_constructor_dtype_datetime64_8c           	      C   s   t dddd}|tjd}t||d}dD ]4}|tjd| d	}t||}t|| q0t||td
}dD ]8}|tjd| d	}t||td
}t|| qxtj	dd |
 D td}t||}t|j| |jtkstd S )Nz01-Jan-2015z01-Dec-2015Mr   r  rN   )r   DmsusnszM8[]rq   c                 S   s   g | ]}|  qS r!   )date)r&   r   r!   r!   r"   
<listcomp>  s     zNTestSeriesConstructors.test_constructor_dtype_datetime64_7.<locals>.<listcomp>rK   )r   r0  rO   ndarrayr   r   r/   r5   r   rP   to_pydatetimer   r   r?   r4   )	r6   r1  Zvalues2r8   r?   Zvalues1r9   Zdates2Zseries1r!   r!   r"   #test_constructor_dtype_datetime64_7z  s     

z:TestSeriesConstructors.test_constructor_dtype_datetime64_7c              	   C   s   d}t jt|d td tdg}W 5 Q R X |jdks:tt jt|d ttjtdg}W 5 Q R X |jdksrtt jt|d ttd dg}W 5 Q R X |jdkstt jt|d tttjdg}W 5 Q R X |jdkstd S )N containing strings is deprecatedr;   z2013-08-05 15:30:00.000001r  )	r/   r0   r  r   r   r?   r4   rO   rt   )r6   rD   r]   r!   r!   r"   #test_constructor_dtype_datetime64_6  s    z:TestSeriesConstructors.test_constructor_dtype_datetime64_6c                 C   s|   t ddd}t|jd jd ks$tt dddd}tt|jd jdksNtt dddd}tt|jd jdksxtd S )Nr  rX   r  r   UTCr  r   )r   r   r   r   r4   ru   )r6   drr!   r!   r"   #test_constructor_dtype_datetime64_5  s    z:TestSeriesConstructors.test_constructor_dtype_datetime64_5c                 C   s@   t ddtg}|jdkst|d tks,tdt|ks<td S )Nl   *}aiZlr   r_   r   )r   r   r?   r4   ru   r   r!   r!   r"   #test_constructor_dtype_datetime64_4  s    z:TestSeriesConstructors.test_constructor_dtype_datetime64_4c                 C   sP   t tdddtdddtg}|jdks,t|d tks<tdt|ksLtd S )N  rI   r_   r   r   )r   r   r   r?   r4   ru   r   r!   r!   r"   #test_constructor_dtype_datetime64_3  s    z:TestSeriesConstructors.test_constructor_dtype_datetime64_3c                 C   sT   t tdddtdddtjg}|jdks.t|d tjks@tdt|ksPtd S )NrF  rI   r_   r   rb   )r   r   rO   rt   r?   r4   ru   r   r!   r!   r"   #test_constructor_dtype_datetime64_2  s     z:TestSeriesConstructors.test_constructor_dtype_datetime64_2c                 C   s  t dddd}t|}|jjdks&t|jdks4tt|jsBtdt|ksRt|j}t|t	j
sht|jdksvtt|}|dj|jjd}t|| |jd	 }|td
ddkst|d	 }|td
ddkst|tdddg|jd }t||d	d  |jd	d }t|t|d	d  t|jd	d |jdd  g}t|| dt|kslt| }dt|kstdt|ksttt dddd}dt|kstt|dd}t|| d S )Nr  rX   r   r  datetime64[ns, US/Eastern]r  rB  r   r   z2013-01-01 00:00:00-0500TFrN   r_   rI   r     Zinferr   )r   r   r?   r>   r4   r	   ru   r   rT   rO   r=  r   tz_localize
tz_convertdtr   r/   r   r   r   r3   r5   r$  concatshift)r6   rC  r   r9   r   tr!   r!   r"   !test_constructor_with_datetime_tz  s<    
"z8TestSeriesConstructors.test_constructor_with_datetime_tzc                 C   sD   t tdddtdddg}|jdks*ttj|dddks@td S )	N2013-01-01 13:00:00-0800
US/PacificrJ  2013-01-02 14:00:00-0800zdatetime64[ns, US/Pacific]TZskipnar/  r   r   r?   r4   r   Zinfer_dtyper   r!   r!   r"   "test_constructor_with_datetime_tz4  s    

z9TestSeriesConstructors.test_constructor_with_datetime_tz4c                 C   sD   t tdddtdddg}|jdks*ttj|ddd	ks@td S )
NrS  rT  rJ  rU  r   r   TrV  r   rW  r   r!   r!   r"   "test_constructor_with_datetime_tz3  s    

z9TestSeriesConstructors.test_constructor_with_datetime_tz3c                 C   s6   t tddgdd}t tddgdd}t|| d S )Nr   rI   rI  rq   r   r   rJ  )r   r   r   r/   r5   r  r!   r!   r"   "test_constructor_with_datetime_tz2  s    z9TestSeriesConstructors.test_constructor_with_datetime_tz2	arr_dtypeZM8Zm8unitr9  r8  r7  r   hrk   r6  c                 C   sT   | d| d}t jdddg|d}t|}||}t||}t|| d S )N[r:  rI   r_   rX   rK   )rO   rP   r   r   r/   r5   )r6   r[  r?   r\  r+  r   r9   r8   r!   r!   r"   &test_construction_to_datetimelike_unit  s    
z=TestSeriesConstructors.test_construction_to_datetimelike_unitargz2013-01-01 00:00:00c                 C   s2   t |gdd}t t|jd}t|| d S )Nzdatetime64[ns, CET]rK   ZCET)r   r   rN  rL  r/   r5   )r6   r`  r9   r8   r!   r!   r"   7test_constructor_with_naive_string_and_datetimetz_dtype$  s    zNTestSeriesConstructors.test_constructor_with_naive_string_and_datetimetz_dtypec                 C   sJ   t dd}t jt ddgdd}t|}tt|g}t|| d S )NrI   r7  z>M8[ms]rK   )rO   r/  rP   r   r   r/   r5   )r6   r7  r+  r9   r8   r!   r!   r"   %test_constructor_datetime64_bigendian+  s
    z<TestSeriesConstructors.test_constructor_datetime64_bigendianinterval_constructorc                 C   sD   |j tddd}t|}|jdks*ttt|j	t| d S )NrX   r   closedzinterval[int64, right])
Zfrom_breaksrO   rf   r   r?   r4   r/   r   r   r   )r6   rc  Z	intervalsr9   r!   r!   r"   test_construction_interval4  s    z1TestSeriesConstructors.test_construction_intervaldata_constructorr@   zndarray[object]c                 C   sL   t ddt ddd g}t||}tt|}|jdks<tt|| d S )Nr   rI   r_   zinterval[float64, right])r   r   r   r?   r4   r/   r5   r6   rg  r,   r9   r8   r!   r!   r"   test_constructor_infer_interval<  s
    z6TestSeriesConstructors.test_constructor_infer_intervalc                 C   sJ   t ddddt ddddg}t||}|jtks6t| |ksFtd S )Nr   rI   Zbothrd  r_   Zneither)r   r   r?   r   r4   r   )r6   rg  r,   r9   r!   r!   r"   &test_constructor_interval_mixed_closedG  s    z=TestSeriesConstructors.test_constructor_interval_mixed_closedc              	   C   s  t tdddd}t ||jd}t|| t |jd|jd}t|| d}tjt|d t |j	|jd}W 5 Q R X t|| td ( t |j	j
d}|j|jj}W 5 Q R X t|| td  t |j	d	|jd}W 5 Q R X t|| d S )
Nr  rX   r   r  rK   rB  z%will interpret the data as wall-timesr;   r   )r   r   r?   r/   r5   rN  rM  r0   r  r   rL  r   r0  )r6   r]   r9   rD   Zmiddler!   r!   r"   test_construction_consistencyQ  s      z4TestSeriesConstructors.test_construction_consistencyc                 C   sL   t ddt ddd g}t||}tt|}t|| |jdksHtd S )N2000r6  2001	Period[D])r   r   r   r/   r5   r?   r4   rh  r!   r!   r"   test_constructor_infer_periodn  s
    z4TestSeriesConstructors.test_constructor_infer_periodz$PeriodDtype Series not supported yetreasonc                 C   sH   t dddtjjgdd}|d }t|s,t||d< t|d sDtd S )Nr   rK    z	period[D]rK   rX   r_   )r   r$  Z_libsr   r   r4   r6   r   valr!   r!   r"   ;test_construct_from_ints_including_iNaT_scalar_period_dtypex  s
    zRTestSeriesConstructors.test_construct_from_ints_including_iNaT_scalar_period_dtypec                 C   s>   t ddt ddg}t|}|jtks*t| |ks:td S )Nrl  r6  rm  rL   )r   r   r?   r   r4   r   )r6   r,   r9   r!   r!   r"   .test_constructor_period_incompatible_frequency  s    zETestSeriesConstructors.test_constructor_period_incompatible_frequencyc                 C   sB   t dddd}t|}|jdks$tt|t}t|| d S )Nr  r   r6  r   rn  )r   r   r?   r4   r   r   r/   r5   )r6   pir   r8   r!   r!   r"   test_constructor_periodindex  s
    z3TestSeriesConstructors.test_constructor_periodindexc                 C   s   dddd}t |}t |t| d}t|| t |dddd	gd}t d
dtjdgdddd	gd}t|| td}|d d|d
 d
i}t ||d}t tj|tjd}d|j	d< d
|j	d
< t|| d S )Nr   rS   r   )rF   rH   r   rN   rH   r   r   rF   rI   r_   r   r   rK   )
r   r   keysr/   r5   rO   rt   ZmakePeriodIndexrn   r   )r6   r   r9   r8   Zpidxr!   r!   r"   test_constructor_dict  s    


z,TestSeriesConstructors.test_constructor_dictc                 C   sB   ddgdgdggi}t |dgdd}t |dgd}t|| d S )NrF   r_   rX   r`   r   rq   rN   r   r6   r   r9   r8   r!   r!   r"   /test_constructor_dict_list_value_explicit_dtype  s    zFTestSeriesConstructors.test_constructor_dict_list_value_explicit_dtypec                 C   s:   dddd}t |}t dddgtdd}t|| d S )NrI   r   r_   )rH   rF   r   ZbacrN   )r   r@   r/   r5   r{  r!   r!   r"   test_constructor_dict_order  s    z2TestSeriesConstructors.test_constructor_dict_orderc                 C   sL   |\}}d|i}t |dgd}t |dg|d}|j|ks<tt|| d S )NrF   rN   rq   )r   r?   r4   r/   r5   )r6   rZ   r[   r\   r   r9   r8   r!   r!   r"   test_constructor_dict_extension  s    z6TestSeriesConstructors.test_constructor_dict_extensionr'  c                 C   s   dd|dt ddddi}t| }tddddgd|tjdgd}t|| d	dd
tjfdd|fdi}t| }tdddgtd	d
tjfd|fgd}t|| d S )NrI   rF   rH   rt   r   r`   r   rN   rI   rI   r_   rX   )rU   r   sort_valuesrO   rt   r/   r5   r   )r6   r'  r   r9   r8   r!   r!   r"   test_constructor_dict_nan_key  s     z4TestSeriesConstructors.test_constructor_dict_nan_keyc           	         s   ddddg ddddg fd	d
}|t j}|dd }|t}tdd  D }t|}t|}t|}t|| t|| t|| d S )Nz
1984-02-19z
1988-11-06z
1989-12-03z
1990-03-15g{\IAi gtyZQAr  c                    s   t t fddD S )Nc                 3   s   | ]} |V  qd S r   r!   r&   r   r7   r!   r"   r(     s     zeTestSeriesConstructors.test_constructor_dict_datetime64_index.<locals>.create_data.<locals>.<genexpr>)dictzipr  Zdates_as_strr   r  r"   create_data  s    zRTestSeriesConstructors.test_constructor_dict_datetime64_index.<locals>.create_datac                 S   s   t | dS )Nz%Y-%m-%d)r   strptimer   r!   r!   r"   r#     r$   zOTestSeriesConstructors.test_constructor_dict_datetime64_index.<locals>.<lambda>c                 s   s   | ]}t |V  qd S r   )r   r  r!   r!   r"   r(     s     zPTestSeriesConstructors.test_constructor_dict_datetime64_index.<locals>.<genexpr>)rO   r/  r   r   r/   r5   )	r6   r  Zdata_datetime64Zdata_datetimeZdata_Timestampr8   Zresult_datetime64Zresult_datetimeZresult_Timestampr!   r  r"   &test_constructor_dict_datetime64_index  s    
z=TestSeriesConstructors.test_constructor_dict_datetime64_indexc                 C   sN   ddi}t |}t dtdgdgtjggdgdgdggdd}t|| d S )N)rI   rI   Ng      rI   r   r  )levelscodesrN   )r   r   rO   rt   r/   r5   r   r!   r!   r"   #test_constructor_dict_tuple_indexer  s     $z:TestSeriesConstructors.test_constructor_dict_tuple_indexerc                 C   s4   |ddi}t |}t dgdgd}t|| d S )NrX   ZthreerN   r   )r6   Znon_dict_mapping_subclassZndmr9   r8   r!   r!   r"   test_constructor_mapping  s    z/TestSeriesConstructors.test_constructor_mappingc                 C   s&   dddg}t |}t||ks"td S )Nr  r_   r_   r_   rX   )r   r@   r4   r6   r,   r   r!   r!   r"   test_constructor_list_of_tuples  s    
z6TestSeriesConstructors.test_constructor_list_of_tuplesc                 C   s    d}t |}t||kstd S )N)r  r  r  )r   tupler4   r  r!   r!   r"    test_constructor_tuple_of_tuples  s    z7TestSeriesConstructors.test_constructor_tuple_of_tuplesc                 C   s@   ddd}t | }t ddgtddgd}t|| d S )NrX      )rI   r_   Nr   r  r  rN   )r   r  r   from_tuplesr/   r5   r   r!   r!   r"   test_constructor_dict_of_tuples  s    
z6TestSeriesConstructors.test_constructor_dict_of_tuplesz+ignore:elementwise comparison:FutureWarningc                 C   s   ddddd}t |}t|j dddt d}t |}|jtjksLt	ddddd}t |}|jtjksrt	d	dd
}t |t
d}|jtjkst	d S )Nr   rI   r_   rX   )rF   rH   r   r   r   r   30rF   rH   rK   )r   r/   Zassert_is_sortedr3   r   r*  r?   rO   rc   r4   rU   rn   )r6   r,   r   r!   r!   r"   test_fromDict  s    
z$TestSeriesConstructors.test_fromDictc                 C   s   t tj|jtjd}|jtjks$tt|t|ks8tt d|jd}|jtj	ksVtt|t|ksjtt
 }t ||jd}|jdkstt|t|kstt d|jdd}t d|jdd}|jdkstt|t|kstt|| d S )Nrq   r   rN   r}   r   ro   )r   rO   rb   r3   rn   r?   Zfloat_r4   r2   rc   r   r*  r   r/   r5   )r6   rh   Znansstringsr   r1  Zcategoricalr8   r!   r!   r"   test_fromValue  s    z%TestSeriesConstructors.test_fromValuec              	   C   s*  t dd tdD }|jdks$tt tddg}|jdksBtt tddtddtddg}|jdksrtt tddtgd	d
}|jdkstt tddtjgd	d
}|jdkstt tdtgd	d
}|jdkstt tdtg}|jdkstt tdt	g}|jdks$tt tdtjg}|jdksHtt ttdg}|jdksjtt tddg}|jdkstt
t |d W 5 Q R X d}tjt|d |d W 5 Q R X dddg}tjt|d t tdddgd	d
 W 5 Q R X t dd tdD dg }|jdks>td}t
jt|d t d tdg}W 5 Q R X |jdksztt
jt|d t tjtdg}W 5 Q R X |jdkstt
jt|d t td dg}W 5 Q R X |jdkstt
jt|d t ttjdg}W 5 Q R X |jdks&td S )Nc                 S   s   g | ]}t |d qS daysr   r   r!   r!   r"   r<  5  s     zMTestSeriesConstructors.test_constructor_dtype_timedelta64.<locals>.<listcomp>rX   timedelta64[ns]rI   r  r_   r   r~   rK   i r   r   zDcannot astype a datetimelike from \[timedelta64\[ns\]\] to \[int32\]r;   r   |z+Could not convert object to NumPy timedeltaz*Could not convert 'foo' to NumPy timedeltar   c                 S   s   g | ]}t |d qS r  r  r   r!   r!   r"   r<  v  s     r@  z1 Day)r   rY   r?   r4   r   rO   timedelta64r   rt   r   r/   r0   r  r   rA   rB   rC   joinrQ   )r6   tdrD   r]   r!   r!   r"   "test_constructor_dtype_timedelta642  sb    "	 z9TestSeriesConstructors.test_constructor_dtype_timedelta64c                 C   sD   t tdtdddg}t tdtdddgdd}t|| d S )Nr  r   rJ  r   rK   )r   r   r/   r5   r  r!   r!   r"   test_constructor_mixed_tz  s    z0TestSeriesConstructors.test_constructor_mixed_tzc                 C   sD   t dddtgdd}|d }t|s(t||d< t|d s@td S )Nr   rK  rr  r}   rK   rX   r_   )r   r   r   r4   rs  r!   r!   r"   test_NaT_scalar  s
    z&TestSeriesConstructors.test_NaT_scalarc                 C   s,   t tjgd}t tg}t|| d S r)  )r   rO   rt   r   r   r/   r5   r   r!   r!   r"   test_NaT_cast  s    
z$TestSeriesConstructors.test_NaT_castc                 C   s^   dddt dddddfD ]@}dd	d
gtd
dddfD ]}t||d}|j|ks8tq8qd S )Ni	  g     H@r>   r      r   u   אrI   r_   rX   r   r  r   )r   rO   onesr   r>   r4   )r6   nr,   r   r!   r!   r"   test_constructor_name_hashable  s     z5TestSeriesConstructors.test_constructor_name_hashablec                 C   sf   d}dgt dddifD ]F}dgt dddifD ]*}tjt|d t||d W 5 Q R X q4qd S )Nz$Series\.name must be a hashable type	name_listr_   rI   r;   r   )rO   r  rA   rB   rC   r   )r6   rD   r  r,   r!   r!   r"    test_constructor_name_unhashable  s
    z7TestSeriesConstructors.test_constructor_name_unhashablec                 C   s&   t ttddd}|jdks"td S )N1/1/2000rp   r  r}   )r   r@   r   r?   r4   r6   r   r!   r!   r"   test_auto_conversion  s    z+TestSeriesConstructors.test_auto_conversionc                 C   s   t jdddgdd}t|}ttdddd}t|| t jd	d
dgdd}t|}ttdddd}t|| t jdddgdd}t|}ttdddd}t|| d S )NrI   r_   rX   ztimedelta64[s]rK   z00:00:01r   r   
2013-01-01z
2013-01-02z
2013-01-03zdatetime64[D]r  r6  z2013-01-01 00:00:01z2013-01-01 00:00:02z2013-01-01 00:00:03zdatetime64[s]z20130101 00:00:01)rO   rP   r   r   r/   r5   r   )r6   r+  r   r8   r]   r!   r!   r"   test_convert_non_ns  s$     z*TestSeriesConstructors.test_convert_non_nsr  rp   z2000-Q1c                 C   s
   t | jS r   r  r   r!   r!   r"   r#     r$   c              	   C   s   dt |jd d}tjt|d t|td W 5 Q R X t	t
$ t|tjd}t|tj}W 5 Q R X t|| d S )NzCannot cast r   z.*? to r;   rK   )r  r   rstriprA   rB   rC   r   rU   r/   r0   r  rO   r   r   r5   )r6   r3   rD   r9   r8   r!   r!   r"   'test_constructor_cant_cast_datetimelike  s    z>TestSeriesConstructors.test_constructor_cant_cast_datetimelikec                 C   s
   t | jS r   r  r   r!   r!   r"   r#     r$   c                 C   s   t |td}t |t}t|| t t|tdtd}t |t}t|| t |ttd}t |t}t|| d S r   )r   r   r   r/   r5   r   )r6   r3   r   r   r!   r!   r"   test_constructor_cast_object  s    
z3TestSeriesConstructors.test_constructor_cast_objectc              	   C   sX   d}t |jdkr.tjjdd}|j| tjt	|d t
g |d W 5 Q R X d S )Nz!dtype has no unit. Please pass in)r  r/  zGH#33890 Is assigned ns unitrp  r;   rK   )rO   r?   r>   rA   markxfailnodeZ
add_markerrB   rQ   r   )r6   r?   requestrD   r  r!   r!   r"   /test_constructor_generic_timestamp_no_frequency  s    zFTestSeriesConstructors.test_constructor_generic_timestamp_no_frequencyz	dtype,msg)zm8[ps]zcannot convert timedeltalike)zM8[ps]zcannot convert datetimelikec              	   C   s*   t jt|d tg |d W 5 Q R X d S )Nr;   rK   )rA   rB   rC   r   )r6   r?   rD   r!   r!   r"   0test_constructor_generic_timestamp_bad_frequency  s    
zGTestSeriesConstructors.test_constructor_generic_timestamp_bad_frequencyr  c                 C   s:   t dddddg|pdd}t td|d}t|| d S )	Nr   rI   r_   rX   r`   r   rK   r   rz   )r6   r?   r8   r9   r!   r!   r"   test_constructor_range_dtype  s    z3TestSeriesConstructors.test_constructor_range_dtypec                 C   sL  t dd}t|}tt|}t|| t|t|ks>t|jtjksNtt ddd}t|}tt|}t|| t|t|kst|jtjkstt ddd}t|}tt|}	t||	 t|t|kst|jt	kstt dd dd d }
t|
}tt|
}t|| t|t|
ks8t|jt	ksHtd S )	Nl            l           r  l         l        r_   I   r`   )
rY   r   r@   r/   r5   r4   r?   rO   Zuint64r   )r6   r   r]   r8   Zrng2ser2Z	expected2Zrng3Zser3Z	expected3Zrng4Zser4Z	expected4r!   r!   r"    test_constructor_range_overflows"  s0    
z7TestSeriesConstructors.test_constructor_range_overflowsc                 C   s8   t dt dddg}t|}t|td}t|| d S )Nz2016-05-01 02:03:37z2016-04-30 19:03:37-0700rT  rJ  rK   )r   r   r   r/   r5   )r6   Zdt_listr9   r8   r!   r!   r"   test_constructor_tz_mixed_data@  s    
z5TestSeriesConstructors.test_constructor_tz_mixed_datapydtc              	   C   s  |}t d|d}|r| }t d}tjtdd t|gdd}W 5 Q R X t|g}t|| tjtdd ttj|gt	ddd}W 5 Q R X t|| tt td|idd}W 5 Q R X t|| tt t|dgdd}W 5 Q R X t|| d S )	NZ2019rJ  F)Zcheck_stacklevelr  rK   r   rq   )
r   r>  r/   r0   r  r   r5   rO   rP   r   )r6   Ztz_aware_fixturer  r   tsZts_naiver9   r8   r!   r!   r"   'test_constructor_data_aware_dtype_naiveJ  s$    
"z>TestSeriesConstructors.test_constructor_data_aware_dtype_naivec                 C   s<   t dddd}t|}t|}t|jtds8td S )Nz1/1/2000 00:00:00z1/1/2000 1:59:50Z10sr   r}   )r   rO   Zasarrayr   Z
issubdtyper?   r4   )r6   r   r1  r   r!   r!   r"   test_constructor_datetime64d  s    
z2TestSeriesConstructors.test_constructor_datetime64c                 C   s>   t ddddg|d}t dddgdddg|d}t|| d S )Nr5  rI   r_   rX   rq   r   )r6   Znullable_string_dtyper9   r8   r!   r!   r"   4test_constructor_datetimelike_scalar_to_string_dtypek  s    zKTestSeriesConstructors.test_constructor_datetimelike_scalar_to_string_dtyper   z
2012-01-01r  c                 C   s>   t d}t||d}t jj||d}t|}t|| d S )Nr  rK   )r$  ZSparseDtyper   ZarraysZSparseArrayr/   r5   )r6   r   r?   r9   r+  r8   r!   r!   r"   "test_constructor_sparse_datetime64s  s
    	
z9TestSeriesConstructors.test_constructor_sparse_datetime64c                 C   sX   t ddd }t ddg}t|| t ddd }t ddg}t|| d S )NrI   r_   r  rF   rH   )r   ry  r/   r5   r   r   r!   r!   r"   )test_construction_from_ordered_collection  s    z@TestSeriesConstructors.test_construction_from_ordered_collectionc                 C   s*   d}t |dgd}t |}t|| d S )Nl     @=7M.cr   rN   r   )r6   r  r9   r8   r!   r!   r"   3test_construction_from_large_int_scalar_no_overflow  s    zJTestSeriesConstructors.test_construction_from_large_int_scalar_no_overflowc                 C   sR   t ttdddd}|jdks$tt tdddtdddg}|jdksNtd S )	Nz
2000-01-01rp   r6  r   rn  z
2011-01-01r   z
2011-02-01)r   r@   r   r?   r4   r   r  r!   r!   r"   4test_constructor_list_of_periods_infers_period_dtype  s    zKTestSeriesConstructors.test_constructor_list_of_periods_infers_period_dtypec                 C   s>   |dd t dD }t|}tt| }t|| d S )Nc                 s   s   | ]}|d | fV  qdS )g      $@Nr!   r  r!   r!   r"   r(     s     zHTestSeriesConstructors.test_constructor_subclass_dict.<locals>.<genexpr>rp   )rY   r   r  itemsr/   r5   )r6   Zdict_subclassr,   r   r8   r!   r!   r"   test_constructor_subclass_dict  s    z5TestSeriesConstructors.test_constructor_subclass_dictc                 C   sp   t dd tdD }t|}tt| t| }t|| G dd dt }t||}t|| d S )Nc                 s   s"   | ]}d | t j fV  qdS )colN)rO   rd   r   r!   r!   r"   r(     s     zFTestSeriesConstructors.test_constructor_ordereddict.<locals>.<genexpr>   c                   @   s   e Zd ZdS )z>TestSeriesConstructors.test_constructor_ordereddict.<locals>.AN)r   r   r   r!   r!   r!   r"   rL     s   rL   )r   rY   r   r@   r   ry  r/   r5   )r6   r,   r   r8   rL   r!   r!   r"   test_constructor_ordereddict  s    z3TestSeriesConstructors.test_constructor_ordereddictc                 C   s   dddd}t | }t|}tdd |D tdd |D d}t|| d	|d
< |dd
|d
 f t|}tdd |D tdd |D ddd}|j	|j
d}t|| d S )Nr   rS   r   ))rF   rF   )rH   rF   )rH   r   c                 S   s   g | ]}|d  qS r   r!   r  r!   r!   r"   r<    s     zKTestSeriesConstructors.test_constructor_dict_multiindex.<locals>.<listcomp>c                 S   s   g | ]}|d  qS r   r!   r  r!   r!   r"   r<    s     rN   g     [@zr   c                 S   s   g | ]}|d  qS r   r!   r  r!   r!   r"   r<    s     c                 S   s   g | ]}|d  qS r  r!   r  r!   r!   r"   r<    s     F)Ztupleize_cols)r   r  r   r   r  r/   r5   insertr   Zreindexr3   )r6   r   Z_dr9   r8   r!   r!   r"    test_constructor_dict_multiindex  s"      z7TestSeriesConstructors.test_constructor_dict_multiindexc                 C   sB   dddt jd}t|}t|d d  |jd}t|| d S )Nr   rI   r_   ))r   r   )r   j)r  r   r  r  rN   )rO   rt   r   Zto_dictr3   r/   r5   )r6   r,   r8   r9   r!   r!   r"   -test_constructor_dict_multiindex_reindex_flat  s    zDTestSeriesConstructors.test_constructor_dict_multiindex_reindex_flatc              	   C   sx   t dddgtjdddgddd	}t tjddddtjddddtjdddditjdddgddd	}t|| d S )
NrL   rM   r   r   rp   r   r   )r\  r,   r3   )r   r$  Zto_timedeltar/   r5   r   r!   r!   r"   %test_constructor_dict_timedelta_index  s        z<TestSeriesConstructors.test_constructor_dict_timedelta_indexc                 C   sd   ddg}t d d}tdddd|dtdddd|dg}t||d	}|jj|ksRtt|jd
  d S )Ng     g@g     t@i   i  r   r  )tzinfor  r  r   )r   r   r   r3   r   r4   repr)r6   r   r  r3   r   r!   r!   r"   test_constructor_infer_index_tz  s    
z6TestSeriesConstructors.test_constructor_infer_index_tzc                 C   s6   dddg}t |}|jj}t ||d}t|| d S )Nr   )r_   r   rK   )r   rP   r?   r/   r5   )r6   valsr]   r?   r  r!   r!   r"   "test_constructor_with_pandas_dtype  s
    
z9TestSeriesConstructors.test_constructor_with_pandas_dtype)r   r   r   rA   r  Zparametrizer:   rE   rR   rW   r^   rl   r@   r  r   rx   rO   rt   rU   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rY   r   r   r   r   r   r   r   r  r  skip_array_manager_invalid_testr   r   r$  Z
Int64Indexr   r
  r  r  r  r  r  r  r  r  r  r  r%  r(  r,  r.  r2  r3  r4  r?  rA  rD  rE  rG  rH  rR  rX  rY  rZ  r   rn   r_  r   ra  rb  r   r   rf  rP   ri  rj  rk  ro  r  ru  rv  rx  rz  r|  r}  r~  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r/  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!   r!   r!   r"   r   3   s  











	
%
$







%	"M




	
	5
4

	
  
  
  

	
	
	Z			


	r   c                   @   s   e Zd Zdd Zdd ZdS )"TestSeriesConstructorIndexCoercionc              	   C   s\   t d}ttjt||t}t 	t
 |jjs>tW 5 Q R X t|jtsXtd S )Ni'  )r/   ZmakeDateIndexr   rO   rd   re   r2   r   r   r0   r  r3   Zis_all_datesr4   rT   r   )r6   idxr]   r!   r!   r"   3test_series_constructor_datetimelike_index_coercion  s
    
zVTestSeriesConstructorIndexCoercion.test_series_constructor_datetimelike_index_coercionc                 C   s~   ddddgddddgg}t ddd |D d}t|jts>tt d|d}t|jtsZtt td	|d}t|jtsztd S )
NrF   rH   r   r   rS   c                 S   s   g | ]}t |qS r!   )rO   rP   r  r!   r!   r"   r<    s     z_TestSeriesConstructorIndexCoercion.test_series_constructor_infer_multiindex.<locals>.<listcomp>rN   r`   )r   rT   r3   r   r4   rY   )r6   Zindex_listsZmultir!   r!   r"   (test_series_constructor_infer_multiindex  s    zKTestSeriesConstructorIndexCoercion.test_series_constructor_infer_multiindexN)r   r   r   r  r  r!   r!   r!   r"   r    s   r  c                   @   s0   e Zd Zdd Zejdd Zejdd ZdS )TestSeriesConstructorInternalsc                 C   sB   t dddg}t |j}t|| |s>t|jjd ts>td S )NrI   r_   rX   r   )	r   rP   r/   r5   rT   r  r	  r   r4   )r6   Zusing_array_managerr]   r9   r!   r!   r"    test_constructor_no_pandas_array
  s
    
z?TestSeriesConstructorInternals.test_constructor_no_pandas_arrayc                 C   sZ   t tjddgdd}|jjd jdks,tt tjdgdd}|jjd jdksVtd S 	NZ1HZ2Hr  rK   r   FZ2015r  )r   r$  rP   r  r	  is_extensionr4   r   r!   r!   r"   test_from_array  s    z.TestSeriesConstructorInternals.test_from_arrayc                 C   sN   t ddgdd}|jjd jdks&tt dgdd}|jjd jdksJtd S r  )r   r  r	  r  r4   r   r!   r!   r"   test_from_list_dtype  s    z3TestSeriesConstructorInternals.test_from_list_dtypeN)r   r   r   r  r  r  r  r  r!   r!   r!   r"   r  	  s
   
r  c                 C   s&   | }t |tstt |jts"td S r   )rT   r   r4   r3   r   )Z(rand_series_with_duplicate_datetimeindexZdupsr!   r!   r"   rl   "  s    rl   )5collectionsr   r   r   Zdateutil.tzr   ZnumpyrO   Znumpy.mar   rA   Zpandas._libsr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandas.core.dtypes.commonr   r	   Zpandas.core.dtypes.dtypesr
   Zpandasr$  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr/   Zpandas.core.arraysr   r   Zpandas.core.internals.blocksr   r   r  r  rl   r!   r!   r!   r"   <module>   s>   H             N