U
    Æ½„bð	  ã                   @   sL   d dl Z d dl ma d dlmZ d dlmZmZ d dlZG dd„ deƒZ	dS )é    N)ÚDecimal)ÚTestCase)ÚStringIOÚreload_modulec                   @   sP   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestDecimal)z1.0z10.00ú1.1z1234567890.1234567890Ú500c                 K   s8   t ƒ }tj||f|Ž tj|f|Ž}|  || ¡ ¡ |S ©N)r   ÚjsonÚdumpÚdumpsÚassertEqualÚgetvalue)ÚselfÚobjÚkwÚsioÚres© r   úA/tmp/pip-unpacked-wheel-9yxrzpkm/simplejson/tests/test_decimal.pyr   
   s
    zTestDecimal.dumpsc                 K   s0   t |ƒ}tj|f|Ž}|  |tj|f|Ž¡ |S r	   )r   r
   Úloadsr   Úload)r   Úsr   r   r   r   r   r   r      s    zTestDecimal.loadsc                 C   s0   t t| jƒD ]}|  | j|dd�t|ƒ¡ qd S )NT©Zuse_decimal)Úmapr   ÚNUMSr   r   Ústr)r   Údr   r   r   Útest_decimal_encode   s    zTestDecimal.test_decimal_encodec                 C   s*   | j D ]}|  | j|td�t|ƒ¡ qd S )N©Úparse_float)r   r   r   r   )r   r   r   r   r   Útest_decimal_decode   s    
zTestDecimal.test_decimal_decodec                 C   sF   t t| jƒD ]4}||i}|  | j| j|dd�td�t|ƒ|i¡ qd S )NTr   r   )r   r   r   r   r   r   r   ©r   r   Úvr   r   r   Útest_stringify_key   s     ÿ
ýzTestDecimal.test_stringify_keyc              	   C   sL   t t| jƒD ]:}||gd|ifD ]$}|  | j| j|dd�td�|¡ q qd S )NÚ Tr   r   )r   r   r   r   r   r   r"   r   r   r   Útest_decimal_roundtrip'   s     ÿýz"TestDecimal.test_decimal_roundtripc                 C   s¨   t dƒ}| jttj|dd� |  dt |¡¡ |  dtj|dd�¡ | jttj|tƒ dd� tƒ }t ||¡ |  d| ¡ ¡ tƒ }tj||dd� |  d| ¡ ¡ d S )Nr   Fr   T)	r   ÚassertRaisesÚ	TypeErrorr
   r   r   r   r   r   )r   r   r   r   r   r   Útest_decimal_defaults1   s    ÿz!TestDecimal.test_decimal_defaultsc                 C   s&   t tƒjadd l}t|j_|  ¡  d S )Nr   )r   Údecimalr   Zsimplejson.encoderÚencoderr&   )r   Ú
simplejsonr   r   r   Útest_decimal_reload@   s    
zTestDecimal.test_decimal_reloadN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r!   r$   r&   r)   r-   r   r   r   r   r      s   
r   )
r*   r   Zunittestr   Zsimplejson.compatr   r   r,   r
   r   r   r   r   r   Ú<module>   s
   