
    8tf=                         d dl mZ d dlZd dlmZ d dlZd dlZd dlm	Z	m
Z
mZ d dlmZ  G d de      Z G d d	e      Zy)
    )absolute_importN)TestCase)StringIObbinary_type)OrderedDictc                        e Zd ZddZd Zd Zy)MisbehavingBytesSubtypeNc                      y)Nz
bad decode )selfencodings     f/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/simplejson/tests/test_decode.pydecodezMisbehavingBytesSubtype.decode   s        c                      y)Nzbad __str__r   r   s    r   __str__zMisbehavingBytesSubtype.__str__   s    r   c                     t        d      S )Nzbad __bytes__)r   r   s    r   	__bytes__z!MisbehavingBytesSubtype.__bytes__   s    !!r   N)__name__
__module____qualname__r   r   r   r   r   r   r
   r
   
   s    "r   r
   c                   r    e Zd Z eed      sd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zy)
TestDecodeassertIsc                 6    | j                  ||u |d|       y )Nz is )
assertTrue)r   ar   s      r   r   zTestDecode.assertIs   s    OOAF!Q$78r   c                     t        j                  dt        j                        }| j	                  t        |t        j                               | j                  |t        j                  d             y )Nz1.1)parse_float)jsonloadsdecimalDecimalr   
isinstanceassertEqualr   rvals     r   test_decimalzTestDecode.test_decimal   sF    zz%W__=
49:wu56r   c                     t        j                  dt              }| j                  t	        |t                     | j                  |d       y )N1)	parse_intg      ?)r#   r$   floatr   r'   r(   r)   s     r   
test_floatzTestDecode.test_float   s5    zz#/
4/0s#r   c                 X    t        j                  d      }| j                  |ddd       y )Nz,{   "key"    :    "value"    ,  "k":"v"    }valuev)keyk)r#   r$   r(   r)   s     r   test_decoder_optimizationsz%TestDecode.test_decoder_optimizations!   s(     zzHIg378r   c                 $   d}| j                  t        j                  |      t        |             d}| j                  t        j                  |      t        |             d}| j                  t        j                  |      t        |             y )Nz{}z[]"")r(   r#   r$   evalr   ss     r   test_empty_objectszTestDecode.test_empty_objects(   se    AQ0AQ0AQ0r   c                 4   d}g d}| j                  t        j                  |      t        |             | j                  t        j                  |d       |       | j                  t        j                  t        |      d       |       t        j                  |t              }| j                  |t        |             | j                  t        |      t               | j                  t        j                  |t        d       t        |             y )Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}))xkd   )kcw   )art   )hxm   )qrt   )pad   )hoy   c                     | S r   r   xs    r   <lambda>z3TestDecode.test_object_pairs_hook.<locals>.<lambda>5   s    1 r   object_pairs_hookc                     | S r   r   rM   s    r   rO   z3TestDecode.test_object_pairs_hook.<locals>.<lambda>7   s    q r   c                      y r   r   rM   s    r   rO   z3TestDecode.test_object_pairs_hook.<locals>.<lambda>>       r   )rQ   object_hook)r(   r#   r$   r9   loadr   r   type)r   r;   pods       r   test_object_pairs_hookz!TestDecode.test_object_pairs_hook0   s    M1AQ0AEqI8A;5@BCD	FZZ[9[^,b;/A6A0>@ %Q	)r   c                      ||      }t        |d         t        |d         c\  }}\  }}| j                  ||       | j                  ||       y )Nr   r?   )sortedr   )r   sourcer$   r*   r    r   cds           r   check_keys_reusezTestDecode.check_keys_reuseA   sJ    V}Q&a/AAaar   c                 f    dj                  d      }| j                  |t        j                         y )N2   [{"a_key": 1, "b_é": 2}, {"a_key": 3, "b_é": 4}]utf8)encoder`   r#   r$   r:   s     r   test_keys_reuse_strzTestDecode.test_keys_reuse_strG   s&    ELLVTa,r   c                 H    d}| j                  |t        j                         y )Nrb   )r`   r#   r$   r:   s     r   test_keys_reuse_unicodez"TestDecode.test_keys_reuse_unicodeK   s    Ea,r   c                 0   | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      dg       | j                  t        j                  d      dg       y )Nr8    z[""])r(   r#   r$   r   s    r   test_empty_stringszTestDecode.test_empty_stringsO   sj    D)2.E*C0F+bT2G,se4r   c                 @   t         j                  j                  }| j                  di idf |       j	                  d             | j                  di idf |t
              j	                  d             | j                  di idf |       j	                  d             y )Nr    	   z	{"a": {}}rP      z 
{"a": {}})r#   decoderJSONDecoderr(   
raw_decodedict)r   clss     r   test_raw_decodezTestDecode.test_raw_decodeU   s    ll&&2YNE]+	- 	2YN$'22=A	C 	2YOE-.	0r   c                 N   t         j                  j                  }t        d      }| j	                   |       j                  |      d       | j	                   |d      j                  |      d       | j	                   |d       j                  |      d       t        t        d            }| j	                   |       j                  |      d       | j	                   |d      j                  |      d       | j	                   |d       j                  |      d       y )Nu   "â¬"u   €latin1)r   u   â¬)r#   rn   ro   r   r(   r   r
   )r   rr   datas      r   test_bytes_decodezTestDecode.test_bytes_decodec   s    ll&&!"d+Y7h/66t<oNd+2248)D&q)9':;d+Y7h/66t<oNd+2248)Dr   c                    t         j                  j                         }dD ]F  }| j                  t        |j
                  d|       | j                  t        |j                  d|       H t        ddgt              \  }}t        |      t        |      z
  }| j                  t        |j
                  ||       | j                  t        |j                  |       y )N)	rE   rG   rI   i1234	128931233	472389423)r4   )	r#   rn   ro   assertRaises
ValueError	scan_oncerp   r\   id)r   jirN   ydiffs         r   test_bounds_checkingzTestDecode.test_bounds_checkingo   s    LL$$&2 	CAj!++vqAj!,,B	C {K0b91!ur!u}*akk1d;*allAq9r   c                      t        t        dd              }dd|dz
  z  z   }| j                  t        j                  |      t        |             | j                  t        t        j                  |dz          y )Nget_int_max_str_digitsc                       y)Ni  r   r   r   r   rO   z-TestDecode.test_bounded_int.<locals>.<lambda>|   rT   r   r-   0r?   )getattrsysr(   r#   r$   intr   r   )r   max_str_digitsr;   s      r   test_bounded_intzTestDecode.test_bounded_intz   s`    M&>MO#!+,,AA/*djj!c':r   N)r   r   r   hasattrr   r   r+   r0   r6   r<   rZ   r`   re   rg   rj   rs   rw   r   r   r   r   r   r   r      sS    8Z(	97
$
91)"--50
E	:;r   r   )
__future__r   r%   unittestr   r   
simplejsonr#   simplejson.compatr   r   r   r   r
   r   r   r   r   <module>r      s7    &   
  6 6 ""k "m; m;r   