
    Eg*+                        d dl Zd dlZd dlmZ d dlmZ d dlZd dl	m
Z d dlmZ  G d d          Z G d d          Zd d	ded
dgZg dZg dZej                            dddddefddddefddddefddddefddddefddddefddddefddddefg          d             Zej                            dg d          d             Zd ZdS )    N)iNaT)DatetimeTZDtype)DatetimeArrayc                      e Zd Zd Zd Zd Zej                            de	j
        ej        ej        g          d             Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zej                            dg d          d             ZdS )TestDatetimeArrayConstructorc                 $   t           j                            t          j        d          t          j        d          g          }t          j        t          d          5  t          j	        |d           d d d            d S # 1 swxY w Y   d S )N   zCannot create a DatetimeArraymatchM8[ns]dtype)
pd
MultiIndexfrom_productnparangepytestraises	TypeErrorr   _from_sequence)selfmis     d/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/arrays/datetimes/test_constructors.pytest_from_sequence_invalid_typez<TestDatetimeArrayConstructor.test_from_sequence_invalid_type   s    ]''1ry||(DEE]9,KLLL 	= 	=(8<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   !BB	B	c           	         t          j        g dd                              d          }d}t          j        t
          |          5  t          j        t          d          5  t          |
                    ddd	                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t
          |          5  t          j        t          d          5  t          |d
g                                                    d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)r            zM8[h]r   r   $DatetimeArray.__init__ is deprecatedr
   zOnly 1-dimensionalr   r   r   )r   arrayastypetmassert_produces_warningFutureWarningr   r   
ValueErrorr   reshapesqueeze)r   arrdepr_msgs      r   test_only_1dim_acceptedz4TestDatetimeArrayConstructor.test_only_1dim_accepted   s(   h|||7333::8DD9'XFFF 	4 	4z1EFFF 4 4ckk!Q223334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4
 'XFFF 	2 	2z1EFFF 2 2c1#h..001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2sl   	B-%%B
B-B	B-B	B--B14B1D</)D$D<$D(	(D<+D(	,D<<E E c                 J   t          j        dt           j                  dz  dz  }d}d}t          j        t
          |          5  t          j        t          |          5  t          |d	           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nr	   r      ʚ;zRInferred frequency h from passed values does not conform to passed frequency W-SUNr    r
   Wfreq)
r   r   int64r#   r$   r%   r   r   r&   r   )r   r)   msgr*   s       r   test_freq_validationz1TestDatetimeArrayConstructor.test_freq_validation!   s,    i***T1E90 	 :'XFFF 	- 	-z555 - -c,,,,- - - - - - - - - - - - - - -	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s6   B"B 4B B	BB	BBBmethc                    t          j        t          j        d          t          j        dd          g          }d}||d d d         fD ]@}t	          j        t          |          5   ||           d d d            n# 1 swxY w Y   Ad 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   r5   r)   r3   objs        r    test_mixing_naive_tzaware_raisesz=TestDatetimeArrayConstructor.test_mixing_naive_tzaware_raises/   s     hV,,bl6e.L.L.LMNN, 	 TTrT# 	 	C z555  S			              	 	s   )BB	B	c                 *   t          j        t          j        dt          j                            dz  dz  }t          j        |d                              d          }t          j        ddd	          j	        }t          j        ||           d S )
Nr	   r   r-   r.   r   inferz
1970-01-01h)periodsr1   )r   r!   r   r   r2   r   r   
_with_freq
date_range_datar#   assert_datetime_array_equal)r   r)   resultexpecteds       r   test_from_pandas_arrayz3TestDatetimeArrayConstructor.test_from_pandas_arrayG   s    hry"(33344t;eC-cBBBMMgVV=qsCCCI
&vx88888    c                    d}t          j        t          |          5  t          t	          j        dgd          t          d                    }d d d            n# 1 swxY w Y   t          d          }d	}t          j        t          |          5  t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        t          |          5  t          |t	          j
        d                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        t          |          5  t          |                    d           |j
                   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nr    r
   z2000-01-01T06:00:00r   r   
