o
    ŀgE                     @   sp  d dl Zd dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
mZ d dlmZ d dlmZmZmZmZmZmZ d dlmZ G dd dZejdejd d	gejd
ejdfeddgejdfeddgejdfejddgddedfej ddgddeej!j"j"#dfej$%g dedfeddgedfe&dgedfgdd  Z'ejd!eg d"gd#d$ Z(d%d& Z)ejd'eddgd(fej*d)d*gd+d
d,fejd ej+gd-d
d.fe%d d	gd/fed d	gd0fe*ejd	d1gdd
d,fej*ejd2d3gd4d
eddd
d,fgd5d6 Z,d7d8 Z-ejd9ejd	d1gejd
ejd	d1gejd
feddgejddge.d
fej!j/j0d)d*gd:deej1d)d:dej1d*d:dgfejd ej+gd-d
ed ej+gfe%g deje2d d	e2d	d1ge.d
fed d	gejd d	gejd
fe*ejd)d*gd4d
ejd)d*gd4d
fe*ejd;d<gd4d
3d=4dee
d>dde
d?ddgfe*ejd d@gdAd
5dejd d@gdd
feedBd1dCdDee
dBdCde
dEdCdgfg
dFdG Z6ejdHdIdJgejd!ejg d"dd
ejg dKe.d
gdLdM Z7ejdHdIdJgdNdO Z8ejdPg dQdRd g dSfe
d)e
d)ej9gde
d)e:dTgdU fgdVdW Z;ejdXg dYg dZe<dd[d\ej+d]gfg dYg dZe<ej+d[d\ej+d]gfd[d\ej+d]gg d^e=d g d_fe
d)e
d)ej9gd e
d`fd e
dafd	e
d)fgde
d)e:dTgdU fgdbdc Z>ddde Z?ejdfg d"g dQdgeg d"ed	d1ej+gdgeg d"eg dQdggejdhe<ej+fe.dfgdidj Z@ejdkdeg dQiejd[gd\gej+gge<d
fg d"g d"dgejd	d	gd1d1gdUdUgge<d
fgdldm ZAdndo ZBG dpdq dqZCdS )r    N)DatetimeTZDtype)CategoricalIndexSeries	Timedelta	Timestamp
date_range)DatetimeArrayIntervalArrayNumpyExtensionArrayPeriodArraySparseArrayTimedeltaArray)ArrowStringArrayNumpySemanticsc                   @   s  e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefdefdefdefgZej	
deej	j
ddd dd dd dd gg dddd Zej	
ddedfdedfdedfdedfgej	j
ddd d d d!d d"d gg ddd#d$ Zej	
ded%d& Zej	
dedefdefg d'd( Zej	j
dd)d d*d d+d d,d gg ddd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7S )8TestToIterableint8int16int32int64uint8uint16uint32uint64float16float32float64datetime64[ns]zdatetime64[ns, US/Eastern]ztimedelta64[ns]zdtype, rdtypemethodc                 C      |   S Ntolistx r#   U/var/www/html/myenv/lib/python3.10/site-packages/pandas/tests/base/test_conversion.py<lambda>2       zTestToIterable.<lambda>c                 C   r   r   to_listr!   r#   r#   r$   r%   3   r&   c                 C      t | S r   listr!   r#   r#   r$   r%   4   r&   c                 C      t |  S r   r+   __iter__r!   r#   r#   r$   r%   5       )r    r(   r+   iter)idsc                 C   s   |}|dkr-t |tjr-tjtdd |dg|d W d    d S 1 s&w   Y  d S |dg|d}||d }t||sAJ d S Nr   zfloat16 indexes are not match   dtyper   )
issubclasspdIndexpytestraisesNotImplementedError
isinstance)selfindex_or_seriesr   r7   rdtypetypsresultr#   r#   r$   test_iterable.   s   
zTestToIterable.test_iterablezdtype, rdtype, objobjectar5   categoryc                 C   r   r   r   r!   r#   r#   r$   r%   R   r&   c                 C   r   r   r'   r!   r#   r#   r$   r%   S   r&   c                 C   r)   r   r*   r!   r#   r#   r$   r%   T   r&   c                 C   r,   r   r-   r!   r#   r#   r$   r%   U   r/   c           	      C   s0   |}||g|d}||d }t ||sJ d S )Nr6   r   )r>   )	r?   r@   r   r7   rA   objrB   rC   rD   r#   r#   r$   !test_iterable_object_and_categoryF   s   z0TestToIterable.test_iterable_object_and_categoryc                 C   sV   t dg|d}tt| \}}t||sJ tt| \}}t||s)J d S )Nr5   r6   )r   nextr0   itemsr>   )r?   r7   rA   rC   _rD   r#   r#   r$   test_iterable_itemsd   s
   z"TestToIterable.test_iterable_itemsc                 C   s   |}|dkr-t |tjr-tjtdd |dg|d W d    d S 1 s&w   Y  d S |dg|d}|td }t|t	sC|f}||v sIJ d S r2   )
r8   r9   r:   r;   r<   r=   maptyper>   tuple)r?   r@   r7   rA   rB   rC   rD   r#   r#   r$   test_iterable_mapp   s   

z TestToIterable.test_iterable_mapc                 C   r   r   r   r!   r#   r#   r$   r%      r&   c                 C   r   r   r'   r!   r#   r#   r$   r%      r&   c                 C   r)   r   r*   r!   r#   r#   r$   r%      r&   c                 C   r,   r   r-   r!   r#   r#   r$   r%      r/   c                 C   s2   t tdtdg}||d }t|tsJ d S )Nz
1999-12-31z
2000-12-31r   )r   r   r>   )r?   r   irD   r#   r#   r$   test_categorial_datetimelike   s   z+TestToIterable.test_categorial_datetimelikec                 C   s   t dt dg}t|j|}|jd| dksJ t||D ]\}}t|t s+J |jd u s2J ||ks8J |j|ks?J q d S )N
2011-01-01
2011-01-02datetime64[]	r   r   dtas_unitr7   zipr>   tzunitr?   r^   valsserresexpr#   r#   r$   test_iter_box_dt64   s   z!TestToIterable.test_iter_box_dt64c                 C   s   t dddt dddg}t|j|}|jd| dksJ t||D ] \}}t|t s/J |j|jks7J ||ks=J |j|ksDJ q$d S )NrU   
US/Easternr]   rV   rW   z, US/Eastern]rY   r_   r#   r#   r$   test_iter_box_dt64tz   s   

z#TestToIterable.test_iter_box_dt64tzc                 C   sv   t dt dg}t|j|}|jd| dksJ t||D ]\}}t|t s+J ||ks1J |j|ks8J q d S )Nz1 daysz2 daysztimedelta64[rX   )r   r   rZ   r[   r7   r\   r>   r^   r_   r#   r#   r$   test_iter_box_timedelta64   s   z(TestToIterable.test_iter_box_timedelta64c                 C   st   t jdddt jdddg}t|}|jdksJ t||D ]\}}t|t js*J |jdks1J ||ks7J qd S )NrU   MfreqrV   z	Period[M]ME)r9   Periodr   r7   r\   r>   rk   )r?   r`   rC   rb   rc   r#   r#   r$   test_iter_box_period   s   z#TestToIterable.test_iter_box_periodN)__name__
__module____qualname__intfloatr   r   dtypesr;   markparametrizerE   rF   rJ   rN   rR   rT   rd   rg   rh   rn   r#   r#   r#   r$   r      s    
	






