o
    5c                     @   s^   d dl mZ d dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d dlmZ G dd dZdS )    )OrderedDictN)	DataFrameIndex
MultiIndexSeries)!create_series_with_explicit_dtypec                	   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	j
di g dfddiddigdgdfeddggddgdfddigdgdfgdd Zdd Zdd Zdd ZdS ) TestFromDictc              
   C   s   t ddgddgddgddggt ddgddgddggt ddgddggt  t ddgddgddggt ddgddgddggg}t|}tjtttt||d	d
}t||	|j
 d S )Na      ?b   c   d   indexorient)r   r   	from_dictdictziprangelentmassert_frame_equalreindexr   selfdataresultexpected r!   d/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/frame/constructors/test_from_dict.pytest_constructor_list_of_odicts   s   	z,TestFromDict.test_constructor_list_of_odictsc                 C   s\   t ddgddgddgddggg}t|}tjttd	g|d
d|j}t|| d S )Nr	   r
   r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   r   r!   r!   r"   test_constructor_single_row$   s   "z(TestFromDict.test_constructor_single_rowc              
   C   s  t ddgddgddggt ddgddgddggg}t tdd	g|}tg d
}tg d|dddtg d|d	dg}t|}tj|dd}t|| tg d|dddtg d|g}t|}t tddg|}tj|dd}t|| t ddgddgddgddggt ddgddgddggt ddgddggt  t ddgddgddggt ddgddgddggg}dd |D }t|}t ttt	||}tj|dd}t||
|j t|tdd}t|| tttdg}tdgd}t|| t ddgddgddggt ddgddgddggg}t ttt	||}tg d
}tg d|ddtg d|g}t|}tj|dd}t|| d S )Nr	   r
   r   g      @r   g      @g      @xy)r	   r   r   )r
   r   r   O)dtypename)r
   r   r   )r)   r   r   z	Unnamed 0r   r   r   r   c                 S   s   g | ]}t |td qS ))dtype_if_empty)r   object).0r   r!   r!   r"   
<listcomp>R   s    z@TestFromDict.test_constructor_list_of_series.<locals>.<listcomp>r   r(   r   )r   r   r   r   r   r   r   r   r   r   r   r   nparanger+   )r   r   sdictidxdata2r   r    result2r!   r!   r"   test_constructor_list_of_series-   s\    z,TestFromDict.test_constructor_list_of_seriesc                 C   sz   |j j}tj|dd}|j|jd}t|| g dg dd}tj|dd}t|j t|	 }t|| d S )Nr   r   r.   )    r   r   )r      r   )hithere)
T_seriesr   r   r   r   r   r   listkeys)r   float_string_frame	data_dictreconsr    r	   rsxpr!   r!   r"   test_constructor_orientn   s   z$TestFromDict.test_constructor_orientc                 C   s`   t dt ddgfdt ddgfdt dd	gfg}tj|d
dj}tj|dd}t|| d S )None)col_afoo1)col_bbar1two)rF   foo2)rH   bar2three)rF   foo3)rH   bar3columnsr   r   )r   r   r   r;   r   r   )r   r	   r    r   r!   r!   r"   "test_constructor_from_ordered_dictz   s   z/TestFromDict.test_constructor_from_ordered_dictc                 C   s  t jtdddgfdddgfgddd	gd
}t ddgddggddgdd	gd}t|| d}tjt|d t jddgddgdddd	gd
 W d    n1 sRw   Y  tjt|d t jddgddgddd	gd W d    d S 1 szw   Y  d S )NA      Br   r8   r   rE   rJ   )r   rP   )r   rP   z2cannot use columns parameter with orient='columns'match)rR   rU   rP   )rP   )r   r   r   r   r   pytestraises
ValueError)r   r   r    msgr!   r!   r"    test_from_dict_columns_parameter   s$   """z-TestFromDict.test_from_dict_columns_parameterzdata_dict, keys, orientr   r	   rS   rT   rP   )r]   rS   )r   rT   r^   )r	   r   c                 C   s0   t ||}|j}t|ddd}t|| d S )Nr+   F)r(   tupleize_cols)r   r   rP   r   r   assert_index_equal)r   r@   r>   r   dfr   r    r!   r!   r"   !test_constructor_from_dict_tuples   s   z.TestFromDict.test_constructor_from_dict_tuplesc                 C   sd   t g dtg dd}t g dtg dd}t td}t|||d t|||d d S )N)rS   rT   r   r   )rS   rT   rS   r   )rT   rT   )rT   r   r.   )rc   rd   )r   rT   )r   r   r/   )foobarbazre   rg   rf   )r   r   from_tuplesr+   r   r   )r   s1s2s3r!   r!   r"   (test_frame_dict_constructor_empty_series   s   
z5TestFromDict.test_frame_dict_constructor_empty_seriesc                 C   sJ   d}t jt|d ttg d W d    d S 1 sw   Y  d S )Nz2If using all scalar values, you must pass an indexrV   ))r      )r	   r8   )r	   r   )rX   rY   rZ   r   r   r   r   r[   r!   r!   r"   %test_from_dict_scalars_requires_index   s   "z2TestFromDict.test_from_dict_scalars_requires_indexc                 C   sN   d}t jt|d tjdddddd W d    d S 1 s w   Y  d S )	NzNExpected 'index', 'columns' or 'tight' for orient parameter. Got 'abc' insteadrV   rS   r   rT   rh   abcr   )rX   rY   rZ   r   r   ro   r!   r!   r"   test_from_dict_orient_invalid   s
   "z*TestFromDict.test_from_dict_orient_invalidN)__name__
__module____qualname__r#   r$   r6   rD   rQ   r\   rX   markparametrizer   rb   rm   rp   rr   r!   r!   r!   r"   r      s&    	A
		r   )collectionsr   numpyr0   rX   pandasr   r   r   r   pandas._testing_testingr   pandas.core.constructionr   r   r!   r!   r!   r"   <module>   s    