US/Centralr9   
US/EasternzEdtype=datetime64\[ns.*\] does not match data dtype datetime64\[ns.*\])r#   r$   r%   r   r   r!   r   r   r   r   r   tz_localize)r   r*   r)   r   r3   s        r   test_mismatched_timezone_raisesz<TestDatetimeArrayConstructor.test_mismatched_timezone_raisesO   s   9'XFFF 	 	/0AAA%666  C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
  <000V'XFFF 	0 	0y444 0 0c////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0
 'XFFF 	= 	=y444 = =c(););<<<<= = = = = = = = = = = = = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 'XFFF 	F 	Fy444 F Fcood3339EEEEF F F F F F F F F F F F F F F	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   5AA#&A#C(3CC(C	C(C	C((C,/C,E1*$EE1E	E1!E	"E11E58E5H3*G)H)G-	-H0G-	1HHHc                     d}t          j        t          |          5  t          j        t
          d          5  t          g d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr    r
   listr   r   r   )r#   r$   r%   r   r   r&   r   r   r*   s     r   test_non_array_raisesz2TestDatetimeArrayConstructor.test_non_array_raisesd   s    9'XFFF 	) 	)z888 ) )iii((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s4   A0AA0A	A0A	 A00A47A4c                    t          j        g dd          }d}d}t          j        t          |          5  t          j        t          |          5  t          |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j
        |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )	NrR   boolr   r    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   r   r   r   DatetimeIndexto_datetime)r   r)   r*   r3   s       r   test_bool_dtype_raisesz3TestDatetimeArrayConstructor.test_bool_dtype_raisesj   s   hyyy///9='XFFF 	# 	#z555 # #c"""# # # # # # # # # # # # # # #	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# D]9C000 	> 	>(H====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> ]9C000 	" 	"S!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ]9C000 	  	 N3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 sk   BA0$B0A4	4B7A4	8BBB/CCC8DD D?E!!E%(E%c                 Z   d}t          j        t          |          5  t          j        t
          d          5  t          t          j        g dd          d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        t
          d          5  t          t          j        g dd          d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        t
          d          5  t          t          j        g dd          d	           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )
Nr    r
   zUnexpected value for 'dtype'.rR   i8r   categoryzm8[s]zM8[D]	r#   r$   r%   r   r   r&   r   r   r!   rS   s     r   test_incorrect_dtype_raisesz8TestDatetimeArrayConstructor.test_incorrect_dtype_raises}   sw   9'XFFF 	Q 	Qz1PQQQ Q Qbhyyy===ZPPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 'XFFF 	N 	Nz1PQQQ N Nbhyyy===WMMMMN N N N N N N N N N N N N N N	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 'XFFF 	N 	Nz1PQQQ N Nbhyyy===WMMMMN N N N N N N N N N N N N N N	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	Ns   B(A."B.A2	2B5A2	6BB	B	+D(C;/D;C?	?DC?	DDD8F (F<F F	F F	F  F$'F$c                 f   t          j        g dd          }t          j        d          }d}d}t          j        t
          |          5  t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          dd	
          }t          j        t
          |          5  t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrR   zM8[s]r   r   z'Values resolution does not match dtype.r    r
   UTCns)r:   unit)r   r!   r   r#   r$   r%   r   r   r&   r   r   )r   r)   r   r3   r*   dtype2s         r   "test_mismatched_values_dtype_unitsz?TestDatetimeArrayConstructor.test_mismatched_values_dtype_units   s&   hyyy000""79'XFFF 	0 	0z555 0 0c////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 !E555'XFFF 	1 	1z555 1 1c00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1sl   B(B:BB
	
BB
	BB!$B!D&0DD&D	D&D	D&&D*-D*c                 &   d}t          j        t          |          5  t          j        t
          d          5  t          t          j        g dd          d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	Nr    r
   zFrequency inferencerR   r[   r   r@   r0   r]   rS   s     r   test_freq_infer_raisesz3TestDatetimeArrayConstructor.test_freq_infer_raises   s7   9'XFFF 	M 	Mz1FGGG M Mbhyyy===GLLLLM M M M M M M M M M M M M M M	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	Ms4   B(A."B.A2	2B5A2	6BB
