o
    Û­jPT  ã                   @   s²   d dl Zd dl m Z  d dlZd dlZd dl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 d dlmZ G dd„ dƒZG dd„ dƒZG dd	„ d	ƒZd
d„ Zdd„ Zdd„ ZdS )é    N)Údatetime)	Ú	DataFrameÚDatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚconcatÚ
date_rangeÚto_timedeltac                   @   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	e
j dddg¡dd„ ƒZe
j dddg¡e
j dddg¡e
j dejedƒg¡dd„ ƒƒƒZe
j dddg¡e
j dddg¡dd„ ƒƒZe
j dddg¡e
j dddg¡dd„ ƒƒZdS )ÚTestDatetimeConcatc                 C   sd   t ddd�}td|iƒ}t||gƒ}|jd d… d |k ¡ s!J ‚|jdd … d |k ¡ s0J ‚d S )Nz1/1/2000é
   )ÚperiodsÚtime)r
   r   r	   ÚilocÚall)ÚselfÚrngÚdfÚresult© r   úg/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/reshape/concat/test_datetimes.pyÚtest_concat_datetime64_block   s
   "z/TestDatetimeConcat.test_concat_datetime64_blockc                 C   sr   g }|  tdddƒdg¡ |  tdddƒdg¡ tj|ddgd�}tdd	d
d�}t|td
ƒdœƒ}t||gƒ d S )NiÚ  é   é   ÚhiÚdateÚtest©Úcolumnsz2000/1/1ÚDr   )ÚstartÚfreqr   )r   r   )Úappendr   r   Úfrom_recordsr
   Úranger	   )r   ÚrowsÚdf2_objÚindÚdf1r   r   r   Ú%test_concat_datetime_datetime64_frame!   s   z8TestDatetimeConcat.test_concat_datetime_datetime64_framec           
      C   s   t ddddd�}t |d |d dd�}td	g d
¢i|d�}tdg d
¢i|d�}t||gdd�}tg d¢ddd�}tddgddgddgg|d	dgd�}t ||¡ t ddddd�}tdg d
¢i|d�}	t||	gdd�}tg d¢ƒ d¡}ttjdgtjdgtjdgdtjgdtjgdtjgg|d	dgd�}t ||¡ t| 	d¡ 
¡ | 	d¡ 
¡ gdd�}tg d
¢tjgd  tjgd g d
¢ dœ| |¡d�}t ||¡ d S )Nú
2011-01-01é   ÚhzEurope/Paris©r   r"   Útzr   éÿÿÿÿ)r!   Úendr"   Úa©r   r   r,   ©ÚindexÚbr   ©Úaxis)z2011-01-01 00:00:00+01:00z2011-01-01 01:00:00+01:00z2011-01-01 02:00:00+01:00zM8[ns, Europe/Paris])Údtyper"   r   ©r5   r   z
Asia/Tokyo)z2010-12-31 15:00:00+00:00z2010-12-31 16:00:00+00:00z2010-12-31 17:00:00+00:00z2010-12-31 23:00:00+00:00z2011-01-01 00:00:00+00:00z2011-01-01 01:00:00+00:00ÚnsT)Úsort©r2   r6   )r
   r   r	   r   ÚtmÚassert_frame_equalÚas_unitÚnpÚnanÚresampleÚmeanr#   )
r   Úidx1Úidx2r)   Údf2r   Úexp_idxÚexpectedÚidx3Údf3r   r   r   Útest_concat_datetime_timezone/   sP   ù	ÿÿ	÷úö$(þz0TestDatetimeConcat.test_concat_datetime_timezonec                 C   s¼   t ddddd�}ttdƒƒ}t||d�}t|d d… |dd … gƒ}t ||¡ t|dd … |d d… gƒ}t|dd … |d d…  |dd …  |d d… ¡d�}d |jj	_
t ||¡ d S )Nz01-Jan-2013éd   Ú50msÚUTCr.   r4   é2   )r
   Úlistr%   r   r	   r>   r?   r#   r5   Ú_datar"   )r   ÚdrÚdatarI   r   r   r   r   Útest_concat_datetimeindex_freql   s   6