r   zarr, expected_type, dtyper5   r6   r   rG   brF   rH   20172018
US/Centralrf   zdatetime64[ns, US/Central]i  i  Yrj   zY-DEC)r   r5      intervalr   l    d(	 zm8[ns]c                 C   sZ   |r|dkrt }t| j}t| j}t||u sJ t|t|u s%J t|| d S )NrF   )r   r   _valuesr9   r:   rP   tmassert_equal)arrexpected_typer7   using_infer_stringl_valuesr_valuesr#   r#   r$   test_values_consistent   s   
r   r   r5   r|      c                 C   s&   t | }|j}t| }t|| d S r   )r   arrayr
   r   assert_extension_array_equal)r   ra   rD   expectedr#   r#   r$   test_numpy_array   s   r   c                 C   sf   t | d}|j}t| jdkrt|tsJ d S t| jdkr*t|ts(J d S t|ts1J d S )Nr6   ri   m)	r   r   npr7   kindr>   r   r   r
   )any_numpy_dtypera   rD   r#   r#   r$   test_numpy_array_all_dtypes   s   
r   z	arr, attr_codes20002001z	period[D]_ndarrayInt64_data_left_sparse_valuesr|   z2000-01-01T12:00:00z2000-01-02T12:00:00M8[ns]c                 C   s:   |}|| ddj }|rt| |} t||}|| u sJ d S )NFcopy)r   getattr)r   attrr@   requestboxrD   r#   r#   r$   
test_array   s   

r   c                  C   sT   t jdgddgg} d}tjt|d | j W d    d S 1 s#w   Y  d S )NArG   rw   z&MultiIndex has no single backing arrayr3   )r9   
MultiIndexfrom_productr;   r<   
ValueErrorr   )idxmsgr#   r#   r$   test_array_multiindex_raises  s
   "r   zarr, expectedDz2000-01-01T06:00:00z2000-01-02T06:00:00UTC
2000-01-01
2000-01-02l     qai8z
2016-01-01z
US/Pacificperiodsr]   z
2016-01-02c                 C   sd   |}t d  || }W d    n1 sw   Y  | }t || t|}t || d S r   )r   assert_produces_warningto_numpyassert_numpy_array_equalr   asarray)r   r   index_or_series_or_arrayr   r   thingrD   r#   r#   r$   test_to_numpy$  s   6

