3
Udok              
   @   s  d Z ddlmZ ddlZddl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 ddljZddlmZ dd Zd	d
 Zdd Zdd Zdd Zdd Zejj de	jdddddgde	jddie	jddie!dge	jdddgddddgde	jddddgie	jddddgig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+d/d0 Z,d1d2 Z-d3d4 Z.d5d6 Z/d7d8 Z0d9d: Z1d;d< Z2d=d> Z3ejj4d?d@dA Z5ejj dBdCdDdEgdFdG Z6dHdI Z7dJdK Z8dLdM Z9dNdO Z:dPdQ Z;dRdS Z<dTdU Z=dVdW Z>ejj dXe	j?dYfej@dZd[d\fejAdZd[dYfgejj dBddDgd]d^ ZBejj dXe	j?dYfej@dZd[dYfejAdZd[d\fgd_d` ZCejj dae	jdbe	jdbjD e	jdbjE gdcdd ZFdedf ZGdgdh ZHdidj ZIdkdl ZJdmdn ZKdodp ZLdqdr ZMdsdt ZNdudv ZOdwdx ZPejj dyedzd{d|d}ed~d{dd}edd{dd}gdd ZQejj dyedzd{d|d}ed~d{dd}edd{dd}gdd ZRdd ZSdd ZTdS )z test get/set & misc     )	timedeltaN)	is_scalar)
Categorical	DataFrame
IndexSlice
MultiIndexSeries	Timedelta	Timestamp
date_rangeperiod_rangetimedelta_range)BDayc           &   C   s   t tjjddddddgd} d}tjt|d | d  W d Q R X tjt|d d| d< W d Q R X tjtdd | d	  W d Q R X | j } tjt|d | d  W d Q R X d
}tjt|d d| d< W d Q R X d S )N   ab)indexz/index 5 is out of bounds for axis 0 with size 5)matchr   z^'c'$cz7index 5 is out of bounds for axis (0|1) with size 5|^5$)	r   nprandomrandnpytestraises
IndexErrorKeyErrorZ
sort_index)smsg r   ^/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/series/indexing/test_indexing.pytest_basic_indexing   s    r    c             C   s^  | j dddg }| | }| j|}tj|| | |d |d  }| j|d |d  }tj|| ttjjdt	t
dddd}ddddd	g}tjddddd	g}tjtd
d ||  W d Q R X tjtd
d ||  W d Q R X ttjdddddddgd}tddd}|jd }||ks,t|jd }||ksDt|d }||ksZtd S )Nr   
      r         )r         zwith any missing labels)r   z
2011-01-01   z
US/Eastern)periodstzr   r   r   )r)   )r   reindextmassert_series_equallocr   r   r   r   listrangearrayr   r   r   pdr   r
   AssertionErroriloc)datetime_seriesindicesresultexpectedr   indsZarr_indsr   r   r   test_basic_getitem_with_labels1   s.    
 

r9   c              C   sJ   t tjjd} tj|  | d }tj||  d| d< |dkj sFtd S )Nr!   .r   )	r   r   r   r   Zfixr+   r,   allr2   )r   r6   r   r   r   test_getitem_setitem_ellipsisT   s    
r;   c             C   s"  |j d }|j d }|| |j|ks*t|| |j|ks@t|| |d ksTt|| |d ksht|jd	|j|j d
 kst|d |j|j d kst| j d t  }d}tjt|d | |  W d Q R X ttd}ttt	dd}x*||gD ]}	|	jd }
|
d k st qW d S )Nr      r   z,Timestamp\('1999-12-31 00:00:00', freq='B'\))r   )dtypeabc)r=   r   r?   )
r   getr2   r   r   r   r   r   objectr.   )r4   string_seriesobject_seriesidx1Zidx2dr   s1s2r   r6   r   r   r   test_getitem_get`   s"    



rH   c             C   sx   | dddg }|dddg }| j d |j d ks4t|j d |j d ksLt| d |d ks`t|d |d ksttd S )Nr<   r#   r'   )r   r2   )rB   rC   Zslice1Zslice2r   r   r   test_getitem_fancy|   s    rI   c              C   sX   t jtd} t jd| d< d| d< d| d< tt jdddgdddgd}tj| | d S )	N)r=   z
2016-01-01r   g      @r   foor   )r   )r1   r   rA   r
   r+   r,   )r   r7   r   r   r   test_type_promotion   s    rK   z$result_1, duplicate_item, expected_1   r<   r#   r'   )r<   r#   i9  )r=   c             C   s<   | j |}|j |}tj|d | |d | d ks8td S )Nr<   r#   )appendr+   r,   r2   )Zresult_1Zduplicate_itemZ
expected_1r6   r7   r   r   r   $test_getitem_with_duplicates_indices   s    

rN   c             C   s\   d}t jt|d | t|   W d Q R X tg td}t jtdd |d  W d Q R X d S )Nz3index \d+ is out of bounds for axis 0 with size \d+)r   )r=   z-1r<   r?   )r   r   r   lenr   rA   r   )r4   r   r   r   r   r   test_getitem_out_of_bounds   s    rP   c              C   sJ   t dddgdddg} | jd | d ks,td| jd< tj| d d d S )	Nr<   r#   r'   r   r   r   r   r   )r   r3   r2   r+   Zassert_almost_equal)r   r   r   r   test_getitem_setitem_integers   s    
rQ   c             C   s   | d }t |tjstd S )Nr   )
isinstancer   Zfloat64r2   )r4   valuer   r   r   test_getitem_box_float64   s    rT   c              C   sv   t jdddd} t| }t|d t js,tt jdddd} t| | d}t|d t js\tt|jd t jsrtd S )NZ20090415Z20090519B)freqr   )r   )r1   r   r   rR   r
   r2   iat)rngserr   r   r   test_series_box_timestamp   s    rZ   c              C   s   t jdddd} t j| }t|d ts,tt|jd ts@tt|jd tsTtt|jd tshtt|j	d	 ts|td S )
Nz	1 day 1 sr   h)r(   rV   r   r<   r#   r'      )
r1   r   r   rR   r	   r2   ZatrW   r-   r3   )rX   rY   r   r   r   test_series_box_timedelta   s    
r]   c              C   sf   t tdttdddd} tjtdd | d  W d Q R X tjtdd | jd  W d Q R X d S )	Nr!   r   r$   r#   )r   z^1$)r   r<   )r   r/   r.   r   r   r   r-   )r   r   r   r   test_getitem_ambiguous_keyerror   s
    r^   c              C   s>   t tddddddgd} t| d s*t| d dks:td S )Nr   r   r   r   )r   r   )r   r/   r   r2   )objr   r   r   test_getitem_unordered_dup   s    r`   c              C   st   t ddddgddddg} tjtdd	 | jdddd
