<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    VXY                 @   sT   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	 G dd deZ
dS )    )absolute_importN)TestCase)StringIO)OrderedDictc               @   sv   e Zd Zeeds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d ZdS )
TestDecodeassertIsc             C   s   |  ||kd||f  d S )Nz%r is %r)
assertTrue)selfab r   O/opt/alt/python37/lib64/python3.7/site-packages/simplejson/tests/test_decode.pyr      s    zTestDecode.assertIsc             C   s8   t jdtjd}| t|tj | |td d S )Nz1.1)parse_float)jsonloadsdecimalZDecimalr   
isinstanceassertEqual)r	   rvalr   r   r   test_decimal   s    zTestDecode.test_decimalc             C   s.   t jdtd}| t|t | |d d S )N1)	parse_intg      ?)r   r   floatr   r   r   )r	   r   r   r   r   
test_float   s    zTestDecode.test_floatc             C   s    t d}| |ddd d S )Nz,{   "key"    :    "value"    ,  "k":"v"    }valuev)keyk)r   r   r   )r	   r   r   r   r   test_decoder_optimizations   s    
z%TestDecode.test_decoder_optimizationsc             C   sR   d}|  t|t| d}|  t|t| d}|  t|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}|  t|t| |  tj|d	d
 d| |  tjt|dd
 d| tj|td}|  |t| |  t|t |  tj|tdd
 dt| d S )Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7})Zxkd   )Zkcw   )Zart   )Zhxm   )Zqrt   )pad   )Zhoy   c             S   s   | S )Nr   )xr   r   r   <lambda>,       z3TestDecode.test_object_pairs_hook.<locals>.<lambda>)object_pairs_hookc             S   s   | S )Nr   )r*   r   r   r   r+   .   r,   c             S   s   d S )Nr   )r*   r   r   r   r+   5   r,   )r-   object_hook)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   sF   ||}t |d t |d  \}}\}}| || | || 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 d}| |tj d S )Nu2   [{"a_key": 1, "b_é": 2}, {"a_key": 3, "b_é": 4}]utf8)encoder7   r   r   )r	   r    r   r   r   test_keys_reuse_str>   s    
zTestDecode.test_keys_reuse_strc             C   s   d}|  |tj d S )Nu2   [{"a_key": 1, "b_é": 2}, {"a_key": 3, "b_é": 4}])r7   r   r   )r	   r    r   r   r   test_keys_reuse_unicodeB   s    z"TestDecode.test_keys_reuse_unicodec             C   sP   |  tdd |  tdd |  tddg |  tddg d S )Nz"" z[""])r   r   r   )r	   r   r   r   test_empty_stringsF   s    zTestDecode.test_empty_stringsc             C   sd   t jj}| di idf| d | di idf|tdd | di idf| 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 }x0dD ](}| t|jd| | t|jd| qW tddgtd\}}t|t| }| t|j|| | t|j|| d S )N)	r%   r&   r(   iZ1234Z	128931233Z	472389423)r   )	r   r@   rA   ZassertRaises
ValueError	scan_oncerB   r3   id)r	   jir*   yZdiffr   r   r   test_bounds_checkingZ   s    

zTestDecode.test_bounds_checkingN)__name__
__module____qualname__hasattrr   r   r   r   r   r!   r2   r7   r:   r;   r=   rE   rQ   r   r   r   r   r   	   s   
r   )
__future__r   r   Zunittestr   
simplejsonr   Zsimplejson.compatr   r   r   r   r   r   r   <module>   s   