o
    5c                     @   sh   d dl Zd dlZd dlmZ d dlZd dlmZ	 d dl
mZ d dlmZ G dd dZG dd dZdS )	    N)DatetimeTZDtype)DatetimeArray)_sequence_to_dt64nsc                   @   s   e Zd Zdd Zdd Zdd Zejde	j
eejej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S )TestDatetimeArrayConstructorc                 C   sZ   t jtdtdg}tjtdd t	| W d    d S 1 s&w   Y  d S )N   zCannot create a DatetimeArraymatch)
pd
MultiIndexfrom_productnparangepytestraises	TypeErrorr   _from_sequence)selfmi r   e/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/arrays/datetimes/test_constructors.pytest_from_sequence_invalid_type   s   "z<TestDatetimeArrayConstructor.test_from_sequence_invalid_typec                 C   s   t jg dddd}tjtdd t|ddd W d    n1 s'w   Y  tjtdd t|d	g   W d    d S 1 sHw   Y  d S )
N)r            zM8[h]dtypeM8[ns]zOnly 1-dimensionalr   r   r   r   )	r   arrayastyper   r   
ValueErrorr   reshapesqueezer   arrr   r   r   test_only_1dim_accepted   s   "z4TestDatetimeArrayConstructor.test_only_1dim_acceptedc                 C   s\   t jdt jdd d }d}tjt|d t|dd W d    d S 1 s'w   Y  d S )	Nr   r      ʚ;zRInferred frequency H from passed values does not conform to passed frequency W-SUNr   Wfreq)r   r   int64r   r   r   r   r   r#   msgr   r   r   test_freq_validation   s   "z1TestDatetimeArrayConstructor.test_freq_validationmethc              	   C   st   t tdtjdddg}d}||d d d fD ]}tjt|d || W d    n1 s2w   Y  qd S )N2000CETtzzuCannot mix tz-aware with tz-naive values|Tz-aware datetime.datetime cannot be converted to datetime64 unless utc=Truer   )r   r   r	   	Timestampr   r   r   )r   r.   r#   r,   objr   r   r    test_mixing_naive_tzaware_raises)   s   
z=TestDatetimeArrayConstructor.test_mixing_naive_tzaware_raisesc                 C   sP   t tjdtjdd d }t|d}t jddddj	}t
|| d S )	Nr   r   r%   r&   inferz
1970-01-01H)periodsr)   )r	   r   r   r   r*   r   r   
_with_freq
date_range_datatmassert_datetime_array_equal)r   r#   resultexpectedr   r   r   test_from_pandas_arrayB   s   z3TestDatetimeArrayConstructor.test_from_pandas_arrayc                 C   s   t tjdgddtddd}tdd}d}tjt|d t ||d W d    n1 s.w   Y  tjt|d t |tdd W d    n1 sNw   Y  tjt|d t |d |jd W d    d S 1 spw   Y  d S )	Nz2000-01-01T06:00:00r   r   
US/Centralr1   z
US/EasternzEdtype=datetime64\[ns.*\] does not match data dtype datetime64\[ns.*\]r   )	r   r   r   r   r   r   r   r   tz_localize)r   r#   r   r,   r   r   r   test_mismatched_timezone_raisesJ   s   
"z<TestDatetimeArrayConstructor.test_mismatched_timezone_raisesc                 C   s@   t jtdd tg d W d    d S 1 sw   Y  d S )Nlistr   r   r   r   )r   r   r   r   r   r   r   r   test_non_array_raisesZ   s   "z2TestDatetimeArrayConstructor.test_non_array_raisesc                 C   s4  t jg ddd}d}tjt|d t| W d    n1 s!w   Y  d}tjt|d t| W d    n1 s?w   Y  tjt|d t| W d    n1 sZw   Y  tjt|d t	
| W d    n1 svw   Y  tjt|d t	| W d    d S 1 sw   Y  d S )NrF   boolr   z-Unexpected value for 'dtype': 'bool'. Must ber   z2dtype bool cannot be converted to datetime64\[ns\])r   r   r   r   r   r   r   r   r   r	   DatetimeIndexto_datetimer+   r   r   r   test_bool_dtype_raises^   s$   

"z3TestDatetimeArrayConstructor.test_bool_dtype_raisesc                 C   sN   t jtdd ttjg ddddd W d    d S 1 s w   Y  d S )NzUnexpected value for 'dtype'.r   rF   i8r   categoryr   r   r   r   r   r   rG   r   r   r   test_incorrect_dtype_raisesr      "z8TestDatetimeArrayConstructor.test_incorrect_dtype_raisesc                 C   sN   t jtdd ttjg ddddd W d    d S 1 s w   Y  d S )NzFrequency inferencer   rF   rM   r   r7   r(   rO   rG   r   r   r   test_freq_infer_raisesv   rQ   z3TestDatetimeArrayConstructor.test_freq_infer_raisesc                 C   sJ   t jg ddd}t|dd}|j|u sJ t|dd}|j|us#J d S )NrF   r   r   F)copyT)r   r   r   r<   )r   datar#   r   r   r   	test_copyz   s
   z&TestDatetimeArrayConstructor.test_copyN)__name__
__module____qualname__r   r$   r-   r   markparametrizer   r   r   r	   rK   rJ   r6   rA   rD   rH   rL   rP   rR   rU   r   r   r   r   r      s(    
	r   c                   @   s6   e Zd Zdd Zdd Zejdddgdd	 Zd
S )TestSequenceToDT64NSc                 C   s\   t jdgtddd}tjtdd t|tddd W d    d S 1 s'w   Y  d S )Nr/   rB   r1   r   zdata is already tz-awarer   UTC)r   r   r   r   r   r   r   r"   r   r   r   test_tz_dtype_mismatch_raises   s   "z2TestSequenceToDT64NS.test_tz_dtype_mismatch_raisesc                 C   s@   t jdgtddd}t|tddd\}}}t|j| d S )Nr/   rB   r1   r   )r   r   r   r   r=   assert_numpy_array_equalr<   )r   r#   r?   _r   r   r   test_tz_dtype_matches   s
   z*TestSequenceToDT64NS.test_tz_dtype_matchesorderFCc                 C   s   t jdddd}tj|tddd}|dkr|j}t|}t| }t	
|d	  |d	  |d
 |d
 ks:J |d |d ksDJ t|}t| |j}t	|| d S )Nz
2016-01-01   z
US/Pacific)r9   r2   r   r   r   rb   r   r   )r	   r;   r   r   objectr    Tr   ravelr=   r^   r   r   shaper>   )r   ra   dtir#   resr@   r   r   r   test_2d   s   
zTestSequenceToDT64NS.test_2dN)	rV   rW   rX   r]   r`   r   rY   rZ   rk   r   r   r   r   r[      s
    r[   )numpyr   r   pandas.core.dtypes.dtypesr   pandasr	   pandas._testing_testingr=   pandas.core.arraysr   pandas.core.arrays.datetimesr   r   r[   r   r   r   r   <module>   s    w