3
Ud<                 @   s<   d dl Z d dlZd dlZd dlZd dljZG dd dZ	dS )    Nc               @   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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jd#ejd$d$d%gd&d'gfejdHd$d%gd&d'gfejdId$d%gd&d'd(gfgd)d* Zd+d, Zd-d. Zejjd/d'd(d0gd(d0d1d2d(d0d1gfd3d4d5gd4d5d6d7d4d5d6gfgd8d9 Zejjd:d'd(d0gd'd;d0gfd<d(d0gd<d;d0gfgd=d> Zd?d@ ZdAdB ZdCdD Z dEdF Z!dGS )JTestSeriesReplacec             C   s  d}t jtjj|}tj|dd< d|dd< |jtjgddd}|d ksPt|jd}t	j
|| |jd	tj}tj||d	k< t	j
|| t jtjtjj|t	j|td
}tj|d d< d|dd< d|dd< |jtjddgd}|d d dkj st|dd dkj s t|dd dkj s:tt j|d d j sVt|jtjdddddi}|d d dkj st|dd dkj st|dd d kj stt j|d d j st|jtjddgd!d"d#g}t	j
|| |jtjddgd$dd}|d ks$t|d d d%kj s>t|dd d&kj sXt|dd d'kj srtt jtjdtjg}t	j
|jtjd|jd t jtjdddtjd t jg}t	j
|jtjd|jd |j }d|d< t	j
|jtjd| t j|j}t	j
|jtjd|jd d}	tjt|	d |jdddgtjdg W d Q R X tjtdd |jddgtjdg W d Q R X t jdddddg}|jdddddgdddddg}
t	j
|
t jdddddg d S )(Nd   r         
      T)inplaceg        )dtype   foobar            z:Replacement lists must match in length\. Expecting 3 got 2)matchzCannot compare types .+r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )pdSeriesnprandomrandnnanreplaceAssertionErrorZfillnatmassert_series_equalfabsmakeDateIndexobjectallisnainfNaTcopyindexpytestraises
ValueError	TypeError)selfZdatetime_seriesNserreturn_valueexprsrs2Zfilledmsgresult r5   \/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/series/methods/test_replace.pytest_replace   sb    
$"  zTestSeriesReplace.test_replacec             C   sJ  t jdtjdddg}|j }|jtjg}tj|| t jdtjdddg}|j }|jtj}tj|| t jt jddd}|j	 }t j
d|jd< |jt j
d	t j
di}tj|| |jt j
d	t j
d}tj|| t j
d
dd}t jt jt j
d
ddg}|jtjt jgt j
j}t jt j
j|gtd}tj|| d S )Nr   r   r   r   20130101r
   )periodsZ20120101Z20130103z
2015/01/01UTC)tz)r	   )r   r   r   r   Zffillr   r   r   
date_ranger&   	Timestamplocr%   minr!   )r,   r.   expectedr4   tssr5   r5   r6   test_replace_gh5319W   s(    z%TestSeriesReplace.test_replace_gh5319c             C   sf   t jddd}t j|}|j|d |d i}t j|d |d |d |d |d g}tj|| d S )Nr   r
   )r9   r   r   r   r   )r   Ztimedelta_ranger   r   r   r   )r,   Ztdir.   r4   r@   r5   r5   r6   test_replace_timedelta_td64s   s
    
(z-TestSeriesReplace.test_replace_timedelta_td64c             C   s   t jdddddg}|jdddg}tj|t jdddddg |j }|jdddgdd}|d kshttj|t jdddddg |j }d}tjt	|d	( |jdddgdd
d}|d kstW d Q R X tj|| d S )Nr   r   r   r   r   T)r   zVInvalid fill method\. Expecting pad \(ffill\) or backfill \(bfill\)\. Got crash_cymbal)r   Zcrash_cymbal)r   method)
r   r   r   r   r   r&   r   r(   r)   r*   )r,   r.   r4   rB   r/   r3   r5   r5   r6   test_replace_with_single_list}   s    z/TestSeriesReplace.test_replace_with_single_listc             C   s   t jdgddgg tjdgg}|}|jg tj}tj|| tjt	dd |jtjg i W d Q R X tjt	dd |jtjddgi W d Q R X d S )	Nr   r   r   r   zcannot assign mismatch)r   dummyZalt)
r   r   r   r   r   r   r   r(   r)   r*   )r,   rB   r@   r4   r5   r5   r6   test_replace_with_empty_list   s    z.TestSeriesReplace.test_replace_with_empty_listc                s  t jtjddd  fdd}t jdddd	d
g}dgd	g }}|||| t jdddddg}dgdg }}|||| t jdddddg}ddgddg }}|||| t jddddt jdg}ddgdt jdg }}|||| t jdddddgdd}ddgddg }}|||| t jt jdddd}|jtj|d |d |d gdddg}t jdddg|dd  j	  td}t
j|| d S )Nr
   Zint64)r	   c                sL    j  } j| |}|j| |dd}|d ks0ttj|| tj|| d S )NT)r   )r&   r   r   r   r   )Zto_repvalr@   Zscrr/   )rB   r5   r6   check_replace   s    zATestSeriesReplace.test_replace_mixed_types.<locals>.check_replaceg        g      ?g       @g      @g      @r   r   r   r   g      @r   ar8   Tr!   z1/1/2001z	1/10/2001D)freq)r   r   r   Zaranger=   r<   astyper!   r   tolistr   r   )r,   rK   etrvZdrr4   r@   r5   )rB   r6   test_replace_mixed_types   s*    	*$z*TestSeriesReplace.test_replace_mixed_typesc             C   s,   t jdddg}|jdd}tj|| d S )NTFZfunz
