o
    vh                     @   sr   d dl Zd dlZd dlmZmZmZmZmZm	Z	 d dl
mZ d dlmZ edZG dd dZG dd dZdS )	    N)Categorical	DataFrame
MultiIndexSeriesStringDtype
date_range)Versionxarrayc                   @   s2   e Zd Zejdd Zdd Zdd Zdd Zd	S )
TestDataFrameToXArrayc                 C   s`   t tdttddtdddtjddd	d
g dttdtdddtdddddS )Nabcd            u1g      @g       @float64dtype)TFTF20130101   )periodsz
US/Eastern)r   tz)abcdefgh)r   listrangenparangeastyper   r   )self r&   a/var/www/html/hyperkenya/venv/lib/python3.10/site-packages/pandas/tests/generic/test_to_xarray.pydf   s   

zTestDataFrameToXArray.dfc                 C   s   |}t |dkrtd ddlm} |d d |_d|j_d|j_| }|j	d dks/J t |j
dks8J t |jdksAJ tt|j
 dg t||sTJ | }|d	 |s`tnd
|d	< d |j_t| | d S )Nr   z'Test doesn't make sense for empty indexDatasetr   foobarr      r   str)lenpytestskipr	   r*   indexnamecolumns	to_xarraysizescoords	data_varstmassert_almost_equalr    keys
isinstancecopyr$   objectassert_frame_equalto_dataframe)r%   
index_flatr(   using_infer_stringr2   r*   resultexpectedr&   r&   r'   test_to_xarray_index_types"   s&   

z0TestDataFrameToXArray.test_to_xarray_index_typesc                 C   sH   ddl m} d|j_|dd  }|jd dksJ t||s"J d S )Nr   r)   r+   )r	   r*   r2   r3   r5   r6   r<   )r%   r(   r*   rC   r&   r&   r'   test_to_xarray_empty>   s
   z*TestDataFrameToXArray.test_to_xarray_emptyc                 C   s   ddl m} tjdgtdgddgd|_| }|jd dks"J |jd dks+J t|j	d	ks4J t|j
d
ks=J tt|j	 ddg t||sQJ | }| }|d |satnd|d< d |j_t|| d S )Nr   r)   r   r   onetwonamesr      r-   r   r.   )r	   r*   r   from_productr!   r2   r5   r6   r/   r7   r8   r9   r:   r    r;   r<   r@   r=   r$   r>   r4   r3   r?   )r%   r(   rB   r*   rC   rD   r&   r&   r'   test_to_xarray_with_multiindexF   s    
z4TestDataFrameToXArray.test_to_xarray_with_multiindexN)	__name__
__module____qualname__r0   fixturer(   rE   rF   rM   r&   r&   r&   r'   r
      s    
r
   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestSeriesToXArrayc                 C   s   |}t |jtr+|jjdkr+ttjtdkr+ttjtdk r+|tj	j
dtd ddlm} ttt||dd	}d
|j_| }t| t|t|ksRJ t|jdks[J tt|j d
g t ||snJ t| | d S )Npyarrowz2024.9.0z2025.6.0z-xarray calling reshape of ArrowExtensionArray)reasonraisesr   	DataArrayint64)r2   r   r+   r   )r<   r   r   storager   r	   __version__applymarkerr0   markxfailNotImplementedErrorrW   r   r!   r/   r2   r3   r5   reprr7   r9   r:   r    r;   assert_series_equal	to_series)r%   rA   requestr2   rW   serrC   r&   r&   r'   rE   ]   s,   
z-TestSeriesToXArray.test_to_xarray_index_typesc                 C   st   ddl m} tg td}d|j_| }t|dksJ t|jdks%J t	
t|j dg t||s8J d S )Nr   rV   r   r+   r   )r	   rW   r   r>   r2   r3   r5   r/   r7   r9   r:   r    r;   r<   )r%   rW   rc   rC   r&   r&   r'   rF   {   s   z'TestSeriesToXArray.test_to_xarray_emptyc                 C   s   ddl m} tjddgtdgddgd}ttd	d
|d}| }t|dks*J t	t
|j ddg t||s>J | }t|| d S )Nr   rV   r   r   r   rG   rH   rI      rX   )r   r2   rK   )r	   rW   r   rL   r!   r   r5   r/   r9   r:   r    r7   r;   r<   ra   r`   )r%   rW   mirc   rC   resr&   r&   r'   rM      s   z1TestSeriesToXArray.test_to_xarray_with_multiindexN)rN   rO   rP   rE   rF   rM   r&   r&   r&   r'   rR   \   s    rR   )numpyr"   r0   pandasr   r   r   r   r   r   pandas._testing_testingr9   pandas.util.versionr   importorskipr	   r
   rR   r&   r&   r&   r'   <module>   s     
J