r   	as_seriesTF)rG   rw   cc                 C   s   t j| dd}|rt|jdd}| }|r&| jtkr&t| |du s%J n
t| |du s0J |jdd}|rH| jtkrHt| |du sGJ n
t| |du sRJ |jdd}t| |du sbJ d S )NFr   T)	r9   r:   r   valuesr   r7   rF   r   shares_memory)r   r   r   rI   rD   r#   r#   r$   test_to_numpy_copyf  s   r   c                 C   s   d}t jddg|d}| rt|}| }tjtd|dtd|dgtd}t	|| |jdd}t	|| |jdd}tjdd	gdd}t	|| d S )
Nre   r   r   rf   r6   rF   r   z2000-01-01T05z2001-01-01T05)
r9   DatetimeIndexr   r   r   r   r   rF   r   r   )r   r^   r]   rI   rD   r   r#   r#   r$   test_to_numpy_dtype  s   r   z!values, dtype, na_value, expected)r5   r|   Nr   )      ?       @        z2000-01-01T00:00:00.000000000r   c                 C   s0   | |}|j ||d}t|}t|| d S Nr7   na_value)r   r   r   r   r   )r@   r   r7   r   r   rI   rD   r#   r#   r$   "test_to_numpy_na_value_numpy_dtype  s   
r   z+data, multiindex, dtype, na_value, expected)r5   r|   N   ))r   rG   )r   rw   )r5   rw   )r5   r   r   r   g      @))rG   r   )rG   r5   )rG   r|   )rw   r   )r5   r|   r   r   20212022c                 C   s@   t j|}t| |d}|j||d}t|}t|| d S )N)indexr   )	r9   r   from_tuplesr   r   r   r   r   r   )data
multiindexr7   r   r   r   seriesrD   r#   r#   r$   (test_to_numpy_multiindex_series_na_value  s
   $
r   c                  C   s   t g d} d}tjt|d | jdd W d    n1 s w   Y  t g ddd} tjt|d | jdd W d    d S 1 sFw   Y  d S )Nr   z5to_numpy\(\) got an unexpected keyword argument 'foo'r3   T)foor   r6   )r   r;   r<   	TypeErrorr   )rC   r   r#   r#   r$   test_to_numpy_kwargs_raises  s   "r   r   )rG   rw   zdtype, na_valuec                 C   sH   t | }|j||d}tjddgddgd|gg|d}t|| d S )Nr   r5   r|   r   r6   )r9   	DataFramer   r   r   r   r   )r   r7   r   dfrD   r   r#   r#   r$    test_to_numpy_dataframe_na_value  s   
 r   zdata, expectedc                 C   s*   t | }|jttjd}t|| d S r   )r9   r   r   rs   r   nanr   r   )r   r   r   rD   r#   r#   r$   $test_to_numpy_dataframe_single_block  s   
r   c                  C   sL   t tddtjg} t tddtjg}| jdd t| | d S )Nr   r   r   )r   )r9   r   r   r   r   r   r   assert_frame_equal)rD   r   r#   r#   r$   .test_to_numpy_dataframe_single_block_no_mutate	  s   r   c                   @   s6   e Zd Zejdddgdd Zdd Zdd	 ZdS )
TestAsArrayr]   Nrz   c                 C   sx   t tdd|d}td  tj|td}W d    n1 s w   Y  ttd|dtd|dg}t	|| d S )Nr   r|   r   r6   r   rf   r   )
r   r   r   r   r   r   rF   r   r   r   )r?   r]   ra   rD   r   r#   r#   r$   test_asarray_object_dt64  s   z$TestAsArray.test_asarray_object_dt64c                 C   s<   t tddd}tjddgdd}t|}t|| d S )Nr   r|   )r   r   r   r   r6   r   r   r   r   r   r   r   )r?   ra   r   rD   r#   r#   r$   test_asarray_tz_naive  s   
z!TestAsArray.test_asarray_tz_naivec                 C   s`   d}t tdd|d}tjddgdd}tj|d	d}t|| tj|dd}t|| d S )
Nrz   r   r|   r   z2000-01-01T06z2000-01-02T06r   r6   r   r   )r?   r]   ra   r   rD   r#   r#   r$   test_asarray_tz_aware'  s   z!TestAsArray.test_asarray_tz_aware)	ro   rp   rq   r;   ru   rv   r   r   r   r#   r#   r#   r$   r     s
    
r   )Dnumpyr   r;   pandas.core.dtypes.dtypesr   pandasr9   r   r   r   r   r   pandas._testing_testingr   pandas.core.arraysr   r	   r
   r   r   r   pandas.core.arrays.string_arrowr   r   ru   rv   r   r   ndarrayCategoricalr   PeriodIndexcorert   PeriodDtypeIntervalIndexfrom_breaksTimedeltaIndexr   r   r   _from_sequencer   r   r   rF   arraysperiod_arrayrm   Intervaltz_localize
tz_convertviewr   r   r   NaT
datetime64r   rs   rr   r   r   r   r   r   r   r#   r#   r#   r$   <module>   sV     %



& " 




5$

	 
!
 
