a
    é´«j  ã                   @   s|   d dl Zd dlZd dlmZ d dlZd dlmZmZ d dl	m
Z dd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ ZdS )é    N)Únp_version_gt2)Ú	DataFrameÚ
MultiIndexc                 C   s   |   ¡ }| j}t ||¡ d S )N)Zto_numpyÚvaluesÚtmÚassert_numpy_array_equal)ÚidxÚresultÚexp© r   úi/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/indexes/multi/test_conversion.pyÚtest_to_numpy   s    r   c                 C   sÐ   t  | ¡}t jdtd�}g d¢|d d …< t ||¡ t  | ¡}t  | ¡}t  ||¡sXJ ‚t j| dd�}t j| dd�}t  ||¡r„J ‚tsŒd S d}tj	t
|d�� t j| dd� W d   ƒ n1 sÂ0    Y  d S )	N)é   ©Údtype©)ÚfooÚone)r   Útwo)Úbarr   )Zbazr   )Úquxr   )r   r   T)ÚcopyzGStarting with NumPy 2.0, the behavior of the 'copy' keyword has changed©ÚmatchF)ÚnpZasarrayÚemptyÚobjectr   r   Zmay_share_memoryÚarrayr   Zassert_produces_warningÚFutureWarning)r   r	   ÚexpectedZresult_copy1Zresult_copy2Úmsgr   r   r   Útest_array_interface   s    


r!   c                  C   sˆ  g d¢} t  | ¡}|jdd�}t| ƒ}t ||¡ | ¡ }||_t ||¡ g d¢} t j| ddgd�}|jdd�}t| ƒ}ddg|_t ||¡ | ¡ }||_t ||¡ t  | ¡}|jdddgd�}t| ƒ}ddg|_t ||¡ |jddgd�}||_ddg|_t ||¡ d	}tj	t
|d
�� |jdd� W d   ƒ n1 �sF0    Y  d}tj	t|d
�� |jdgd� W d   ƒ n1 �sˆ0    Y  t  tdƒtjddd�g¡}|jdd�}tt tjddd�d¡t tjddd�d¡dœƒ}t ||¡ | ¡ }||_t ||¡ |jdddgd�}tt tjddd�d¡t tjddd�d¡dœƒ}t ||¡ |jddgd�}||_t ||¡ d S )N))é   r   )r"   r   )é   r   )r#   r   F©ÚindexÚfirstÚsecond©Únames)r%   Úname)r*   z1'name' must be a list / sequence of column names.r   z<'name' should have same length as number of levels on index.é   Z20130101é   )ÚperiodsZint64r   )r   r"   )r&   r'   )r   Úfrom_tuplesÚto_framer   r   Úassert_frame_equalr%   ÚcolumnsÚpytestÚraisesÚ	TypeErrorÚ
ValueErrorZfrom_productÚrangeÚpdÚ
date_ranger   ÚrepeatZarangeZtile)Ztuplesr%   r	   r   r    r   r   r   Útest_to_frame7   sj    




,.þÿþÿr:   c                     sº   t jtjdddd�g d¢tjg d¢dd�g d	¢gg d
¢d�‰ ‡ fdd„tˆ jƒD ƒ} ttjdddd�g d¢tjg d¢dd�g d	¢d
œƒ}ˆ jdd�}|j	 
¡ }t ||¡ | |ks¶J ‚d S )NZ19910905r   z
US/Eastern)r-   Útz)r"   r"   r"   r#   r#   r#   )Úar<   Úbr=   Úcr>   T)Zordered)Úxr?   ÚyÚzr?   r@   )Údatesr<   r=   r>   r(   c                    s   i | ]\}}|ˆ j | j“qS r   )Zlevelsr   )Ú.0Úir*   ©Úmir   r   Ú
<dictcomp>‹   ó    z0test_to_frame_dtype_fidelity.<locals>.<dictcomp>Fr$   )r   Úfrom_arraysr7   r8   ZCategoricalÚ	enumerater)   r   r/   ZdtypesÚto_dictr   r0   )Zoriginal_dtypesZexpected_dfZdfZ	df_dtypesr   rE   r   Útest_to_frame_dtype_fidelity€   s(    üù	üÿ
rL   c                  C   sF   g d¢} t jg d¢g d¢g d¢g| d�}| ¡ j ¡ }|| ksBJ ‚d S )N)rA   r   r<   )r<   r=   r>   )r?   r@   rA   )ÚqÚwÚer(   )r   rI   r/   r1   Útolist)r   rF   r	   r   r   r   Ú$test_to_frame_resulting_column_orderœ   s    ÿrQ   c                  C   sô   ddg} ddg}t j| |d�}tjtdd�� | ¡  W d   ƒ n1 sJ0    Y  |jdd�}t| ||d	�}t ||¡ d d
g}t j| |d�}tjtdd�� | ¡  W d   ƒ n1 s¼0    Y  |jdd�}t| |d
d
gd	�}t ||¡ d S )N)r"   r#   )r,   é   r<   r(   z%Cannot create duplicate column labelsr   T)Zallow_duplicates)r%   r1   r   )	r   r.   r2   r3   r5   r/   r   r   r0   )Údatar)   r%   r	   r   r   r   r   Útest_to_frame_duplicate_labels¦   s    &&rT   c                 C   s&   t jddd�}|  ¡ }t ||¡ d S )Nr   F)Ztupleize_cols)r7   ÚIndexZto_flat_indexr   Zassert_index_equal)r   r   r	   r   r   r   Útest_to_flat_index¼   s    ÷rV   )Únumpyr   r2   Zpandas.compat.numpyr   Zpandasr7   r   r   Zpandas._testingZ_testingr   r   r!   r:   rL   rQ   rT   rV   r   r   r   r   Ú<module>   s   #I
