<!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  ã               @   sH   d dl Z d dlmZ d dlZd dlZd dlmZmZ G dd„ deƒZ	dS )é    N)ÚTestCase)ÚbÚPY3c               @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestScanStringc             C   s   |   tjj¡ d S )N)Ú_test_scanstringÚ
simplejsonÚdecoderÚpy_scanstring)Úself© r   úS/opt/alt/python37/lib64/python3.7/site-packages/simplejson/tests/test_scanstring.pyÚtest_py_scanstring   s    z!TestScanString.test_py_scanstringc             C   s   t jjsd S |  t jj¡ d S )N)r   r   Úc_scanstringr   )r
   r   r   r   Útest_c_scanstring   s    z TestScanString.test_c_scanstringc          	   C   s  t jdkr"|  |ddd dƒd¡ n|  |ddd dƒd¡ |  |ddd dƒd¡ |  |d	dd dƒd
¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |ddd dƒd¡ |  |d dd dƒd!¡ |  |d"d#d dƒd$¡ |  |d%dd dƒd&¡ |  |d'dd dƒd(¡ |  |d)dd dƒd*¡ |  |d+dd dƒd,¡ |  |d-dd dƒd.¡ xPtttd/d0ƒƒD ]<}|  ||d1 d/d d2ƒ|df¡ |  t||d1 d/d d¡ qìW |  t|d3d/d d¡ |  t|d4d/d d¡ |  t|d5d/d d¡ |  t|d6d/d d¡ |  t|d7d/d d¡ |  t|d8d/d d¡ |  t|d9d/d d¡ |  t|d:d/d d¡ t jdkr |  t|d;d/d d¡ |  t|d<d/d d¡ d S )=Niÿÿ  u   "zð„ x"é   T)u   zð„ xé   )u   zð„ xé   z"\u007b")Ú{é   z<"A JSON payload should be an object or array, not a string.")z:A JSON payload should be an object or array, not a string.é<   z["Unclosed array"é   )zUnclosed arrayé   z["extra comma",])zextra commaé   z["double extra comma",,])zdouble extra commaé   z["Comma after the close"],)zComma after the closeé   z["Extra close"]])zExtra closer   z{"Extra comma": true,})zExtra commar   z:{"Extra value after close": true} "misplaced quoted value")zExtra value after closeé   z{"Illegal expression": 1 + 2})zIllegal expressionr   z{"Illegal invocation": alert()})zIllegal invocationr   z+{"Numbers cannot have leading zeroes": 013})z"Numbers cannot have leading zeroesé%   z{"Numbers cannot be hex": 0x14})zNumbers cannot be hexr   z2[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]r   )zToo deepé   z{"Missing colon" null})zMissing coloné   z{"Double colon":: null})zDouble coloné   z {"Comma instead of colon", null})zComma instead of coloné   z!["Colon instead of comma": false])zColon instead of commar    z["Bad value", truth])z	Bad valueé   r   é   ú"FÚ Úaú\z\uz\u0z\u01z\u012z\u0123z	\ud834\u"z\ud834\x0123")ÚsysÚ
maxunicodeÚassertEqualÚmapÚchrÚrangeÚassertRaisesÚ
ValueError)r
   Ú
scanstringÚcr   r   r   r      s¨    

zTestScanString._test_scanstringc             C   s0   |   ttjjddd¡ |   ttjjtdƒ¡ d S )NÚxxxr   u   xxÃ¿)	r-   r.   Újsonr   r/   ÚUnicodeDecodeErrorÚencoderÚencode_basestring_asciir   )r
   r   r   r   Útest_issue3623…   s    zTestScanString.test_issue3623c             C   s<   t tdt tdd ƒƒ}|d k	s t‚|  ttjjd|d ¡ d S )NÚmaxsizeZmaxintr1   r   )Úgetattrr'   ÚAssertionErrorr-   ÚOverflowErrorr2   r   r/   )r
   r7   r   r   r   Útest_overflow‹   s    zTestScanString.test_overflowc                sÊ   t jj‰ d‡ ‡fdd„	}|ddƒ |ddƒ |dd	ƒ |d
dƒ |ddƒ |ddƒ |dd ddg¡ƒ |dd ddg¡ƒ |d ddg¡d ddg¡dd ˆ tˆ ddd d¡ ˆ tˆ ddd d¡ d S )NTc                s^   | g}t s|r| |  d¡¡ x:|D ]2} ˆ | dd dƒ\}}ˆ t| ƒ|¡ ˆ ||¡ q$W d S )NÚutf8r   T)r   ÚappendÚencoder)   Úlen)ÚgivenZexpectÚ	test_utf8ZgivensÚresÚcount)r/   r
   r   r   Ú
assertScan•   s    
z2TestScanString.test_surrogates.<locals>.assertScanz"z\ud834\u0079x"u   zí ´yxz"z\ud834\udd20x"u   zð„ xz"z\ud834\ud834\udd20x"u	   zí ´ð„ xz
"z\ud834x"u   zí ´xz
"z\udd20x"u   zí´ xu   "zí ´x"u   "z\ud834í´ x12345"r$   u   zí ´u	   í´ x12345u   "zí ´\udd20x"u   í´ xu   "zí ´u   í´ x"F)rA   z	"z\ud83x"r   z"z\ud834\udd2x")T)r2   r   r/   Újoinr-   r.   )r
   rD   r   )r/   r
   r   Útest_surrogates’   sD    	zTestScanString.test_surrogatesN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r6   r;   rF   r   r   r   r   r      s   	lr   )
r'   Zunittestr   r   r2   Zsimplejson.decoderZsimplejson.compatr   r   r   r   r   r   r   Ú<module>   s
   