3
Ud'                 @   sd   d dl mZmZ d dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZ d dljZG dd dZdS )    )OrderedDictdefaultdict)datetimeN)	DataFrameSeries	Timestampc               @   s  e Zd Zdd Zdd Zdd Zejjddd	d
dddgdd Z	ejjde
eeegdd Zejjdeeg gdd Zdd Zejjdddd fddd fddd fdd d fd!d"d fgd#d$ Zd%d& Zejjd'e
d(d)d*d+d,d*d-d.d*d/feed0d(d)d*fd(d+d,d*fd+d-d.d*fgfee
ee
d(d)d*d+d,d*d-d.d*d/fgd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9S ):TestDataFrameToDictc       
      C   s\  t d}t||g||gd}t||gddgd}||d||dg}|dd|ddg}|jdd|kspt|jdd|kstt||gddt||gd	dd}t||gddtddgd	dd}tj|jd
d| tj|jd
d| ddg||g||ggdd	gd}ddg|dg|dggdd	gd}	tj|jdd| tj|jdd|	 d S )NZ20130101)AB      records)orientr	   )namer
   seriesr   )indexdatacolumnssplit)r   r   to_dictAssertionErrorr   tmassert_dict_equal)
selfZtsmp	test_dataZtest_data_mixedexpected_recordsZexpected_records_mixedZexpected_seriesZexpected_series_mixedexpected_splitZexpected_split_mixed r   [/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/frame/methods/test_to_dict.pytest_to_dict_timestamp   s.    z*TestDataFrameToDict.test_to_dict_timestampc          
   C   sL   t ddgddgdddgd}d}tjt|d	 |jd
d W d Q R X d S )Nr   r   g      ?g      ?)abr	   )r   z1DataFrame index must be unique for orient='index')matchr   )r   )r   pytestraises
ValueErrorr   )r   dfmsgr   r   r   /test_to_dict_index_not_unique_with_index_orient;   s    zCTestDataFrameToDict.test_to_dict_index_not_unique_with_index_orientc          
   C   s>   t dddgi}d}tjt|d |jdd W d Q R X d S )Nr	   r   r   z orient 'xinvalid' not understood)r"   Zxinvalid)r   )r   r#   r$   r%   r   )r   r&   r'   r   r   r   test_to_dict_invalid_orientC   s    z/TestDataFrameToDict.test_to_dict_invalid_orientr   dlrspsic          
   C   s:   t dddgi}tjtdd |j|d W d Q R X d S )Nr	   r   r   F)Zcheck_stacklevel)r   )r   r   assert_produces_warningFutureWarningr   )r   r   r&   r   r   r   test_to_dict_short_orient_warnsI   s    z3TestDataFrameToDict.test_to_dict_short_orient_warnsmappingc             C   s  dddddddd}t |j|d	}x>|j D ]2\}}x(|j D ]\}}||| | ksDtqDW q2W t |jd
|}xF|j D ]:\}}x0|j D ]$\}}||| t|d  kstqW qW t |jd|}x>|j D ]2\}}x(|j D ]\}}||| | kstqW qW t |jd|}ddgdddgddgddgtjdggd}tj|| t |jd|}ddddddtjddg}	t	|t
stt|dkstx$t||	D ]\}
}tj|
| qW t |jd}xD|j D ]8\}}x,|j D ] \}}||| | kstqW qW t |}||jd  |d< |jd}|j }||jd  |d< xD|j D ]8\}}x,|j D ] \}}||| | ksztqzW qhW d S )Nr   r   )12r4   r5   3)r4   r5   r6   )r	   r
   )intolistr   r   r	   r
   g      ?g       @)r   r   r   r      r   r   Zduped)r   r   itemsr   intnpnanr   r   