B
c                     t          j        g dd          }t          j        |d          }|j        |u sJ t          j        |d          }|j        |usJ d S )NrR   r   r   FcopyT)r   r!   r   r   _ndarray)r   datar)   s      r   	test_copyz&TestDatetimeArrayConstructor.test_copy   sp    x			222*4e<<<|t####*4d;;;|4''''''rJ   rb   )smsusra   c                     t          j        g dd| d          }t          j        |          }|j        |k    sJ |d         j        |k    sJ d S )NrR   M8[]r   r   )r   r!   r   r   rb   )r   rb   rk   r)   s       r   test_numpy_datetime_unitz5TestDatetimeArrayConstructor.test_numpy_datetime_unit   sb    x			t777*400x41v{d""""""rJ   N)__name__
__module____qualname__r   r+   r4   r   markparametrizer   r   r   rX   rW   r>   rI   rO   rT   rY   r^   rd   rf   rl   rs    rJ   r   r   r      s@       = = =
2 2 2- - - [(N	
    9 9 9F F F*) ) )     &N N N1 1 1M M M( ( ( [V%<%<%<==# # >=# # #rJ   r   c                   f    e Zd Zd Zd Zej                            dddg          d             ZdS )TestSequenceToDT64NSc                     t          j        dgt          d                    }t          j        t
          d          5  t          j        |t          d                     d d d            d S # 1 swxY w Y   d S )Nr7   rL   r9   r   zdata is already tz-awarer
   r`   )r   r   r   r   r   r   )r   r)   s     r   test_tz_dtype_mismatch_raisesz2TestSequenceToDT64NS.test_tz_dtype_mismatch_raises   s    *HO|<<<
 
 
 ]9,FGGG 	O 	O(Ou4M4M4MNNNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Os   %A33A7:A7c                     t          d          }t          j        dg|          }t          j        ||          }t          j        ||           d S )NrL   r9   r7   r   )r   r   r   r#   assert_equal)r   r   r)   rG   s       r   test_tz_dtype_matchesz*TestSequenceToDT64NS.test_tz_dtype_matches   sV    <000*F85AAA-c???
V$$$$$rJ   orderFCc                    t          j        ddd          }t          j        |t                                        dd          }|dk    r|j        }t          j        ||j	                  }t          j        |
                                |j	                                      |j                  }t          j        ||           d S )	Nz
2016-01-01   z
US/Pacific)rB   r:   r   r   r   r   )r   rD   r   r!   objectr'   Tr   r   r   ravelshaper#   rF   )r   r   dtir)   resrH   s         r   test_2dzTestSequenceToDT64NS.test_2d   s    mL!EEEhs&)))11!Q77C<<%C*3ci@@@ /		39MMMUUI
 
 	&sH55555rJ   N)	rt   ru   rv   r}   r   r   rw   rx   r   ry   rJ   r   r{   r{      sg        O O O% % % [WsCj11
6 
6 21
6 
6 
6rJ   r{   [    l )l    Fr Nl Fr ){   Ni)pa_unitpd_unitpa_tzpd_tzrk   rm   r`   rn   Europe/Berlinro   rM   ra   rL   Asia/Kolkatac                    t          j        d          }|                    | |          }|                    ||          }t	          ||          }|                    |          }	t          j        |d|  d                              |d	          }
t          j
        |	|
           |                    |                    |g                    }	t          j
        |	|
           d S )
Npyarrowr9   )typerb   r:   rq   z, UTC]r   Frh   )r   importorskip	timestampr!   r   __from_arrow__r   r   r"   r#   assert_extension_array_equalchunked_array)r   r   r   r   rk   papa_typer)   r   rG   rH   s              r   7test_from_arrow_with_different_units_and_timezones_withr      s      
	Y	'	'Bll7ul--G
((4g(
&
&CU333E!!#&&F+D8Mg8M8M8MNNNUUE V  H #FH555!!""2"2C5"9"9::F#FH55555rJ   r   ))rm   r`   )rn   r   )ro   rM   )ra   r   )ra   r`   c                    t          j        d          }g }|                    |          }t          | |          }|                    |          }t          j        t          j        |d|  d                    }|                    |          }t          j
        ||           |                    |                    |g                    }t          j
        ||           d S )Nr   r   zdatetime64[rr   r   r9   )r   r   r!   r   r   r   r   r   rN   r#   r   r   )rb   r:   r   rk   r)   r   rG   rH   s           r   test_from_arrow_from_emptyr      s     
	Y	'	'BD
((4..C"---E!!#&&F+BHTAVtAVAVAV,W,W,WXXH##r#**H#FH555!!""2"2C5"9"9::F#FH55555rJ   c                     t          j        d          } ddd dt          dg}|                     |          }t	          dd          }|                    |          }t          j        t          j        |d	
                    }|	                    d          }t          j        ||           |                    |                     |g                    }t          j        ||           d S )Nr   r   r   r   i2ra   r`   r   zdatetime64[ns]r   )r   r   r   r!   r   r   r   r   r   rN   r#   r   r   )r   rk   r)   r   rG   rH   s         r   test_from_arrow_from_integersr     s    		Y	'	'By$	4<D
((4..C%000E!!#&&F+BHTAQ,R,R,RSSH##E**H#FH555!!""2"2C5"9"9::F#FH55555rJ   )numpyr   r   pandas._libsr   pandas.core.dtypes.dtypesr   pandasr   pandas._testing_testingr#   pandas.core.arraysr   r   r{   EXTREME_VALUESFINE_TO_COARSE_SAFECOARSE_TO_FINE_SAFErw   rx   r   r   r   ry   rJ   r   <module>r      s              5 5 5 5 5 5           , , , , , ,`# `# `# `# `# `# `# `#F6 6 6 6 6 6 6 6@ YdI|D??? '''  4	c5%0	tUO^<	t\5.9	t\>>B	sE5"56	tUO-@A	t\5*=>	dL.2EF	 6 6 6&   	 	6 6	 	6 6 6 6 6 6rJ   