g  W d Q R X tjtdd	 | dddd
g  W d Q R X d S )Nr<   r#   r'   r\   rJ   barZbahzwith any missing labels)r   Zbam)r   r   r   r   r-   )r   r   r   r   test_getitem_dups_with_missing   s
    rb   c              C   sN   t tddddddgtjd} t ddgddgtjd}| d }tj|| d S )Nr   ArU   C)r   r=   r'   r\   )r   r/   r   int64r+   r,   )r   r7   r6   r   r   r   test_getitem_dups   s    rf   c              C   s   t tdttdddd} | j }d|d< | jt dgdgd}tj|| | j }d|jd< | jt dgdgd}tj|| d S )Nr!   r   r$   r#   )r   r   r<   )r   r/   r.   copyrM   r+   r,   r-   )r   rG   r7   r   r   r   test_setitem_ambiguous_keyerror   s    
rh   c           
   C   sV   t td} tjd| d}tj| | d}d}tjt|d ||dk  W d Q R X d S )Nr!   )r   zWIndexing a Series with DataFrame is not supported, use the appropriate DataFrame column)r   r   )r.   r/   r1   r   r   r   r   	TypeError)rX   r   dfr   r   r   r   test_getitem_dataframe  s    rk   c             C   s   t j| | jd < t j| dddg< t j| d< t j| d s<tt j| d sNtd| t j| < t j| d  sptttjdjt	tjdd}d|d d d< |d d d dkj
 st|j }d|d	< tdgd	gd
