o
    �O5[0  ã                   @   sš   d dl mZ d dlZd dlZd dlmZ d dlZd dlmZmZmZ d dl	m
Z
mZmZ dd„ Zdd	„ ZG d
d„ dƒZG dd„ deƒZG dd„ deƒZdS )é    )Úwith_statementN)ÚTestCase)ÚencoderÚdecoderÚscanner)ÚPY3Ú	long_typeÚbc                   C   s
   t jd uS ©N)r   Úc_make_encoder© r   r   úP/var/www/html/env/lib/python3.10/site-packages/simplejson/tests/test_speedups.pyÚhas_speedups   s   
r   c                    s   ‡ fdd„}|S )Nc                     s8   t ƒ sttdƒrt d¡‚tj d¡ d S ˆ | i |¤ŽS )NÚSkipTestzC Extension not available)r   ÚhasattrÚunittestr   ÚsysÚstdoutÚwrite)ÚargsÚkwargs©Úfuncr   r   Úwrapper   s   

z)skip_if_speedups_missing.<locals>.wrapperr   )r   r   r   r   r   Úskip_if_speedups_missing   s   	r   c                   @   s   e Zd Zdd„ ZeZdS )ÚBadBoolc                 C   ó   dd  d S ©Né   r   r   ©Úselfr   r   r   Ú__bool__   ó   zBadBool.__bool__N)Ú__name__Ú
__module__Ú__qualname__r!   Ú__nonzero__r   r   r   r   r      s    r   c                   @   s$   e Zd Zedd„ ƒZedd„ ƒZdS )Ú
TestDecodec                 C   s   |   ttjd¡ d S )Nr   )ÚassertRaisesÚAttributeErrorr   Úc_make_scannerr   r   r   r   Útest_make_scanner$   s   zTestDecode.test_make_scannerc                 C   sL   dd„ }|   t|d¡ |   t|d¡ ts$|   t|d¡ |   t|d¡ d S d S )Nc                 S   s   t jtƒ d� | ¡ d S )N)Ústrict)r   ÚJSONDecoderr   Údecode)Úvaluer   r   r   Útest*   s   z+TestDecode.test_bad_bool_args.<locals>.testz""z{})r(   ÚZeroDivisionErrorr   ©r    r0   r   r   r   Útest_bad_bool_args(   s   þzTestDecode.test_bad_bool_argsN)r#   r$   r%   r   r+   r3   r   r   r   r   r'   #   s
    
r'   c                   @   sP   e Zd Zedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZer&ed	d
„ ƒZ	dS dS )Ú
TestEncodec                 C   s   |   ttjd dd ¡ d S )Nu   Ã�}=NLÃ¹yÃ—RÂºÂ‚Ã²'J}Â ÃŠu)r(   Ú	TypeErrorr   r   r   r   r   r   Útest_make_encoder3   s   úzTestEncode.test_make_encoderc                 C   s¼   dd l }dd„ }t d dd„ |d dddddi dddd d d	dd|jd¡}|  t|d
d¡ |  t|d
did¡ dd„ }t d dd„ |d dddddi dddd d d	dd|jd¡}|  t|d
d¡ d S )Nr   c                  W   s   d S r
   r   ©r   r   r   r   Úbad_encoder1C   s   z5TestEncode.test_bad_str_encoder.<locals>.bad_encoder1c                 S   ó   t | ƒS r
   ©Ústr©Úobjr   r   r   Ú<lambda>F   ó    z1TestEncode.test_bad_str_encoder.<locals>.<lambda>z: z, Fzutf-8Úspamé   é*   c                  W   r   r   r   r7   r   r   r   Úbad_encoder2M   r"   z5TestEncode.test_bad_str_encoder.<locals>.bad_encoder2c                 S   r9   r
   r:   r<   r   r   r   r>   P   r?   )Údecimalr   r   ÚDecimalr(   r5   r1   )r    rD   r8   ÚencrC   r   r   r   Útest_bad_str_encoder>   s$   üüzTestEncode.test_bad_str_encoderc                 C   s´   dd„ }|   t|d¡ |   t|d¡ |   t|d¡ |   t|d¡ |   t|d¡ |   t|d¡ |   t|d	¡ |   t|d
¡ |   t|d¡ |   t|d¡ |   t|d¡ |   t|d¡ d S )Nc                 S   s    t jdi | tƒ i¤Ž i ¡ d S )Nr   )r   ÚJSONEncoderr   Úencode)Únamer   r   r   r0   X   s    z+TestEncode.test_bad_bool_args.<locals>.testÚskipkeysÚensure_asciiÚcheck_circularÚ	allow_nanÚ	sort_keysÚuse_decimalÚnamedtuple_as_objectÚtuple_as_arrayÚbigint_as_stringÚfor_jsonÚ
ignore_nanÚiterable_as_array)r(   r1   r2   r   r   r   r3   V   s   zTestEncode.test_bad_bool_argsc                    s0   t dƒd d ‰ ‡ fdd„}|  ttf|¡ d S )Né   é    é   c                      s   t jˆ d� d¡ d S )N)Úint_as_string_bitcountr   )r   rH   rI   r   ©Ú
long_countr   r   r0   j   s   z=TestEncode.test_int_as_string_bitcount_overflow.<locals>.test)r   r(   r5   ÚOverflowErrorr2   r   r[   r   Ú$test_int_as_string_bitcount_overflowg   s   z/TestEncode.test_int_as_string_bitcount_overflowc                 C   sJ   |   t¡� tjdd� tdƒdi¡ W d   ƒ d S 1 sw   Y  d S )Nu   í³¿)ÚencodingÚkeyé{   )r(   ÚUnicodeEncodeErrorr   rH   rI   r	   r   r   r   r   Útest_bad_encodingo   s   "ÿzTestEncode.test_bad_encodingN)
r#   r$   r%   r   r6   rG   r3   r^   r   rc   r   r   r   r   r4   2   s    




þr4   )Ú
__future__r   r   r   r   Ú
simplejsonr   r   r   Úsimplejson.compatr   r   r	   r   r   r   r'   r4   r   r   r   r   Ú<module>   s    