
    DUf                     ^    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	m
Z
  G d de          ZdS )    N)TestCase)unichr	text_typebBytesIOc                   z    e 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d Zd Zd Zd Zd Zd ZdS )TestUnicodec                     t          j        d          }d}|                    d          }|                    |          }|                    |          }|                     ||           d S )Nutf-8encoding   αΩ)jsonJSONEncoderencodeassertEqual)selfencoderusjujss         Z/var/www/html/software/conda/lib/python3.11/site-packages/simplejson/tests/test_unicode.pytest_encoding1zTestUnicode.test_encoding1	   si    "G444IHHW^^A^^AR         c                     d}|                     d          }t          j        |d          }t          j        |d          }|                     ||           d S )Nr   r   r   )r   r   dumpsr   )r   r   r   r   r   s        r   test_encoding2zTestUnicode.test_encoding2   s\    IHHWZG,,,ZG,,,R     r   c                 ^    d}t          j        |          }|                     |d           d S )Nr   z"\u03b1\u03a9"r   r   r   r   r   js      r   test_encoding3zTestUnicode.test_encoding3   s1    IJqMM./////r   c                 `    d}t          j        |g          }|                     |d           d S )Nr   z["\u03b1\u03a9"]r    r!   s      r   test_encoding4zTestUnicode.test_encoding4   s3    IJsOO011111r   c                 n    d}t          j        |d          }|                     |d|z   dz              d S )Nr   Fensure_ascii"r    r!   s      r   test_encoding5zTestUnicode.test_encoding5"   s?    IJqu---D1HtO,,,,,r   c                 p    d}t          j        |gd          }|                     |d|z   dz              d S )Nr   Fr'   z["z"]r    r!   s      r   test_encoding6zTestUnicode.test_encoding6'   sB    IJs///EAI-.....r   c                     d}|                      t          j        |          d           |                      t          j        |d          d           d S )Nu   𝄠z"\ud834\udd20"Fr'   u   "𝄠")r   r   r   r   r   s     r   test_big_unicode_encodez#TestUnicode.test_big_unicode_encode,   sQ    A(:;;;AE:::OLLLLLr   c                     d}|                      t          j        d|z   dz             |           |                      t          j        d          |           d S )Nu   z𝄠xr)   z"z\ud834\udd20x")r   r   loadsr.   s     r   test_big_unicode_decodez#TestUnicode.test_big_unicode_decode1   sV    C!GcM22A666$8991=====r   c                     t          dd          D ]?}t          |          }d|fz  }|                     t          j        |          |           @d S )Nr   i  z"\u%04x")ranger   r   r   r1   )r   ir   r   s       r   test_unicode_decodezTestUnicode.test_unicode_decode6   s]    q&!! 	/ 	/Aq		Aqd"ATZ]]A....		/ 	/r   c                 L   d}g d}|                      t          j        |          t          |                     |                      t          j        |d           |           t          j        |t          j                  }|                      |t          j        |                     |                      t          |          t          j                   |                      t          j        |t          j        d           t          j        |                     d S )Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}))xkd   )kcw   )art   )hxm   )qrt   )pad   )hoy   c                     | S N xs    r   <lambda>zATestUnicode.test_object_pairs_hook_with_unicode.<locals>.<lambda>B   s    1 r   )object_pairs_hookc                     d S rG   rH   rI   s    r   rK   zATestUnicode.test_object_pairs_hook_with_unicode.<locals>.<lambda>I   s    $ r   )rL   object_hook)r   r   r1   evalOrderedDicttype)r   r   pods       r   #test_object_pairs_hook_with_unicodez/TestUnicode.test_object_pairs_hook_with_unicode=   s   N4 4 4AQ000AEEEqIIIZT-=>>>T-a00111b4#3444A6:6F0>@ @ @ )!,,	. 	. 	. 	. 	.r   c                     |                      t          j        d                    d                    ddi           d S )Nu   {"a": "é"}r   a   é)r   r   r1   r   r   s    r   test_default_encodingz!TestUnicode.test_default_encodingM   sF    $4$;$;G$D$DEE'N	 	 	 	 	r   c                 n   |                      t          t          j        d                    t                     |                      t          t          j        d                    t                     |                      t          t          j        d          d                   t                     d S )Nz""z"a"z["a"]r   )r   rQ   r   r1   r   rX   s    r   test_unicode_preservationz%TestUnicode.test_unicode_preservationQ   s    dj//00)<<<dj00119===dj221566	BBBBBr   c                    |                      t          t          j        g d                    t                     |                      t          t          j        dd                    t                     |                      t          t          j        i d                    t                     |                      t          t          j        dd                    t                     d S )NFr'   r    )r   rQ   r   r   r   rX   s    r   'test_ensure_ascii_false_returns_unicodez3TestUnicode.test_ensure_ascii_false_returns_unicodeV   s    dj%@@@AA9MMMdj???@@)LLLdj%@@@AA9MMMdj%@@@AA9MMMMMr   c                    dt          d          i}ddi}d}d}|                     t          j        |          |           |                     t          j        |          |           |                     t          j        |d          |           |                     t          j        |d          |           d S )Nquuxu   ArrÃªt sur imagesu   Arrêt sur imagesz!{"quux": "Arr\u00eat sur images"}u   {"quux": "Arrêt sur images"}Fr'   )r   r   r   r   )r   doc1doc2	doc_asciidoc_unicodes        r   +test_ensure_ascii_false_bytestring_encodingz7TestUnicode.test_ensure_ascii_false_bytestring_encoding]   s    4556/08	8D))9555D))9555Du==={KKKDu==={KKKKKr   c                    d}|                     d          }d}d}|                     t          j        |          |           |                     t          j        |          |           |                     t          j        |d          |           |                     t          j        |d          |           d S )Nu     utf8z"\u2029\u2028"u   "  "Fr'   )r   r   r   r   )r   s1s2expectexpect_non_asciis        r   $test_ensure_ascii_linebreak_encodingz0TestUnicode.test_ensure_ascii_linebreak_encodingh   s    YYv#,B000B000BU;;;=MNNNBU;;;=MNNNNNr   c                    |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d	           t          j        d
