î
‚Ü Xµ  ã               @   sr   d  d l  m Z d  d l Z d  d l m Z d  d l Z d  d l m Z d  d l m	 Z	 Gd d „  d e ƒ Z
 d S)é    )Úabsolute_importN)ÚTestCase)ÚStringIO)ÚOrderedDictc               @   s²   e  Z d  Z e e d ƒ s* d d „  Z n  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 d „  Z d d „  Z d d „  Z d S)Ú
TestDecodeÚassertIsc             C   s$   |  j  | | k d | | f ƒ d  S)Nz%r is %r)Ú
assertTrue)ÚselfÚaÚb© r   úY/home/ubuntu/projects/ifolica/lib/python3.4/site-packages/simplejson/tests/test_decode.pyr      s    zTestDecode.assertIsc             C   sN   t  j d d t j ƒ} |  j t | t j ƒ ƒ |  j | t j d ƒ ƒ d  S)Nz1.1Zparse_float)ÚjsonÚloadsÚdecimalZDecimalr   Ú
isinstanceÚassertEqual)r	   Úrvalr   r   r   Útest_decimal   s    zTestDecode.test_decimalc             C   s?   t  j d d t ƒ} |  j t | t ƒ ƒ |  j | d ƒ d  S)NÚ1Z	parse_intg      ð?)r   r   Úfloatr   r   r   )r	   r   r   r   r   Ú
test_float   s    zTestDecode.test_floatc             C   s1   t  j d ƒ } |  j | i d d 6d d 6ƒ d  S)Nz,{   "key"    :    "value"    ,  "k":"v"    }ÚvalueÚkeyÚvÚk)r   r   r   )r	   r   r   r   r   Útest_decoder_optimizations   s    z%TestDecode.test_decoder_optimizationsc             C   ss   d } |  j  t j | ƒ t | ƒ ƒ d } |  j  t j | ƒ t | ƒ ƒ d } |  j  t j | ƒ t | ƒ ƒ d  S)Nz{}z[]z"")r   r   r   Úeval)r	   Úsr   r   r   Útest_empty_objects   s    zTestDecode.test_empty_objectsc             C   s  d } d d d d d d d g } |  j  t j | ƒ t | ƒ ƒ |  j  t j | d d d „  ƒ| ƒ |  j  t j t | ƒ d d d „  ƒ| ƒ t j | d t ƒ} |  j  | t | ƒ ƒ |  j  t | ƒ t ƒ |  j  t j | d t d d d „  ƒt | ƒ ƒ d  S)Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}Úxkdé   Úkcwé   Úarté   Úhxmé   Úqrté   Úpadé   Úhoyé   Úobject_pairs_hookc             S   s   |  S)Nr   )Úxr   r   r   Ú<lambda>,   s    z3TestDecode.test_object_pairs_hook.<locals>.<lambda>c             S   s   |  S)Nr   )r/   r   r   r   r0   .   s    Zobject_hookc             S   s   d  S)Nr   )r/   r   r   r   r0   5   s    )r    r!   )r"   r#   )r$   r%   )r&   r'   )r(   r)   )zpadr+   )r,   r-   )r   r   r   r   Úloadr   r   Útype)r	   r   ÚpZodr   r   r   Útest_object_pairs_hook'   s    %z!TestDecode.test_object_pairs_hookc             C   s]   | | ƒ } t  | d ƒ t  | d ƒ \ } } \ } } |  j | | ƒ |  j | | ƒ d  S)Nr   r!   )Úsortedr   )r	   Úsourcer   r   r
   r   ÚcÚdr   r   r   Úcheck_keys_reuse8   s    -zTestDecode.check_keys_reusec             C   s&   d j  d ƒ } |  j | t j ƒ d  S)Nu2   [{"a_key": 1, "b_Ã©": 2}, {"a_key": 3, "b_Ã©": 4}]Úutf8)Úencoder9   r   r   )r	   r   r   r   r   Útest_keys_reuse_str>   s    zTestDecode.test_keys_reuse_strc             C   s   d } |  j  | t j ƒ d  S)Nu2   [{"a_key": 1, "b_Ã©": 2}, {"a_key": 3, "b_Ã©": 4}])r9   r   r   )r	   r   r   r   r   Útest_keys_reuse_unicodeB   s    z"TestDecode.test_keys_reuse_unicodec             C   sn   |  j  t j d ƒ d ƒ |  j  t j d ƒ d ƒ |  j  t j d ƒ d g ƒ |  j  t j d ƒ d g ƒ d  S)Nz""Ú z[""])r   r   r   )r	   r   r   r   Útest_empty_stringsF   s    zTestDecode.test_empty_stringsc             C   s‘   t  j j } |  j i i  d 6d f | ƒ  j d ƒ ƒ |  j i i  d 6d f | d t ƒ j d ƒ ƒ |  j i i  d 6d f | ƒ  j d ƒ ƒ d  S)Nr
   é	   z	{"a": {}}r.   é   z 
{"a": {}})r   ÚdecoderÚJSONDecoderr   Ú
raw_decodeÚdict)r	   Úclsr   r   r   Útest_raw_decodeL   s    zTestDecode.test_raw_decodec          	   C   s×   t  j j ƒ  } x[ d d d d d d d d d g	 D]8 } |  j t | j d | ƒ |  j t | j d | ƒ q1 Wt d d	 g d
 t ƒ\ } } t | ƒ t | ƒ } |  j t | j | | ƒ |  j t | j | | ƒ d  S)Nr'   r)   r+   r!   r#   r%   Z1234Z	128931233Z	472389423r   éÿÿÿÿéþÿÿÿéýÿÿÿéüÿÿÿéûÿÿÿiúÿÿÿ)	r   rB   rC   ZassertRaisesÚ
ValueErrorZ	scan_oncerD   r5   Úid)r	   ÚjÚir/   ÚyÚdiffr   r   r   Útest_bounds_checkingZ   s    (zTestDecode.test_bounds_checkingN)Ú__name__Ú
__module__Ú__qualname__Úhasattrr   r   r   r   r   r   r4   r9   r<   r=   r?   rG   rS   r   r   r   r   r   	   s   r   )Ú
__future__r   r   Zunittestr   Ú
simplejsonr   Zsimplejson.compatr   r   r   r   r   r   r   Ú<module>   s   