o
    ҷhGB                     @   sZ  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 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d/feejdd0gdd	d+feejd1d2gd3d	eddd	d+fgd4d5 Z*d6d7 Z+ejd8ejdd0gejd	ejdd0gejd	feddgejddge,d	fejj-j.d(d)gd9deej/d(d9dej/d)d9dgfejd ej)gd,d	ejd ej0ge,d	fe#g deje1d de1dd0ge,d	fed dgejd dgejd	feejd(d)gd3d	ejd(d)gd3d	feejd:d;gd3d	eddd	ee
d<dde
d=ddgfeejd d>gd?d	d@dejd d>gdd	feedAd0dBdCee
dAdBde
dDdBdgfg
dEdF Z2ejdGdHdIgejd ejg d!d
d	ejg dJe,d	gdKdL Z3ejdGdHdIgdMdN Z4ejdOg dPdQd g dRfe
d(e
d(ej5gde
d(e6dSgdT fgdUdV Z7ejdWg dXg dYe8ddZd[ej)d\gfg dXg dYe8ej)dZd[ej)d\gfdZd[ej)d\gg d]e9d g d^fe
d(e
d(ej5gd e
d_fd e
d`fde
d(fgde
d(e6dSgdT fgdadb Z:dcdd Z;ejdeg d!g dPdfeg d!edd0ej)gdfeg d!eg dPdfgejdge8ej)fe,dfgdhdi Z<ejdjdeg dPiejdZgd[gej)gge8d	fg d!g d!dfejddgd0d0gdTdTgge8d	fgdkdl Z=dmdn Z>G dodp dpZ?dS )q    N)DatetimeTZDtype)CategoricalIndexSeries	Timedelta	Timestamp
date_range)DatetimeArrayIntervalArrayNumpyExtensionArrayPeriodArraySparseArrayTimedeltaArrayc                   @   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d1S )2TestToIterableint8int16int32int64uint8uint16uint32uint64float16float32float64datetime64[ns]datetime64[ns, US/Eastern]timedelta64[ns]zdtype, rdtypemethodc                 C      |   S Ntolistx r$   T/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/base/test_conversion.py<lambda>1       zTestToIterable.<lambda>c                 C   r   r   to_listr"   r$   r$   r%   r&   2   r'   c                 C      t | S r   listr"   r$   r$   r%   r&   3   r'   c                 C      t |  S r   r,   __iter__r"   r$   r$   r%   r&   4       )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   r8   rdtypetypsresultr$   r$   r%   test_iterable-   s   
zTestToIterable.test_iterablezdtype, rdtype, objobjectar6   categoryc                 C   r   r   r    r"   r$   r$   r%   r&   Q   r'   c                 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   r0   c           	      C   s0   |}||g|d}||d }t ||sJ d S )Nr7   r   )r?   )	r@   rA   r   r8   rB   objrC   rD   rE   r$   r$   r%   !test_iterable_object_and_categoryE   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 )Nr6   r7   )r   nextr1   itemsr?   )r@   r8   rB   rD   _rE   r$   r$   r%   test_iterable_itemsc   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 r3   )
r9   r:   r;   r<   r=   r>   maptyper?   tuple)r@   rA   r8   rB   rC   rD   rE   r$   r$   r%   test_iterable_mapo   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&      r0   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   irE   r$   r$   r%   test_categorial_datetimelike   s   z+TestToIterable.test_categorial_datetimelikec                 C   s  t dt dg}t|}|jdksJ t||D ]\}}t|t s#J |jd u s*J ||ks0J qt dddt dddg}t|}|jdksHJ t||D ]\}}t|t sXJ |j|jks`J ||ksfJ qMtdtdg}t|}|jd	kszJ t||D ]\}}t|tsJ ||ksJ qtjdd
dtjdd
dg}t|}|jdksJ t||D ]\}}t|tjsJ |j	d
ksJ ||ksJ qd S )Nz
2011-01-01z
2011-01-02r   
US/Easterntzr   z1 daysz2 daysr   Mfreqz	Period[M])
r   r   r8   zipr?   rX   r   r:   Periodr[   )r@   valsrD   resexpr$   r$   r%   test_iter_box   s<   

zTestToIterable.test_iter_boxN)__name__
__module____qualname__intfloatr   r   dtypesr<   markparametrizerF   rG   rK   rO   rS   rU   ra   r$   r$   r$   r%   r      s|    
	




r   zarr, expected_type, dtyper6   r7   r   rH   brG   rI   20172018
US/CentralrW   zdatetime64[ns, US/Central]i  i  ArZ   zA-DEC)r   r6      intervalr   l    d(	 zm8[ns]c                 C   sJ   t | j}t| j}t||u sJ t|t|u sJ t|| d S r   )r   _valuesr:   r;   rQ   tmassert_equal)arrexpected_typer8   l_valuesr_valuesr$   r$   r%   test_values_consistent   s
   