d}|j|}tj|| d S )Nr   r<   r#         r$   )r   r   foobarseries)r   name)r   NaNr   isnanr2   r   r+   ZmakeIntIndexastypefloatr:   rg   rM   r,   )r4   rB   ro   r   Zappr7   r   r   r   test_setitem  s    

ru   c              C   s   t jd} t jtd}d|| < t jd| g}tj|| t jg t jg ddtd}d|| < t jdt j| gdd}tj|| |jj|jjkst	d S )Nz
2012-01-01)r=   /   D)rV   )
r1   r
   r   rA   r+   r,   ZDatetimeIndexr   rV   r2   )keyro   r7   r   r   r   test_setitem_empty_series+  s    
ry   c              C   s   t tjddg} t dddg}tj|jd< tj||  t dddg}tj|jd< tj||  t dddg}tj|d< tj||  t dg}tj|jd< tj|t tjg t ddg}tj|jd< tj|t tjdg d S )Nr#   r'   r<   r   FTg      ?)r   r   nanr3   r+   r,   r-   )r7   r   r   r   r   test_setitem_dtypes;  s     

r{   c             C   s   | j d }| j|d}|d ks"t| | dks2t|j }|jdd}|d ksRt|j d dksdt|d dkstt|j }d|jd< |j d dkst|d dkstd S )Nr!   r   rn   r<   r?   r?   )r   Z
_set_valuer2   rg   r-   )r4   rB   idxresr   r   r   r   test_set_valueU  s    

r~   c             C   s6   | dd }t |t |jks"t|jjdks2td S )Nr   r$   T)rO   r   r2   Z	is_unique)r4   slr   r   r   test_setsliceh  s    r   c              C   s   t jjdd} tjtd}djddg}tjt	|d | |j
td< W d Q R X d}tjt	|d | |j
d d < W d Q R X d S )Nr#   |z,shape mismatch: value array of shape \(2,2\)z0cannot reshape array of size 4 into shape \(2,\))r   zEcould not broadcast input array from shape \(2,2\) into shape \(2,?\))r   r   r   r1   r   r/   joinr   r   
ValueErrorr-   )xyr   r   r   r   test_2d_to_1d_assignment_raisesn  s    r   z&ignore:Using a non-tuple:FutureWarningc          )   C   s   d}t jt|d | d d df  W d Q R X t jt|d d| d d df< W d Q R X tjt | td dg }W d Q R X | d d }tj|| d}t jt|d | dtd d g  W d Q R X t jt|d d| dtd d g< W d Q R X d S )Nz0key of type tuple not found and not a MultiIndex)r   r#   r   zunhashable type(: 'slice')?)	r   r   r   r+   assert_produces_warningFutureWarningslicer,   ri   )r4   r   r6   r7   r   r   r   !test_basic_getitem_setitem_corner  s    r   r)   z
US/EasternUTCz
Asia/Tokyoc             C   s  t jt jddd| d}|jd|  dks.t|j }t jd| d|d	< t jt jd
| dt jd| dt jd| dg}tj|| |j }t jd| d|j	d	< tj|| |j }t jd| d|j
d	< tj|| t jt jd| dt jd| dgd	dgd}|jd|  dkst||d	dg< t jt jd
| dt jd| dt jd| dg}tj|| |j }||j	d	dg< tj|| |j }||j
d	dg< tj|| d S )Nz
2016-01-01Hr'   )rV   r(   r)   zdatetime64[ns, ]z
2011-01-01)r)   r<   z2016-01-01 00:00z2011-01-01 00:00z2016-01-01 02:00z
2012-01-01r#   )r   z2012-01-01 00:00)r1   r   r   r=   r2   rg   r
   r+   r,   r-   r3   )r)   origr   expvalsr   r   r   test_setitem_with_tz  s>    r   c              C   s  d} t jt jddd| d}|jd|  dks2t|j }t jd| d	|d