z1TestDatetimeConcat.test_concat_datetimeindex_freqc                 C   sþ   t t ddd¡t ddd¡t ddd¡gdd�}tddgtjdd	g|d d
… gddgd�d�}tddgtjdd	g|d d d	… gddgd�d�}tjg d¢|gddgd�}|jd jtks^J ‚t	ddgdt
jgt
jdgg|d�}t||gdd�}t ||¡ d S )NiÝ  r   éÞ  iß  Úobject©r9   r2   r6   r   r0   ÚfirstÚsecond)Únamesr4   )r   r   r   r7   )r   Údtr   r   r   Úfrom_arraysÚlevelsr9   rW   r   rA   rB   r	   r>   r?   )r   ÚidxÚsÚs2ÚmirI   r   r   r   r   Ú,test_concat_multiindex_datetime_object_index{   s>   &þ
þûþ
þþ
þþz?TestDatetimeConcat.test_concat_multiindex_datetime_object_indexc                 C   s”   t tddddd�ƒ}t tjddgdd	�}t |d |d tjtjgƒ}t||gd
d�}t ||¡ t tjtdƒdd	�}t||gd
d�}t ||¡ d S )Nú20151124 08:00ú20151124 09:00Ú1hú
US/Eastern©r"   r/   r   r   zdatetime64[ns, US/Eastern]©r5   r9   T©Úignore_indexé   ©r   r
   ÚpdÚNaTr	   r>   Úassert_series_equalr%   ©r   ÚxÚyrI   r   r   r   r   Útest_concat_NaT_series    s   ÿz)TestDatetimeConcat.test_concat_NaT_seriesc                 C   s¬   t tdddd�ƒ}t tdddd�ƒ}tj|d d …< t |d |d tjtjgƒ}t||gd	d
�}t ||¡ tj|d d …< t tjtdƒdd�}t||gd	d
�}t ||¡ d S )Nrd   re   rf   ©r"   z20151124 10:00z20151124 11:00r   r   Trj   rl   údatetime64[ns]ri   rm   rq   r   r   r   Útest_concat_NaT_series2±   s   z*TestDatetimeConcat.test_concat_NaT_series2r/   NrO   c                 C   sŒ   t tjtjg|d�}td|iƒ}ttd|d�gtd|d�ggddgd�}ttjtjtd|d�td|d�gƒ}t||gdd�}t ||¡ d S )	N©r/   r   ú
2015/01/01ú
2016/01/01r   r,   r4   r7   )r   rn   ro   r   r   r	   r>   r?   )r   r/   ÚdtirY   rZ   rI   r   r   r   r   Útest_concat_NaT_dataframesÀ   s   þ

üÿ	z-TestDatetimeConcat.test_concat_NaT_dataframesÚtz1Útz2ÚitemÚ20150101c           	         sÔ   t tjgtjggƒ ‡ fdd„¡}t |gƒ ‡fdd„¡}t||gdd�}t ttjtj|gg d¢d�ƒ}| ‡fdd„¡}ˆ ˆkrb| t¡}|tju rb|sbˆ d urXtj	|j
d	< n
tj	|j
d d
…df< t ||¡ d S )Nc                    ó   | j  ˆ ¡S ©N©r\   Útz_localize©rr   )r}   r   r   Ú<lambda>ß   ó    zNTestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0.<locals>.<lambda>c                    r�   r‚   rƒ   r…   ©r~   r   r   r†   à   r‡   r   r7   )r   r   r   r4   c                    r�   r‚   rƒ   r…   rˆ   r   r   r†   ä   r‡   )r0   r   r0   )r   rn   ro   Úapplyr	   r   ÚastyperW   rA   rB   r   r>   r?   )	r   r}   r~   r   Úusing_array_managerrY   rZ   r   rI   r   )r}   r~   r   Ú)test_concat_NaT_dataframes_all_NaT_axis_0Ö   s   "	
z<TestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_0c                 C   s�   t ttjtjgƒj |¡ƒ}t ttjgƒj |¡dgd�}t ttjtjgƒj |¡ttjtjgƒj |¡dœƒ}t||gdd�}t ||¡ d S )Nr   r   )r   r   r7   )	r   r   rn   ro   r\   r„   r	   r>   r?   ©r   r}   r~   rY   rZ   rI   r   r   r   r   Ú)test_concat_NaT_dataframes_all_NaT_axis_1ó   s   þÿz<TestDatetimeConcat.test_concat_NaT_dataframes_all_NaT_axis_1c                 C   s’   t tjtjgƒj |¡}ttd|d�gtd|d�ggddgd�}ttjtjtd|d�td|d�gƒ}||kr;| t¡}t	||gƒ}t
 ||¡ d S )Nry   rx   rz   r   r,   r4   )r   rn   ro   r\   r„   r   r   rŠ   rW   r	   r>   r?   r�   r   r   r   Ú(test_concat_NaT_series_dataframe_all_NaT  s$   þû

üÿ
z;TestDatetimeConcat.test_concat_NaT_series_dataframe_all_NaT)Ú__name__Ú
__module__Ú__qualname__r   r*   rL   rU   rc   rt   rw   ÚpytestÚmarkÚparametrizer|   rn   ro   r   rŒ   rŽ   r�   r   r   r   r   r      s(    	=%
r   c                	   @   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ej ddejejejjdd�d�g¡dd„ ƒZd d!„ Zd"S )#ÚTestTimezoneConcatc                 C   sf   t tddddd�ƒ}t tddƒƒ}t |d |d	 |d |d	 gd
d�}t||gdd�}t ||¡ d S )Nrd   re   rf   rO   rh   ú
2012-01-01z
2012-01-02r   r   rW   rX   Trj   ©r   r
   r	   r>   rp   rq   r   r   r   Útest_concat_tz_series"  s
   $z(TestTimezoneConcat.test_concat_tz_seriesc                 C   sd   t tddddd�ƒ}t ddgƒ}t |d |d	 |d |d	 gd