rx   rt   r6   ro      c                 C   s&   t | }|j}t| }t|| d S r   )r   arrayr
   rr   assert_extension_array_equal)rt   serrE   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 )Nr7   rY   m)	r   r{   npr8   kindr?   r   r   r
   )any_numpy_dtyper}   rE   r$   r$   r%   test_numpy_array_all_dtypes   s   
r   z	arr, attr_codes20002001z	period[D]_ndarrayInt64_data_left_sparse_valuesro   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)rt   attrrA   requestboxrE   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 )Nrn   rH   rj   z&MultiIndex has no single backing arrayr4   )r:   
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
2000-01-01
2000-01-02l     qai8Hz
2016-01-01z
US/PacificperiodsrX   z
2016-01-02c                 C   s   |}t d  || }W d    n1 sw   Y  | jjdkr3|tju r3tjjdd}|j	
| | }t || t|}t || d S )Nr   z,thing is Int64 and to_numpy() returns object)reason)rr   assert_produces_warningr8   namer:   r{   r<   rh   xfailnode
add_markerto_numpyassert_numpy_array_equalr   asarray)rt   r~   index_or_series_or_arrayr   r   thingrh   rE   r$   r$   r%   test_to_numpy  s   5

r   	as_seriesTF)rH   rj   cc                 C   s   t j| dd}|rt|jdd}| }t| |du sJ |jdd}t| |du s.J |jdd}t| |du s>J d S )NFr   T)r:   r;   r   valuesr   r   shares_memory)rt   r   rJ   rE   r$   r$   r%   test_to_numpy_copy]  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 )
NrV   r   r   rW   r7   rG   r   z2000-01-01T05z2001-01-01T05)
r:   DatetimeIndexr   r   r   r{   r   rG   rr   r   )r   rX   rJ   rE   r~   r$   r$   r%   test_to_numpy_dtyper  s   r   z!values, dtype, na_value, expected)r6   ro   Nr   )      ?       @        z2000-01-01T00:00:00.000000000rz   c                 C   s0   | |}|j ||d}t|}t|| d S Nr8   na_value)r   r   r{   rr   r   )rA   r   r8   r   r~   rJ   rE   r$   r$   r%   "test_to_numpy_na_value_numpy_dtype  s   
r   z+data, multiindex, dtype, na_value, expected)r6   ro   N   ))r   rH   )r   rj   )r6   rj   )r6   r   r   r   g      @))rH   r   )rH   r6   )rH   ro   )rj   r   )r6   ro   r   r   20212022c                 C   s@   t j|}t| |d}|j||d}t|}t|| d S )N)indexr   )	r:   r   from_tuplesr   r   r   r{   rr   r   )data
multiindexr8   r   r~   r   seriesrE   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 )Nry   z5to_numpy\(\) got an unexpected keyword argument 'foo'r4   T)foor   r7   )r   r<   r=   	TypeErrorr   )rD   r   r$   r$   r%   test_to_numpy_kwargs_raises  s   "r   r   )rH   rj   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   r6   ro   rz   r7   )r:   	DataFramer   r   r{   rr   r   )r   r8   r   dfrE   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   )r:   r   r   rf   r   nanrr   r   )r   r~   r   rE   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   )r:   r   r   r{   r   r   rr   assert_frame_equal)rE   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 )
TestAsArrayrX   Nrm   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   ro   r   r7   r   rW   r   )
r   r   rr   r   r   r   rG   r{   r   r   )r@   rX   r}   rE   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   ro   )r   r   r   r   r7   r   r   r   r{   r   rr   r   )r@   r}   r~   rE   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 )
Nrm   r   ro   r   z2000-01-01T06z2000-01-02T06r   r7   r   r   )r@   rX   r}   r~   rE   r$   r$   r%   test_asarray_tz_aware  s   z!TestAsArray.test_asarray_tz_aware)	rb   rc   rd   r<   rh   ri   r   r   r   r$   r$   r$   r%   r     s
    
r   )@numpyr   r<   pandas.core.dtypes.dtypesr   pandasr:   r   r   r   r   r   pandas._testing_testingrr   pandas.core.arraysr   r	   r
   r   r   r   r   rh   ri   r{   r   ndarrayCategoricalr   PeriodIndexcorerg   PeriodDtypeIntervalIndexfrom_breaksTimedeltaIndexrx   r   r   _from_sequencer   r   r   rG   arraysperiod_arrayr]   NAIntervalr   r   r   NaT
datetime64r   rf   re   r   r   r   r   r   r   r$   r$   r$   r%   <module>   sN    
 

	

& & 




4$

	 
!
 