isinstancer8   lenzipr   copy)r   r3   r   Zrecons_datakvZk2v2r   r   r+   r,   r&   Z	comp_datar   r   r   test_to_dictP   sL    $"
z TestDataFrameToDict.test_to_dictc          
   C   sJ   t tjjdd}djddg}tjt|d |j|d W d Q R X d S )Nr9   |z unsupported type: <class 'list'>z1to_dict\(\) only accepts initialized defaultdicts)r"   )r7   )	r   r<   randomZrandnjoinr#   r$   	TypeErrorr   )r   r3   r&   r'   r   r   r   test_to_dict_errors   s    z'TestDataFrameToDict.test_to_dict_errorsc          	   C   s<   t dddggdddgd}tjt |j  W d Q R X d S )Nr   r   r9   r    r!   )r   )r   r   r0   UserWarningr   )r   r&   r   r   r   test_to_dict_not_unique_warning   s    z3TestDataFrameToDict.test_to_dict_not_unique_warningzorient,item_getterdictc             C   s   | | | S )Nr   )r*   colidxr   r   r   <lambda>   s    zTestDataFrameToDict.<lambda>r   c             C   s   | | | S )Nr   )r*   rN   rO   r   r   r   rP      s    r8   c             C   s   | | | S )Nr   )r*   rN   rO   r   r   r   rP      s    r   c             C   s   | d | | d j | S )Nr   r   )r   )r*   rN   rO   r   r   r   rP      s    r   c             C   s   | | | S )Nr   )r*   rN   rO   r   r   r   rP      s    c             C   sR   t ddgddgd}|j|d}t||ddts8tt||d	dtsNtd S )
Nr   r   g?g?)r    r!   )r   r    r   r!   )r   r   r>   r;   r   float)r   r   Zitem_getterr&   resultr   r   r   test_to_dict_box_scalars   s    z,TestDataFrameToDict.test_to_dict_box_scalarsc             C   s   t dddddddtjdft dddd	d
ddtjdfg}tt|dgd}|jdd}dtdtjdidtdtjdig}tj|d |d  tj|d |d  d S )Ni           5   r   iYX )tzinfo         ir  r*   )r   r   )r   z2017-11-18 21:53:00.219225+0000)tzz2017-11-18 22:06:30.061810+0000r   )	r   pytzutcr   r8   r   r   r   r   )r   r   r&   rR   expectedr   r   r   test_to_dict_tz   s    z#TestDataFrameToDict.test_to_dict_tzzinto, expectedr   g      ?)int_col	float_colr   g       @r9   g      @)r   r   r   r   c             C   sd   t dddgdddgd}|jd|d	}d
dg}t j|dd| }t j|dd| }tj|| d S )Nr   r   r9   g      ?g       @g      @)ra   rb   r   )r   r7   ra   rb   )r   )r   r   	from_dictr   Zassert_frame_equal)r   r7   r_   r&   rR   colsr   r   r   test_to_dict_index_dtypes   s    'z-TestDataFrameToDict.test_to_dict_index_dtypesc             C   sF   t dd tdD }t|jdd j }t|j}||ksBtd S )Nc             S   s   i | ]}|gt |qS r   )str).0r/   r   r   r   
<dictcomp>   s    zBTestDataFrameToDict.test_to_dict_numeric_names.<locals>.<dictcomp>   r   r   )r   rangesetr   keysr   r   )r   r&   rR   r_   r   r   r   test_to_dict_numeric_names   s    
z.TestDataFrameToDict.test_to_dict_numeric_namesc             C   sF   t dd tdD }|jdd }dd tdD }||ksBtd S )Nc             S   s   i | ]}|gd |dqS )A_r*   r   )rg   r/   r   r   r   rh      s    z9TestDataFrameToDict.test_to_dict_wide.<locals>.<dictcomp>   r   r   c             S   s   i | ]}|d |dqS )rn   r*   r   )rg   r/   r   r   r   rh      s    )r   rj   r   r   )r   r&   rR   r_   r   r   r   test_to_dict_wide   s    z%TestDataFrameToDict.test_to_dict_widec             C   sz   dddgdddgddd	gd
}t |}tttd
}xB|jdD ]4}t|d t|d t|d d
}||ks>tq>W d S )Nr   r   r9   g      ?g       @g      @XYZ)r    r!   cr   r    r!   rt   )r   r;   rQ   rf   r   typer   )r   Z
input_datar&   r_   Zdf_dictrR   r   r   r   test_to_dict_orient_dtype  s    

z-TestDataFrameToDict.test_to_dict_orient_dtypeN)__name__
__module____qualname__r   r(   r)   r#   markZparametrizer2   rM   r   r8   r   rE   rJ   rL   rS   r`   re   rm   rp   rv   r   r   r   r   r      sF   ." <




r   )collectionsr   r   r   Znumpyr<   r#   r]   Zpandasr   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s   