d�}t||gdd�}t ||¡ d S )Nrd   re   rf   rO   rh   r2   r6   r   r   rW   rX   Trj   r˜   rq   r   r   r   Útest_concat_tz_series2*  s
   $z)TestTimezoneConcat.test_concat_tz_series2c                 C   óž   t tdddƒggd|› d�d�}|d j d¡|d< t tdddƒggd|› d�d�}|d j d¡|d< t||gƒ}t ||¡}|d jd	|› d
�ksMJ ‚d S )Néà  r   úM8[ú]rX   r   rO   r   údatetime64[z, UTC]©r   r   r\   r„   r	   r>   Úget_finest_unitr9   ©r   ÚunitÚunit2rY   rZ   r   Úexp_unitr   r   r   Útest_concat_tz_series32  s     z)TestTimezoneConcat.test_concat_tz_series3c                 C   r›   )Nrœ   r   r�   rž   rX   r   úEurope/Londonr   rŸ   ú, Europe/London]r    r¢   r   r   r   Útest_concat_tz_series4?  s     z)TestTimezoneConcat.test_concat_tz_series4c                 C   sª   t tdddƒgtdddƒggd|› d�d�}|d j d¡|d< t tddd	ƒggd|› d�d�}|d j d¡|d< t||gƒ}t ||¡}|d jd
|› d�ksSJ ‚d S )Nrœ   r   r   r�   rž   rX   r   r§   r,   rŸ   r¨   r    r¢   r   r   r   Útest_concat_tz_series5K  s   $ÿ z)TestTimezoneConcat.test_concat_tz_series5c                 C   sª   t tdddƒggd|› d�d�}|d j d¡|d< t tdddƒgtddd	ƒggd|› d�d�}|d j d¡|d< t||gƒ}t ||¡}|d jd
|› d�ksSJ ‚d S )Nrœ   r   r�   rž   rX   r   r§   r   r,   rŸ   r¨   r    r¢   r   r   r   Útest_concat_tz_series6Y  s    $ÿz)TestTimezoneConcat.test_concat_tz_series6c                 C   s†   t dtj ¡ d�t dtj ¡ d�g}t dtj ¡ d�t dtj ¡ d�g}tt|ƒt|ƒgdd�}t |t|| ƒ¡ |jdksAJ ‚d S )	Nr+   rx   ú
2011-02-01r—   z
2012-02-01Trj   zdatetime64[ns, tzlocal()])	r   Údateutilr/   Útzlocalr	   r   r>   rp   r9   ©r   rr   rs   r   r   r   r   Útest_concat_tz_series_tzlocalg  s   þþz0TestTimezoneConcat.test_concat_tz_series_tzlocalc                 C   s¬   t ddd�t ddd�g}t d¡t d¡g}tt|ƒt|ƒgdd�}t |t|| d	d
�¡ tjddd�tjddd�g}tt|ƒt|ƒgdd�}t |t|| d	d
�¡ d S )Nr+   rg   rx   r¬   z1 dayz2 dayTrj   rW   rX   z2011-03ÚMru   z2011-04)r   rn   Ú	Timedeltar	   r   r>   rp   ÚPeriodr¯   r   r   r   Ú'test_concat_tz_series_with_datetimelikev  s   

