U
    O5[	                     @   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   ?/usr/lib/python3/dist-packages/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Z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   Z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
   