in-the-sun)r   r   r   r   r   )r,   rB   r4   r5   r5   r6   #test_replace_bool_with_string_no_op   s    z5TestSeriesReplace.test_replace_bool_with_string_no_opc             C   s<   t jdddg}|jdd}t jdddg}tj|| d S )NTFZ2u)r   r   r   r   r   )r,   rB   r4   r@   r5   r5   r6   test_replace_bool_with_string   s    z/TestSeriesReplace.test_replace_bool_with_stringc             C   s@   t jdddg}|jdd}t jdgt| }tj|| d S )NTF)r   r   r   lenr   r   )r,   rB   r4   r@   r5   r5   r6   test_replace_bool_with_bool   s    z-TestSeriesReplace.test_replace_bool_with_boolc             C   s>   t jdddg}tjtdd |jddd W d Q R X d S )NTFzCannot compare types .+)r   Zasdbyes)ZasdfT)r   r   r(   r)   r+   r   )r,   rB   r5   r5   r6   %test_replace_with_dict_with_bool_keys   s    z7TestSeriesReplace.test_replace_with_dict_with_bool_keysc             C   s  d}t jtjtjj|tj|td}tj	|d d< d|dd< d|dd	< |j
tj	ddgd}|d d dkj szt|dd dkj st|dd	 dkj stt j|d d j st|j
tj	dddddi}|d d dkj  st|dd dkj st|dd	 dkj s*tt j|d d j sFt|j
tj	ddgdddg}tj|| |j
tj	ddgddd}|d kst|d d dkj st|dd dkj st|dd	 dkj std S ) Nr   )r	   r
   r   r   r   r   r   r   r   r   r   T)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.   r1   r2   r/   r5   r5   r6   test_replace2   s,    $zTestSeriesReplace.test_replace2c             C   sH   t jddtjgdd}t jddtjg}|jddd}tj|| d S )Nonetwostring)r	   12)r\   r]   )r   r   r   r   r   r   r   )r,   rB   r@   r4   r5   r5   r6   +test_replace_with_dictlike_and_string_dtype  s    z=TestSeriesReplace.test_replace_with_dictlike_and_string_dtypec             C   s\   t jtd}tj||jt  tjtdd t jg }W d Q R X tj||j| d S )NZabcdF)Zcheck_stacklevel)	r   r   listr   r   r   dictZassert_produces_warningDeprecationWarning)r,   rB   Zempty_seriesr5   r5   r6    test_replace_with_empty_dictlike	  s
    z2TestSeriesReplace.test_replace_with_empty_dictlikec             C   s>   t jdddg}|jdtj}t jdddg}tj|| d S )Nr   r   r   r`   )r   r   r   r   r   r   r   )r,   rB   r4   r@   r5   r5   r6   test_replace_string_with_number  s    z1TestSeriesReplace.test_replace_string_with_numberc             C   s<   t jddg}t jddg}|jddd}tj|| d S )NrL   b)rL   rg   )r   r   r   r   r   )r,   rB   r@   r4   r5   r5   r6   (test_replace_replacer_equals_replacement  s    z:TestSeriesReplace.test_replace_replacer_equals_replacementc             C   s>   t jdddg}|jdtj}t jdddg}tj|| d S )Nr   r   r   r`   )r   r   r   r   r   r   r   )r,   rB   r4   r@   r5   r5   r6    test_replace_unicode_with_number!  s    z2TestSeriesReplace.test_replace_unicode_with_numberc             C   sR   t jddddddg}|jddgtj}t jdtjdtjddg}tj|| d S )Nr   r   r   4r   r
   )r   r   r   r   r   r   r   )r,   rB   r4   r@   r5   r5   r6   $test_replace_mixed_types_with_string(  s    z6TestSeriesReplace.test_replace_mixed_types_with_stringzcategorical, numericAB)