þz:TestTimezoneConcat.test_concat_tz_series_with_datetimelikec                 C   sR   t tddd�tddd�dœtdƒd�}t|j ¡ |j ¡ gd	d
�}t ||¡ d S )NÚ20130102rg   rx   Ú20130603ÚCET©ÚAÚBé   r4   r   r7   )	r   r   r%   r	   r¹   Úto_framerº   r>   r?   )r   rG   rK   r   r   r   Útest_concat_tz_frame…  s   

þû	z'TestTimezoneConcat.test_concat_tz_framec           	      C   sê   t dd d�}t ddd�}t ddd�}td|giƒ}td|giƒ}td|giƒ}t||gƒjdd�}td||gitd�}t ||¡ t||gƒjdd�}td||gitd�}t ||¡ t||gƒjdd�}td||giƒ}t ||¡ d S )	Nú
2015-01-01rx   rO   ÚESTr   T)ÚdroprX   )r   r   r	   Úreset_indexrW   r>   r?   )	r   Úts1Úts2Úts3r)   rG   rK   ÚresultsrI   r   r   r   Útest_concat_multiple_tzs’  s   z+TestTimezoneConcat.test_concat_multiple_tzsc                 C   sÎ   t ttdddƒtdddƒtdddƒgdd�g d¢g d¢g d	¢d
œƒ}| ddg¡}tg d¢d ddd�}tg d¢d dd�}t ||g¡}t g d¢d g d	¢d dœ|ddgd�}t||gƒ}t 	||¡ d S )NrV   r   r   r,   zM8[ns, US/Pacific]rX   )r¹   rº   ÚCr3   )rl   r»   é   )r\   r6   ÚcÚdr\   r6   )z
2014-01-01z
2014-01-02z
2014-01-03)r9   Úname)rË   )rÉ   rÊ   rÉ   rÊ   r:   )
r   r   r   Ú	set_indexr   r   r]   r	   r>   r?   )r   r   Úexp_idx1Úexp_idx2rH   rI   r   r   r   r   Útest_concat_multiindex_with_tz©  s4   


ýúõÿ
ý ÿz1TestTimezoneConcat.test_concat_multiindex_with_tzc                 C   sz   t  ddg¡ d¡}td|iƒ}t||dœƒ}t||gddd�}tt|ƒt|ƒ t jt jgt|ƒ dœƒ}t ||¡ d S )Nr   r   rO   r¹   r¸   T)r<   rk   )	rn   Úto_datetimer„   r   r	   rQ   ro   r>   r?   )r   Útsr2   r6   r   rI   r   r   r   Útest_concat_tz_not_alignedÊ  s   $ÿz-TestTimezoneConcat.test_concat_tz_not_alignedÚt1r¾   z*GH23037 incorrect dtype when concatenating)Úreason)Úmarksc           	      C   sx   t |dd�}t ddd�}t ddd�}t||ggƒ}t|ggƒ}t||gƒ}t||g|tjggddgd�}t ||¡ d S )NrO   rx   r¾   r   r4   )r   r   r	   rn   ro   r>   r?   )	r   rÓ   rÂ   rÃ   rÄ   r)   rG   r   rI   r   r   r   Útest_concat_tz_NaTÕ  s   z%TestTimezoneConcat.test_concat_tz_NaTc                 C   s>   t ttdddd�ƒtƒ gƒ}ttdddd�ƒ}t ||¡ d S )NÚ2000r   rO   )r   r/   )r	   r   r
   r>   r?   )r   r   rI   r   r   r   Útest_concat_tz_with_emptyð  s
   ÿz,TestTimezoneConcat.test_concat_tz_with_emptyN)r�   r‘   r’   r™   rš   r¦   r©   rª   r«   r°   r´   r½   rÆ   rÏ   rÒ   r“   r”   r•   Úparamrn   ro   ÚxfailrÖ   rØ   r   r   r   r   r–   !  s4    !ÿþþþ
