o
    Û­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)Úto_numpyÚvaluesÚtmÚassert_numpy_array_equal)ÚidxÚresultÚexp© r   úg/var/www/html/CropPilot/venv/lib/python3.10/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  ||¡s,J ‚t j| dd�}t j| dd�}t  ||¡rBJ ‚tsFd S d}tj	t
|d�� t j| dd� W d   ƒ d S 1 sbw   Y  d S )	N)é   ©Údtype©)ÚfooÚone)r   Útwo)Úbarr   )Úbazr   )Úquxr   )r   r   T)ÚcopyzGStarting with NumPy 2.0, the behavior of the 'copy' keyword has changed©ÚmatchF)ÚnpÚasarrayÚemptyÚobjectr   r   Úmay_share_memoryÚarrayr   Úassert_produces_warningÚFutureWarning)r	   r
   ÚexpectedÚresult_copy1Ú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 s¢w   Y  d}tj	t|d
�� |jdgd� W d   ƒ n1 sÂw   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)r1   z1'name' must be a list / sequence of column names.r   z<'name' should have same length as number of levels on index.é   Ú20130101é   )ÚperiodsÚint64r   )r   r)   )r-   r.   )r   Úfrom_tuplesÚto_framer   r   Úassert_frame_equalr,   ÚcolumnsÚpytestÚraisesÚ	TypeErrorÚ
ValueErrorÚfrom_productÚrangeÚpdÚ
date_ranger   ÚrepeatÚarangeÚtile)Útuplesr,   r
   r$   r'   r   r   r   Útest_to_frame7   sn   




ÿÿþÿþÿrG   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 )NÚ19910905r   z
US/Eastern)r5   Útz)r)   r)   r)   r*   r*   r*   )ÚarJ   ÚbrK   ÚcrL   T)Úordered)ÚxrN   ÚyÚzrN   rO   )ÚdatesrJ   rK   rL   r/   c                    s   i | ]\}}|ˆ j | j“qS r   )Úlevelsr   )Ú.0Úir1   ©Úmir   r   Ú
<dictcomp>‹   s    z0test_to_frame_dtype_fidelity.<locals>.<dictcomp>Fr+   )r   Úfrom_arraysrA   rB   ÚCategoricalÚ	enumerater0   r   r8   ÚdtypesÚto_dictr   r9   )Úoriginal_dtypesÚexpected_dfÚdfÚ	df_dtypesr   rU   r   Útest_to_frame_dtype_fidelity€   s(   üù	üÿ
ra   c                  C   sF   g d¢} t jg d¢g d¢g d¢g| d�}| ¡ j ¡ }|| ks!J ‚d S )N)rP   r   rJ   )rJ   rK   rL   )rN   rO   rP   )ÚqÚwÚer/   )r   rX   r8   r:   Útolist)r$   rV   r
   r   r   r   Ú$test_to_frame_resulting_column_orderœ   s   ÿrf   c                  C   sô   ddg} ddg}t j| |d�}tjtdd�� | ¡  W d   ƒ n1 s%w   Y  |jdd�}t| ||d	�}t ||¡ d d
g}t j| |d�}tjtdd�� | ¡  W d   ƒ n1 s^w   Y  |jdd�}t| |d
d
gd	�}t ||¡ d S )N)r)   r*   )r4   é   rJ   r/   z%Cannot create duplicate column labelsr   T)Úallow_duplicates)r,   r:   r   )	r   r7   r;   r<   r>   r8   r   r   r9   )Údatar0   r,   r
   r$   r   r   r   Útest_to_frame_duplicate_labels¦   s"   
ÿ
ÿrj   c                 C   s&   t jddd�}|  ¡ }t ||¡ d S )Nr   F)Útupleize_cols)rA   ÚIndexÚto_flat_indexr   Úassert_index_equal)r	   r$   r
   r   r   r   Útest_to_flat_index¼   s   ÷ro   )Únumpyr   r;   Úpandas.compat.numpyr   ÚpandasrA   r   r   Úpandas._testingÚ_testingr   r   r(   rG   ra   rf   rj   ro   r   r   r   r   Ú<module>   s    #I
