<!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
    VXÿY‡  ã               @   sL   d dl mZ d dlmZmZmZmZmZ d dlZ	dd„ Z
G dd„ deƒZdS )é    )ÚTestCase)ÚStringIOÚ	long_typeÚbÚbinary_typeÚPY3Nc             C   s   t rt| tƒr|  d¡S | S )NÚascii)r   Ú
isinstancer   Údecode)Ús© r   úM/opt/alt/python37/lib64/python3.7/site-packages/simplejson/tests/test_dump.pyÚas_text_type   s    
r   c               @   sT   e 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d„ ZdS )ÚTestDumpc             C   s&   t ƒ }t i |¡ |  | ¡ d¡ d S )Nz{})r   ÚjsonÚdumpÚassertEqualÚgetvalue)ÚselfÚsior   r   r   Ú	test_dump   s    zTestDump.test_dumpc          	   C   sn   xhdD ]`}|   t t |¡¡|k¡ |   t t |g¡¡d |k¡ |   t t d|i¡¡d |k¡ qW d S )N)NTFr   Úa)Z
assertTruer   ÚloadsÚdumps)r   Úcr   r   r   Útest_constants   s    
 zTestDump.test_constantsc             C   sN  t dƒdfdddddtdƒdfg}xT|D ]L\}}|  t t ||i¡¡||i¡ |  t tj||id	d
¡||i¡ q(W |  ttjtdi¡ x¼i ddit dƒdddigD ]ž}x˜dD ]}t|ƒ}d|t< tdd„ | 	¡ D ƒƒ}|  t tj|d	|d¡|¡ |  t tjd|id	|d¡d|i¡ |  t tj|gd	|d¡|g¡ q²W q¨W d S )NÚbytes)g      ð?z1.0)é
   Ú10)TÚtrue)FÚfalse)NÚnulléd   Z100T)Ú	sort_keysé   ÚotherZderpZherpé   )FTc             s   s   | ]\}}t |ƒ|fV  qd S )N)r   )Ú.0ÚkeyÚvalr   r   r   ú	<genexpr>*   s    z.TestDump.test_stringify_key.<locals>.<genexpr>)Úskipkeysr#   Ú )
r   r   r   r   r   r   ZassertRaisesÚ	TypeErrorÚdictÚitems)r   r/   ÚkZexpectÚvr#   Zv0Zv1r   r   r   Útest_stringify_key   s:    

 

zTestDump.test_stringify_keyc             C   s   |   t i ¡d¡ d S )Nz{})r   r   r   )r   r   r   r   Ú
test_dumps5   s    zTestDump.test_dumpsc             C   sR   |   tjdddœddd¡ |   tjdddtd	ƒdd
tdƒdddiddd¡ d S )NFT)TF)r#   z{"false": true, "true": false}r&   g      @g      @é   r$   é   Ú7r   z3{"2": 3.0, "4.0": 5, "6": true, "7": 0, "false": 1})r   r   r   r   )r   r   r   r   Útest_encode_truefalse8   s    zTestDump.test_encode_truefalsec             C   s.   dddddg}t  t  |¡¡}|  |d¡ d S )N)Úoner$   )Ztwor&   )Zthreeé   )Zfouré   )Zfiver4   z6{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5})r   r   ÚOrderedDictr   )r   r/   r   r   r   r   Útest_ordered_dictF   s
    zTestDump.test_ordered_dictc             C   s8   G dd„ dt ƒ}tjdddg|dƒd}|  |d¡ d	S )
a  
        A test against the regression mentioned at `github issue 29`_.

        The indent parameter should accept any type which pretends to be
        an instance of int or long when it comes to being multiplied by
        strings, even if it is not actually an int or long, for
        backwards compatibility.

        .. _github issue 29:
           http://github.com/simplejson/simplejson/issue/29
        c               @   s    e Zd ZdZdd„ Zdd„ ZdS )z@TestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeIntz'An awesome reimplementation of integersc             _   s(   t |ƒdkr$t|d tƒr$|d | _d S )Nr   )Úlenr	   ÚintÚ_int)r   ÚargsÚkwargsr   r   r   Ú__init__^   s    zITestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeInt.__init__c             S   s    t | dƒr| j| S tdƒ‚d S )Nr?   zOTo do non-awesome things with this object, please construct it from an integer!)Úhasattrr?   ÚNotImplementedError)r   r%   r   r   r   Ú__mul__i   s    

zHTestDump.test_indent_unknown_type_acceptance.<locals>.AwesomeInt.__mul__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rB   rE   r   r   r   r   Ú
AwesomeInt[   s   rJ   r   r$   r&   r9   )Úindentz[
   0,
   1,
   2
]N)Úobjectr   r   r   )r   rJ   r   r   r   r   Ú#test_indent_unknown_type_acceptanceN   s    z,TestDump.test_indent_unknown_type_acceptancec             C   s&   dgd }|   t t |¡¡|¡ d S )Nr   i † )r   r   r   r   )r   Úlstr   r   r   Útest_accumulatorv   s    
zTestDump.test_accumulatorc             C   st   xnt ddƒD ]`}tdd„ t |ƒD ƒƒ}tƒ }tj||dd |  | ¡ tj|dd¡ |  t | ¡ ¡|¡ qW d S )Nr&   é    c             s   s   | ]}t |ƒ|fV  qd S )N)Ústr)r'   Úxr   r   r   r*   ~   s    z*TestDump.test_sort_keys.<locals>.<genexpr>T)r#   )	Úranger.   r   r   r   r   r   r   r   )r   Znum_keysÚpr   r   r   r   Útest_sort_keys{   s    zTestDump.test_sort_keysN)rF   rG   rH   r   r   r2   r3   r7   r<   rM   rO   rU   r   r   r   r   r   
   s   (r   )Zunittestr   Zsimplejson.compatr   r   r   r   r   Ú
simplejsonr   r   r   r   r   r   r   Ú<module>   s   