3
Ud1                 @   sT   d dl m Z  d dlZd dlZd dlZd dlmZmZmZ d dl	j
ZG dd dZdS )    )datetimeN)	DataFrameIndexSeriesc               @   sf   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
ejjdddgdd ZdS )TestDataFrameCombineFirstc             C   s   t ddgtdd}t tdtdd}t||d}t ddgtddd}t tdtddd}t||d}tjtdd	d
d	d
gdddddgd}|j|}tj|| d S )Nab   )index)AB      Zababg        g      ?r         )r   ranger   pdlistcombine_firsttmassert_frame_equal)selfr   r   fgexpcombined r   a/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/frame/methods/test_combine_first.pytest_combine_first_mixed   s    $
z2TestDataFrameCombineFirst.test_combine_first_mixedc             C   sZ  |d d |dd   }}|j |}|j|j}tj|| tj|j|jsPttj|d |d  |j	 }d|d< |d= |j	 }d|d< |d= |j |}|d dkj
 sttj|d |d  tj|d |d  tj|d |d  |d d j	 | }}d|d< |j |}|d d d dkj
 s0td|d d d< |j |}|d d d dkj
 sht|d d }|dd  }	|j |	}tj|d j|j|d  tj|d j|	j|	d  |j t }
tj|
| t j |}
tj|
| |j td	d
gd}
d	|
jksttddgitdddgd}tdgd}|j |}d|ksVtd S )Nr   r   r   Cr   r   D
   ZfazZboo)r
   r   i  r   )columns)r   Zreindexr
   r   r   ZequalContentsr"   AssertionErrorassert_series_equalcopyallr   r   )r   Zfloat_frameheadtailr   Zreordered_frameZfcopyZfcopy2r   r   Zcombdfdf2resultr   r   r   test_combine_first   sN    





z,TestDataFrameCombineFirst.test_combine_firstc             C   sd  t ddddg}tdd,ddg|d	}tddddg|d	}td
dddg|d	}t|||d}t ddddg}tdd-ddg|d	}tddddg|d	}td
dddg|d	}t|||d}|j|}t|jdksttddddgddddggddddgd}tddggdgddgd}	|j|	}
tj|
| t	j
|jd.< |j|	}
d|jd/< tj|
| tdt	j
ddt	j
gt	j
ddt	j
dgd}tdddt	j
dd gt	j
t	j
dddd!gd}|j|}
td"d#d$dd$d gt	j
d#d$dd%d&gd}tj|
| tt	j
ddgd0t	j
dgt	j
d dgg}td1t	j
dgd2d)dggd"d#gd	}|j|d# }
tdddgd#d*}tj|
| tdtd+d"d"td+d"d#td+d"d$gi}tdd d d gi}|j|}tj|| |j|}tj|| tdtd+d"d"td+d"d#td+d"d$gi}tdtd+d"d#d d gi}|j|}|j }
|jdd d f |
jdd d f< tj||
 |j|}tj|| d S )3Nr   r   ceg      @g      "@g      @g      Y@)r
         r   a   )Zcol0col2Zcol3r   )Zcol1r2   Zcol5g      ?g       @FTr   r   Zbool1Zbool2)r"   -   r   )r
   r"   g      @g      @)r   r   g      @g       @r   r	      r      gffffff@gLE@g?)namei  g      "g      ")r   r   )r   r   gffffffgLEg      )r   r   r   r   lenr"   r#   r   r   npnanlocr$   r   r%   iloc)r   idxZser1Zser2Zser3Zframe1Zframe2r   r)   otherr+   df1r*   expectedZdf0r   r   r   test_combine_first_mixed_bugX   sh    



(
($"(

(
 
z6TestDataFrameCombineFirst.test_combine_first_mixed_bugc             C   s,  t jt jddggddgd}t jdgdggdgd}|d jdksHt|d jd	ksZt|j|}t jt jdt jgd
dgdddgd}tj|| |d jdkst|d jdkst|j	d d j|}t jt
jt
jgddgdddgd}tj|| |d jdkst|d jd	ks(td S )Nz
2011-01-01r	   r   r   )r"   r0   r   zdatetime64[ns]int64g       @g      @)r   r   Zfloat64r   )r   r   	Timestampdtyper#   r   NaTr   r   r;   r8   r9   )r   ZdfaZdfbresr   r   r   r   test_combine_first_align_nan   s     
$z6TestDataFrameCombineFirst.test_combine_first_align_nanc       
      C   s  t jdjd}t jddg|t jddddd	}t jd