categoriesr   r   c             C   s4   t j|}|jddd}t j|}tj|| d S )Nr   r   )rl   rm   )r   r   r   r   r   )r,   ZcategoricalnumericrB   r4   r@   r5   r5   r6   test_replace_categorical/  s    

z*TestSeriesReplace.test_replace_categoricalc             C   s  t jdddd}t j|}|jd}|j }|jjd}d|d< |jj }|d dksZt|j	|d d}t
j|| |d dkst|j	|d ddd	}|d kstt
j|| |d
 }|j	|d |d
 dd	}|d kst|d
 |d   ko|kn  std S )Nz
2016-01-01r   z
US/Pacific)r9   r;   categoryr   r   T)r   r   r   )r   r<   r   rO   r&   catZadd_categoriesZremove_unused_categoriesr   r   r   r   )r,   ZdtirB   cr@   r4   r/   Zfirst_valuer5   r5   r6   test_replace_categorical_single@  s$    


z1TestSeriesReplace.test_replace_categorical_singlec             C   s   t jdddddg}|jdgdg}t jdddddg}tj|| t jdddg}|jdgdg}t jdddg}tj|| d S )Nr   r   r   r   r   Z100000000000000000000Z100000000000000000001)r   r   r   r   r   )r,   rB   r4   r@   r5   r5   r6   "test_replace_with_no_overflowerrorY  s    z4TestSeriesReplace.test_replace_with_no_overflowerrorzser, to_replace, expr   r   )r   r   r   r_   r`   3rj   )r_   r`   rv   c             C   s.   t j|}t j|}|j|}tj|| d S )N)r   r   r   r   r   )r,   r.   
to_replacer0   seriesr@   r4   r5   r5   r6   test_replace_commutativef  s    


z*TestSeriesReplace.test_replace_commutativezser, expTxc             C   s0   t j|}|jdd}t j|}tj|| d S )Nr   T)r   r   r   r   r   )r,   r.   r0   rx   r4   r@   r5   r5   r6   test_replace_no_castx  s    

z&TestSeriesReplace.test_replace_no_castc          
   C   s@   t jdddg}d}tjt|d |jdd  W d Q R X d S )NrL   rg   zc zZExpecting 'to_replace' to be either a scalar, array-like, dict or None, got invalid type.*)r   c             S   s   | j  S )N)strip)rz   r5   r5   r6   <lambda>  s    zCTestSeriesReplace.test_replace_invalid_to_replace.<locals>.<lambda>)r   r   r(   r)   r+   r   )r,   rx   r3   r5   r5   r6   test_replace_invalid_to_replace  s    z1TestSeriesReplace.test_replace_invalid_to_replacec             C   s   t jdddt jj dg}ddd}d}d}tjt|d |j|| W d Q R X d}dd	d}d
}tjt|d |j|| W d Q R X d S )Nr   r   rl   T)r   r   r   zASeries.replace cannot use dict-like to_replace and non-None value)r   r   z<Series.replace cannot use dict-value and non-None to_replace)r   r   r=   nowr(   r)   r*   r   )r,   r.   rw   valuer3   r5   r5   r6   "test_replace_only_one_dictlike_arg  s    

z4TestSeriesReplace.test_replace_only_one_dictlike_argc             C   s*   t jt jdddgdd}|jdd d S )Nr   r   r   ZInt64)r	    )r   r   arrayr   )r,   r.   r5   r5   r6   test_replace_extension_other  s    z.TestSeriesReplace.test_replace_extension_otherc             C   sL   t jdddg}tjd}|j|didd}t jdddg}tj|| d S )NrL   rg   rs   z^a$zT)regex)r   r   recompiler   r   r   )r,   rB   r   r4   r@   r5   r5   r6    test_replace_with_compiled_regex  s
    
z2TestSeriesReplace.test_replace_with_compiled_regexN)rl   )rl   rm   )"__name__
__module____qualname__r7   rC   rD   rF   rH   rT   rU   rV   rX   rZ   r[   ra   re   rf   rh   ri   rk   r(   markZparametrizer   ZCategoricalrp   rt   ru   ry   r{   r~   r   r   r   r5   r5   r5   r6   r   
   sD   L
*"	&*4r   )
r   Znumpyr   r(   Zpandasr   Zpandas._testingZ_testingr   r   r5   r5   r5   r6   <module>   s
   
