
    8tf                     V    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y)    N)TestCase)unichr	text_typebBytesIOc                   x    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y)TestUnicodec                     t        j                  d      }d}|j                  d      }|j                  |      }|j                  |      }| j                  ||       y )Nutf-8encoding   αΩ)jsonJSONEncoderencodeassertEqual)selfencoderusjujss         g/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/simplejson/tests/test_unicode.pytest_encoding1zTestUnicode.test_encoding1	   sQ    ""G4IHHW^^A^^AR     c                     d}|j                  d      }t        j                  |d      }t        j                  |d      }| j                  ||       y )Nr   r   r   )r   r   dumpsr   )r   r   r   r   r   s        r   test_encoding2zTestUnicode.test_encoding2   sE    IHHWZZG,ZZG,R r   c                 V    d}t        j                  |      }| j                  |d       y )Nr   z"\u03b1\u03a9"r   r   r   r   r   js      r   test_encoding3zTestUnicode.test_encoding3   s%    IJJqM./r   c                 X    d}t        j                  |g      }| j                  |d       y )Nr   z["\u03b1\u03a9"]r    r!   s      r   test_encoding4zTestUnicode.test_encoding4   s'    IJJsO01r   c                 f    d}t        j                  |d      }| j                  |d|z   dz          y )Nr   Fensure_ascii"r    r!   s      r   test_encoding5zTestUnicode.test_encoding5"   s/    IJJqu-D1HtO,r   c                 h    d}t        j                  |gd      }| j                  |d|z   dz          y )Nr   Fr'   z["z"]r    r!   s      r   test_encoding6zTestUnicode.test_encoding6'   s2    IJJs/EAI-.r   c                     d}| j                  t        j                  |      d       | j                  t        j                  |d      d       y )Nu   𝄠z"\ud834\udd20"Fr'   u   "𝄠")r   r   r   r   r   s     r   test_big_unicode_encodez#TestUnicode.test_big_unicode_encode,   s;    A(:;AE:OLr   c                     d}| j                  t        j                  d|z   dz         |       | j                  t        j                  d      |       y )Nu   z𝄠xr)   z"z\ud834\udd20x")r   r   loadsr.   s     r   test_big_unicode_decodez#TestUnicode.test_big_unicode_decode1   sB    C!GcM2A6$891=r   c                     t        dd      D ]8  }t        |      }d|fz  }| j                  t        j                  |      |       : y )Nr   i  z"\u%04x")ranger   r   r   r1   )r   ir   r   s       r   test_unicode_decodezTestUnicode.test_unicode_decode6   sE    q&! 	/Aq	Aqd"ATZZ]A.		/r   c                 6   d}g d}| j                  t        j                  |      t        |             | j                  t        j                  |d       |       t        j                  |t        j                        }| j                  |t        j                  |             | j                  t        |      t        j                         | j                  t        j                  |t        j                  d       t        j                  |             y )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                      y 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AQ0AEqIZZT-=-=>T--a01b4#3#34A6:6F6F0>@ ))!,	.r   c                 p    | j                  t        j                  dj                  d            ddi       y )Nu   {"a": "é"}r   a   é)r   r   r1   r   r   s    r   test_default_encodingz!TestUnicode.test_default_encodingM   s.    $4$;$;G$DE'N	r   c                 6   | j                  t        t        j                  d            t               | j                  t        t        j                  d            t               | j                  t        t        j                  d      d         t               y )Nz""z"a"z["a"]r   )r   rQ   r   r1   r   rX   s    r   test_unicode_preservationz%TestUnicode.test_unicode_preservationQ   sa    djj/0)<djj019=djj2156	Br   c                    | j                  t        t        j                  g d            t               | j                  t        t        j                  dd            t               | j                  t        t        j                  i d            t               | j                  t        t        j                  dd            t               y )NFr'   r    )r   rQ   r   r   r   rX   s    r   'test_ensure_ascii_false_returns_unicodez3TestUnicode.test_ensure_ascii_false_returns_unicodeV   s    djj%@A9Mdjj?@)Ldjj%@A9Mdjj%@A9Mr   c                 ^   dt        d      i}ddi}d}d}| j                  t        j                  |      |       | j                  t        j                  |      |       | j                  t        j                  |d      |       | j                  t        j                  |d      |       y )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6/08	8D)95D)95Du={KDu={Kr   c                 b   d}|j                  d      }d}d}| j                  t        j                  |      |       | j                  t        j                  |      |       | j                  t        j                  |d      |       | j                  t        j                  |d      |       y )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B0BU;=MNBU;=MNr   c                 l   | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d	       t        j
                  d
kD  ry| j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       y y )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$..

GD$..

HE$..

IF$..

JG$..

KH$..

KH$..

KH$..

KH>>E!d22DJJOd22DJJPd22DJJ@PQd22DJJ@QRd22DJJ@RSd22DJJ@RSd22DJJ@RSd22DJJ@RS "r   c                    t        t        t        dd            D ]<  }| j                  t	        j
                  |d      t	        j
                  |             > d}| j                  t	        j
                  d      d|z   dz          y )Nr      Fr'   u   ☃r)   )mapr   r4   r   r   r   )r   csnowmans      r   test_ensure_ascii_still_worksz)TestUnicode.test_ensure_ascii_still_works   ss    VU1c]+ 	A

151

1	 !JJqu-!GcM	r   c                 <   d}t         j                  t        t        j                  |            z   }| j                  t        j                  t        |            |       ||j                  d      fD ]'  }| j                  t        j                  |      |       ) y )Nu   こんにちわrg   )
codecsBOM_UTF8r   r   r   r   loadr   decoder1   )r   contentjson_docdocs       r   test_strip_bomzTestUnicode.test_strip_bom   sv    3??Qtzz'':%;;78#45w?X__V44 	7CTZZ_g6	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	      sb    !!0
2
-
/
M
>
/. C
N	L	OT.	7r   r	   )rp   rz   unittestr   
simplejsonr   simplejson.compatr   r   r   r   r	   rH   r   r   <module>r      s%    
    ; ;R7( R7r   