r–   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestPeriodConcatc                 C   sp   t tjddgdd�ƒ}t tjddgdd�ƒ}t |d |d |d |d gd	d
�}t||gdd�}t ||¡ d S )Nú
2015-11-01ú
2015-12-01r    ru   ú
2015-10-01ú
2016-01-01r   r   z	Period[D]rX   Trj   )r   rn   ÚPeriodIndexr	   r>   rp   rq   r   r   r   Útest_concat_period_seriesú  s
   $z*TestPeriodConcat.test_concat_period_seriesc                 C   s~   t tjddgdd�ƒ}t tjddgdd�ƒ}t |d |d	 |d |d	 gd
d�}t||gdd�}t ||¡ |jd
ks=J ‚d S )NrÜ   rÝ   r    ru   rÞ   rß   r±   r   r   rW   rX   Trj   ©r   rn   rà   r	   r>   rp   r9   rq   r   r   r   Ú'test_concat_period_multiple_freq_series  ó   $z8TestPeriodConcat.test_concat_period_multiple_freq_seriesc                 C   s~   t tjddgdd�ƒ}t tjddgdd�ƒ}t |d |d |d |d gdd	�}t||gd
d�}t ||¡ |jdks=J ‚d S )NrÜ   rÝ   r    ru   r±   r   r   rW   rX   Trj   râ   rq   r   r   r   Útest_concat_period_other_series	  rä   z0TestPeriodConcat.test_concat_period_other_seriesc                 C   sx   t tjddgdd�ƒ}t tddgƒƒ}t |d |d |d |d gdd�}t||gd	d
�}t ||¡ |jdks:J ‚d S )NrÜ   rÝ   r    ru   r   r   rW   rX   Trj   )r   rn   rà   r   r	   r>   rp   r9   rq   r   r   r   Ú test_concat_period_other_series2  s   $z1TestPeriodConcat.test_concat_period_other_series2c                 C   st   t tjddgdd�ƒ}t ddgƒ}t |d |d |d |d gd	d
�}t||gdd�}t ||¡ |jd	ks8J ‚d S )NrÜ   rÝ   r    ru   r¹   rº   r   r   rW   rX   Trj   râ   rq   r   r   r   Ú test_concat_period_other_series3  s   $z1TestPeriodConcat.test_concat_period_other_series3N)r�   r‘   r’   rá   rã   rå   ræ   rç   r   r   r   r   rÛ   ù  s    	rÛ   c                  C   sZ   t t d¡dd�} td| iƒ}t||gƒ}t |jd d… |¡ t |jdd … |¡ d S )Nr   r`   )r£   r   )r   rA   Úaranger   r	   r>   r?   r   )r   r   r   r   r   r   Útest_concat_timedelta64_block#  s
   ré   c                  C   s�   t ddit dtjfg¡d�} t ddit dtjfdtjfg¡d�}t| |gdd�}t dtjgdd	œt dtjfdtjfg¡ƒ}t 	||¡ d S )
Nr2   r   r4   r6   r   r   r7   ç      ð?r=   )
r   r   Úfrom_tuplesrn   ro   r	   rA   rB   r>   r?   )ÚleftÚrightr   rI   r   r   r   Ú#test_concat_multiindex_datetime_nat-  s   ÿ&ÿrî   c                 C   s¸  t dtjdgdd�iƒ}t dtjdgdd�iƒ}t dtjdgdd�d tjdgdd�d giddgd�}t||gƒ}t ||¡ t dtjg d	d�iƒ}t|jd d… |jd d… gƒ}t ||¡ t dtjdgd	d�iƒ}t|jd d… |gƒ}t ||¡ | s¸t dtjdgdd�iƒ}d
}tjt|d�� t||jd d… gƒ}W d   ƒ n1 s«w   Y  t ||¡ d S t dtjdgdd�iƒ 	dd	i¡}t||jd d… gƒ}t ||¡ d S )Nr¹   r×   rv   rX   rê   Úfloat64r   r4   rW   zDThe behavior of DataFrame concatenation with empty or all-NA entries)Úmatch)
r   rn   Úarrayr	   r>   r?   r   Úassert_produces_warningÚFutureWarningrŠ   )r‹   Údf_timeÚdf_floatrI   r   Úmsgr   r   r   Útest_concat_float_datetime64:  s<   þÿù	 ÿÿr÷   )r   r\   r­   ÚnumpyrA   r“   Úpandasrn   r   r   r   r   r   r   r	   r
   r   Úpandas._testingÚ_testingr>   r   r–   rÛ   ré   rî   r÷   r   r   r   r   Ú<module>   s"    ,   Y*