< t jt jd| d	t jd| d	t jd| d	g}tj|| |j }t jd| d	|j	d
< tj|| |j }t jd| d	|j
d
< tj|| t jt jd| d	t jd| d	gd
dgd}|jd|  dkst||d
dg< t jt jd| d	t jd| d	t jd| d	g}tj|| |j }||j	d
dg< tj|| |j }||j
d
dg< tj|| d S )Nz
US/Easternz
2016-11-06r   r'   )rV   r(   r)   zdatetime64[ns, r   z
2011-01-01)r)   r<   z2016-11-06 00:00-04:00z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00z
2012-01-01r#   )r   z2016-11-06 00:00z2011-01-01 00:00z2012-01-01 00:00)r1   r   r   r=   r2   rg   r
   r+   r,   r-   r3   )r)   r   r   r   r   r   r   r   test_setitem_with_tz_dst  s@    r   c              C   s  t tddgddgd} | j }d|d d < t tddgddgd}tj|| | j }d|d< t tddgddgd}tj|| | j }d||jdk< t tddgddgd}tj|| | j }d|ddg< t tddgddgd}tj|| | j }dd	g|_d|d	< t tddgddgddd	gd
}tj|| t tdddg}t tdtjdgdddgd}tj|d< tj|| d S )Nr   r   )
categoriesr<   r   FTr   r   )r   r#   r'   )r   r   rg   r+   r,   r   r   rz   )r   r   r   r   r   r   test_categorical_assigning_ops   s4    
 
r   c           
   C   sx   t jtdt jdddddgd} | d }| jddg }tj|| tjt | j	j
| d}W d Q R X tj|| d S )Nr   r   r   r   )r   r   r'   )r1   r   r/   r   r3   r+   r,   r   r   r   	get_value)rY   r6   r7   r   r   r   test_getitem_categorical_str#  s    "r   c             C   s   | dd }| dd  }|dd }| j d |j ks8t|j d |j ksLtt|t|j ksbt| |j d  ||j d  kst|j d | j d ksttj|tj| dd  st| dd }d|d d < | dd dkj std S )	Nr!   r$   	   r   r<      ii)r   r2   rO   r+   ZequalContentsr   r0   r:   )rB   rC   ZnumSliceZnumSliceEndZobjSlicer   r   r   r   
test_slice0  s     r   c              C   s(   t ddddddgd} | d d d  d S )Nr<   r   r   r   )r   r?   )r   )r   r   r   r   +test_slice_can_reorder_not_uniquely_indexedE  s    r   c             C   s   | j dddg }| j }d|j|< | j }d|dddg< tj|| d|jdd< d|dd< tj|| | j ddg \}}d|j||< d|dd< tj|| d| j|< d| j|< | | dkst| | dkstd S )	Nr'   r\   r%   r   r!   r"   rm      )r   rg   r-   r+   r,   r3   r2   )rB   r8   r6   r7   Zd1Zd2r   r   r   test_loc_setitemJ  s"    


r   c              C   s   t tjdtjdtjdtjdtjg	} t ddddddddd	g	}tj|d d d< tj||  t tjd
tjdg} t ddddg}tj|d d d< tj||  t tjtjtjtjtjdddddg
} t tjd	}tj|d d< tj||  d S )Nr'   r   r%   r   r#   r\   rm   r&   r!   r<   r   TF)r   r   rz   r+   r,   arange)r7   r   r   r   r   test_setitem_nae  s    $&r   c              C   s  t g td} td| jd< tj| t tddgd | j| jj	dd} tj| t t
jtdgddgd td| jd< t tdddgd}tj| | t dt
jdd	g } t
jd
d	| jdddg< tj dt
jdd	g }tjt
jd
d	|jdddg< tj| | d S )N)r=   r<   rU   z1 days)r   r   rc   r!   mr$   r#   r'   )r   rA   r   r-   r+   r,   r	   r*   r   insertr   rz   timedelta64r1   )r   r7   r   r   r   test_timedelta_assignmentx  s    "r   znat_val,should_castTNaTnsFc             C   s   t jdd|d}t j|}t jt jgt|dd   |jd}|sL|jt}|jdd}| |d< t	j
|| |jdd}| |jd< t	j
|| |jdd}| |jd< t	j
|| d S )	Nz
2016-01-01r'   )r(   r)   r<   )r=   T)deepr   )r1   r   r   r   r.   r=   rs   rA   rg   r+   r,   r-   r3   )nat_valshould_castr)   Zdtibaser7   rY   r   r   r   test_dt64_series_assign_nat  s    
$