jd}t jddg|t jddddd	}|dg j|}t jt jdddt jdddgt jdddt jgdddgt jdddddd}|d jdkst	|d jdkst	|j
d}tj|| t jdddd}t jd|i}t jdddd}t jd|i}|j|}tj|| |d jdks`t	t jddddgdd}t jd|idd d!d"gd#}t jd$d%d&gdd}t jd|idd'd!gd#}|j|}t jdd$dd%ddgdd}	t jd|	iddd d'd!d"gd#}tj|| t jdddd}t jd|i}t jdd}t jd|i}|j|}tj|| |d jd(kslt	t jdd)dd}t jd|i}t jdd}t jd|i}|j|}t jdddt jd)ddt jdg}	t jd|	i}tj|| |d jdks t	d S )*Nz20100101 01:01UTCUTCdatetimeabcZ20140627r   )periodsobject)r"   datar
   rC   z20121212 12:12ZxyzZ20140628z2010-01-01 01:01)tzz2012-12-12 12:12z2010-01-01 01:01:00)rH   rI   r	   r    )rJ   freq)r"   r
   rC   zdatetime64[ns, UTC]z
2015-01-01z
2015-01-05ZDATEz
2015-01-03z
2011-01-01rD   z
2011-01-03z
2011-01-04z
US/Easternr4   r   r   )r
   z
2012-01-01z
2012-01-02z
2012-01-03r0   zdatetime64[ns, US/Eastern]z
2015-01-02)r   to_datetimeZtz_localizer   Z
date_ranger   rB   rD   rC   r#   Zastyper   r   ZDatetimeIndex)
r   data1r>   data2r*   rE   r   Zdts1dts2exp_dtsr   r   r   test_combine_first_timezone   s    




z5TestDataFrameCombineFirst.test_combine_first_timezonec             C   s   t jddddg}t jd|idddd	gd
}t jdddg}t jd|idddgd
}|j|}t jddddddg}t jd|idddddd	gd
}tj|| |d jdkstd S )Nz1 dayrD   z3 dayZ4dayZTDr   r4   r   r   )r
   z10 dayz11 dayz12 dayr	   r0   z4 dayztimedelta64[ns])r   ZTimedeltaIndexr   r   r   r   rC   r#   )r   rP   r>   rQ   r*   rE   rS   r   r   r   r   test_combine_first_timedelta#  s    
z6TestDataFrameCombineFirst.test_combine_first_timedeltac       	   	   C   sz  t jddddgdd}t jd|idd	d
dgd}t jdddgdd}t jd|iddd
gd}|j|}t jddddddgdd}t jd|iddd	dd
dgd}tj|| |d j|jkstt jdddgdd}t jd|iddd
gd}|j|}t jdddt jdddt j	t jdddt jdddt jdddg}t jd|iddd	dd
dgd}tj|| |d jdksvtd S )Nz2011-01rD   z2011-03z2011-04M)rN   Pr   r4   r   r   )r
   z
2012-01-01z2012-02z2012-03r	   r0   z2012-01z
2012-01-02z
2012-01-03r    rK   )
r   ZPeriodIndexr   r   r   r   rC   r#   ZPeriodrD   )	r   rP   r>   rQ   r*   rE   rS   r   rR   r   r   r   test_combine_first_period1  s,    

z3TestDataFrameCombineFirst.test_combine_first_periodc             C   s\   t jdddddgidd}t jdddgidd}|j|}tj|| |d jdksXtd S )	Nr   r   r   r4   r   rA   )rC   r0   )r   r   r   r   r   rC   r#   )r   r>   r*   rE   r   r   r   test_combine_first_intP  s
    
z0TestDataFrameCombineFirst.test_combine_first_intvalr   g      ?c             C   sN   t jd|gi}t jddgi}|j|}t jdg|gd}tj|| d S )NisNumisBoolT)r\   r[   )r   r   r   r   r   )r   rZ   r>   r*   rE   r   r   r   r   (test_combine_first_with_asymmetric_otherZ  s
    
zBTestDataFrameCombineFirst.test_combine_first_with_asymmetric_otherN)__name__
__module____qualname__r   r,   r@   rF   rT   rU   rX   rY   pytestmarkZparametrizer]   r   r   r   r   r      s   =R`
r   )r   Znumpyr8   ra   Zpandasr   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s   