k    rZ|                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           |                      t          j        t          j        d           d S d S )Nz"\uz"\u1z"\u12z"\u123z"\u1234z"\u123x"z"\u12x4"z"\u1x34"z"\ux234"i  z
"\ud800\u"z"\ud800\u0"z"\ud800\u00"z"\ud800\u000"z"\ud800\u000x"z"\ud800\u00x0"z"\ud800\u0x00"z"\ud800\ux000")assertRaisesr   JSONDecodeErrorr1   sys
maxunicoderX   s    r   test_invalid_escape_sequencesz)TestUnicode.test_invalid_escape_sequencess   s   $.
FCCC$.
GDDD$.
HEEE$.
IFFF$.
JGGG$.
KHHH$.
KHHH$.
KHHH$.
KHHH>E!!d2DJOOOd2DJPPPd2DJ@PQQQd2DJ@QRRRd2DJ@RSSSd2DJ@RSSSd2DJ@RSSSd2DJ@RSSSSS "!r   c                 .   t          t          t          dd                    D ]>}|                     t	          j        |d          t	          j        |                     ?d}|                     t	          j        |d          d|z   dz              d S )Nr      Fr'   u   ☃r)   )mapr   r4   r   r   r   )r   csnowmans      r   test_ensure_ascii_still_worksz)TestUnicode.test_ensure_ascii_still_works   s    VU1c]]++ 	 	A
15111
1    !Jqu---!GcM	 	 	 	 	r   c                 T   d}t           j        t          t          j        |                    z   }|                     t          j        t          |                    |           ||                    d          fD ]*}|                     t          j	        |          |           +d S )Nu   こんにちわrg   )
codecsBOM_UTF8r   r   r   r   loadr   decoder1   )r   contentjson_docdocs       r   test_strip_bomzTestUnicode.test_strip_bom   s    3?Qtz'':':%;%;;78#4#455w???X__V444 	7 	7CTZ__g6666	7 	7r   N)__name__
__module____qualname__r   r   r#   r%   r*   r,   r/   r2   r6   rT   rY   r[   r^   re   rl   rr   rx   r   rH   r   r   r	   r	      s4       ! ! !! ! !0 0 0
2 2 2
- - -
/ / /
M M M
> > >
/ / /. . .   C C C
N N N	L 	L 	L	O 	O 	OT T T.	 	 	7 7 7 7 7r   r	   )rp   rz   unittestr   
simplejsonr   simplejson.compatr   r   r   r   r	   rH   r   r   <module>r      s    



            ; ; ; ; ; ; ; ; ; ; ; ;R7 R7 R7 R7 R7( R7 R7 R7 R7 R7r   