r   c             C   s   t jdddgdd}t jt jddgdd}|s8|jt}|jdd}| |d< tj|| |jdd}| |jd< tj|| |jdd}| |j	d< tj|| d S )Nr   r<   r#   zm8[ns])r=   T)r   )
r1   r   r   rs   rA   rg   r+   r,   r-   r3   )r   r   r   r7   rY   r   r   r   test_td64_series_assign_nat  s    


r   tdz9 daysc             C   s   t jd| gddgtd}t jdg}| |d< tj|| t|d t jsLtt jdg}t jd|jd< tj|| t|d t jstd S )Nr   r   r   )r   r=   z9 days)	r1   r   rA   r+   r,   rR   r	   r2   r-   )r   r7   rY   r   r   r   #test_append_timedelta_does_not_cast  s    
r   c              C   s  t dd dD } | jdddgdd}|d ks2ttdgdgd
}d| d< |  | d j| t tdd	dgdd	dgdd	dgdddgd}|jdddgdd}|d ksttj| | tj	dd  t t
ddgd d} d| d< dgt|  }d| d jd< | j| }d| d jd< | d jd dks,ttj	dd t tddgtjd	gd} tj| d< | d jtjdgdgd
 t tddgtjd	gdtjgd}tj| | d S )Nc             S   s   i | ]}d ddg|qS )r<   r#   r'   r   ).0r   r   r   r   
<dictcomp>  s    z3test_underlying_data_conversion.<locals>.<dictcomp>r   r   r   T)Zinplacer<   r#   )r   r   valr'   )r   r   r   r   Zchained_assignmentr   g@)Zaabbg        ccgp=
ף?r   g333333?raise)r   r   rJ   )r   r   r   )r   r   r   )r#   r#   r#   )r   Z	set_indexr2   r   updatedictr+   Zassert_frame_equalr1   Z
set_optionr/   rO   r3   r   rz   )rj   Zreturn_valuer   r7   ZckZdf_tmpr   r   r   test_underlying_data_conversion  s2    ,

"r   c             C   s0   | dddg }t j|d< t j| d  s,td S )Nr   r!   r"   r<   )r   rq   rr   r2   )r4   seqr   r   r   test_preserve_refs  s    
r   c              C   sV   t ddgddgdd} t dgdgdd| ddg< t ddgddgdd}tj| | d S )Nr<   r#   re   )r   r=   r   TF)r   r+   r,   )r   r7   r   r   r   test_cast_on_putmask  s    r   c              C   s   t tjjdtjddddjd} | j | dk }}| | j jt}|||< t	j
|| jdd  t ddddg}|dk}|| jt}|||< t	j
|t dd	d
dg t ddddg}t ddddg}|| }|||< t	j
|t ddddg d S )Nd   r   r<   )r   r   c             S   s   | dkrt | S | S )Nr   )str)tr   r   r   <lambda>"  s    z+test_type_promote_putmask.<locals>.<lambda>r#   12rJ   ra   FTr?   )r   r   r   r   r   roundrg   mapr   r+   r,   )tsleftmaskrightr   rG   r   r   r   test_type_promote_putmask  s    $r   c              C   s   t ddddgdddggdddd	d	d
d
dddg
dd	d
dd	d	d
dd	d
g
gddgd} ttjjt| | dd}|d }|jd }|j|jkst|j|jkstd S )NrJ   ra   ZbazZquxZoneZtwoZthreer   r<   r#   r'   firstsecond)ZlevelscodesnamesZsth)r   rp   )	r   r   r   r   r   rO   r-   rp   r2   )r   r   r6   Zresult2r   r   r   test_multilevel_preserve_name1  s    .
r   c              C   sj   t jd} d| j_t| }xJtt|D ]:}d}tjt	|d d||< W d Q R X | | dks(t
q(W d S )Nr   Fz#assignment destination is read-only)r   r<   r   )r   zerosflags	writeabler   r/   rO   r   r   r   r2   )r0   ro   nr   r   r   r   .test_setitem_scalar_into_readonly_backing_data?  s    
r   c              C   sV   t jd} d| j_t| }d}tjt|d d|dd< W d Q R X | j  sRt	d S )Nr   Fz#assignment destination is read-only)r   r<   r'   )
r   r   r   r   r   r   r   r   anyr2   )r0   ro   r   r   r   r   -test_setitem_slice_into_readonly_backing_dataN  s    
r   c              C   s`   t dtjddddd} | jd }|jd}|dks:ttddgdd	gdd
}tj|| d S )Nr   r   re   )r=   )rc   rU   rd   r\   rU   rc   rd   )r   rp   )	r   r   r   r3   popr2   r   r+   r,   )rj   kr6   r7   r   r   r   test_popa  s    

r   c             C   sB   t jdddg| d}d|jd< t jdddg| d}tj|| d S )Nr<   r#   r'   )r=   r\   r   )r1   r   r-   r+   r,   )Zany_int_dtypero   r7   r   r   r   test_uint_dropm  s    
r   c              C   sD   t jddgtjdtjdgd} | jd }| | }|dks@td S )Nr<   r#   Oi8)r   )r1   r   r   r=   r   r2   )rY   rx   r6   r   r   r    test_getitem_unrecognized_scalarv  s    "
r   r   z
2014-01-01r$   ZMS)r(   rV   z2014-01M0r   c             C   s   t tjd| }tjtdd |d d d  W d Q R X tjtdd |jd d d  W d Q R X tjtdd |jd d d  W d Q R X d S )Nr$   zslice step cannot be zero)r   r   )r   r   r   r   r   r   r-   r3   )r   r   r   r   r    test_slice_with_zero_step_raises  s    	r   c                s    fdd}t | d }t | d }t| d }ttjd|  t}x|||gD ]}|||d d	 |dd d
  ||d |d |d dd  xP|||gD ]@}||||d |ddd  ||||d |ddd  qW qRW d S )Nc                sB    j | }tj |  | tj j|  | tj j|  | d S )N)r3   r+   r,   r-   )Zl_slcZi_slcr7   )r   r   r   assert_slices_equivalent  s    
z?test_slice_with_negative_step.<locals>.assert_slices_equivalentr      r   r$   r<   r&   r?   r?   r?   r?   r?   r?   r?   r?   )r   typer   r   r   r   )r   r   Zkeystr1Zkeystr2ZboxZSLCrx   key2r   )r   r   test_slice_with_negative_step  s    	r   c              C   sR   t jddgddgd} | d	 dks&t| d
 dks6td| d< | d dksNtd S )Nr<   r#   r   r   )r   r'   )r   )r   )r   )r   )r   )r   )r1   r   r2   )r   r   r   r   test_tuple_index  s
    r   c              C   sd   t dt d } }tjddg| |gd}||  dks8t|| dksHtd||< || dks`td S )Nr   r   r<   r#   )r   r'   )	frozensetr1   r   r2   )Zidx0rD   r   r   r   r   test_frozenset_index  s    r   )U__doc__datetimer   Znumpyr   r   Zpandas.core.dtypes.commonr   Zpandasr1   r   r   r   r   r   r	   r
   r   r   r   Zpandas._testingZ_testingr+   Zpandas.tseries.offsetsr   r    r9   r;   rH   rI   rK   markZparametrizerA   rN   rP   rQ   rT   rZ   r]   r^   r`   rb   rf   rh   rk   ru   ry   r{   r~   r   r   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   Z
datetime64r   r   Zto_timedelta64Zto_pytimedeltar   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s   0
#	
"	
34#)		