
    <i                     V    S SK r S SKrS SKJr  S SKrS SKJrJrJ	r	J
r
   " S S\5      rg)    N)TestCase)unichr	text_typebBytesIOc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rSrg)TestUnicode   c                     [         R                  " SS9nSnUR                  S5      nUR                  U5      nUR                  U5      nU R                  XE5        g )Nutf-8encoding   αΩ)jsonJSONEncoderencodeassertEqual)selfencoderusjujss         W/home/james-whalen/.local/lib/python3.13/site-packages/simplejson/tests/test_unicode.pytest_encoding1TestUnicode.test_encoding1	   sO    ""G4IHHW^^A^^A     c                     SnUR                  S5      n[        R                  " USS9n[        R                  " USS9nU R                  X45        g )Nr   r   r   )r   r   dumpsr   )r   r   r   r   r   s        r   test_encoding2TestUnicode.test_encoding2   sC    IHHWZZG,ZZG, r   c                 X    Sn[         R                  " U5      nU R                  US5        g )Nr   z"\u03b1\u03a9"r   r   r   r   r   js      r   test_encoding3TestUnicode.test_encoding3   s%    IJJqM./r   c                 Z    Sn[         R                  " U/5      nU R                  US5        g )Nr   z["\u03b1\u03a9"]r#   r$   s      r   test_encoding4TestUnicode.test_encoding4   s'    IJJsO01r   c                 b    Sn[         R                  " USS9nU R                  USU-   S-   5        g )Nr   Fensure_ascii"r#   r$   s      r   test_encoding5TestUnicode.test_encoding5"   s/    IJJqu-D1HtO,r   c                 d    Sn[         R                  " U/SS9nU R                  USU-   S-   5        g )Nr   Fr,   z["z"]r#   r$   s      r   test_encoding6TestUnicode.test_encoding6'   s2    IJJs/EAI-.r   c                     SnU R                  [        R                  " U5      S5        U R                  [        R                  " USS9S5        g )Nu   𝄠z"\ud834\udd20"Fr,   u   "𝄠")r   r   r   r   r   s     r   test_big_unicode_encode#TestUnicode.test_big_unicode_encode,   s;    A(:;AE:OLr   c                     SnU R                  [        R                  " SU-   S-   5      U5        U R                  [        R                  " S5      U5        g )Nu   z𝄠xr.   z"z\ud834\udd20x")r   r   loadsr5   s     r   test_big_unicode_decode#TestUnicode.test_big_unicode_decode1   sB    C!GcM2A6$891=r   c                     [        SS5       H:  n[        U5      nSU4-  nU R                  [        R                  " U5      U5        M<     g )Nr   i  z"\u%04x")ranger   r   r   r9   )r   ir   r   s       r   test_unicode_decodeTestUnicode.test_unicode_decode6   s@    q&!Aq	Aqd"ATZZ]A.	 "r   c                 0   Sn/ SQnU R                  [        R                  " U5      [        U5      5        U R                  [        R                  " US S9U5        [        R                  " U[        R                  S9nU R                  U[        R                  " U5      5        U R                  [        U5      [        R                  5        U R                  [        R                  " U[        R                  S S9[        R                  " U5      5        g )Nz?{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}))xkd   )kcw   )art   )hxm   )qrt   )pad   )hoy   c                     U $ N xs    r   <lambda>ATestUnicode.test_object_pairs_hook_with_unicode.<locals>.<lambda>B   s    1r   )object_pairs_hookc                     g rQ   rR   rS   s    r   rU   rV   I   s    $r   )rW   object_hook)r   r   r9   evalOrderedDicttype)r   r   pods       r   #test_object_pairs_hook_with_unicode/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                 r    U R                  [        R                  " SR                  S5      5      SS05        g )Nu   {"a": "é"}r   a   é)r   r   r9   r   r   s    r   test_default_encoding!TestUnicode.test_default_encodingM   s.    $4$;$;G$DE'N	r   c                 <   U R                  [        [        R                  " S5      5      [        5        U R                  [        [        R                  " S5      5      [        5        U R                  [        [        R                  " S5      S   5      [        5        g )Nz""z"a"z["a"]r   )r   r\   r   r9   r   rd   s    r   test_unicode_preservation%TestUnicode.test_unicode_preservationQ   sa    djj/0)<djj019=djj2156	Br   c           	         U R                  [        [        R                  " / SS95      [        5        U R                  [        [        R                  " SSS95      [        5        U R                  [        [        R                  " 0 SS95      [        5        U R                  [        [        R                  " SSS95      [        5        g )NFr,   r    )r   r\   r   r   r   rd   s    r   'test_ensure_ascii_false_returns_unicode3TestUnicode.test_ensure_ascii_false_returns_unicodeV   s    djj%@A9Mdjj?@)Ldjj%@A9Mdjj%@A9Mr   c                 Z   S[        S5      0nSS0nSnSnU R                  [        R                  " U5      U5        U R                  [        R                  " U5      U5        U R                  [        R                  " USS9U5        U R                  [        R                  " USS9U5        g )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_encoding7TestUnicode.test_ensure_ascii_false_bytestring_encoding]   s    456/08	8D)95D)95Du={KDu={Kr   c                 ^   SnUR                  S5      nSnSnU R                  [        R                  " U5      U5        U R                  [        R                  " U5      U5        U R                  [        R                  " USS9U5        U R                  [        R                  " USS9U5        g )Nu     utf8z"\u2029\u2028"u   "  "Fr,   )r   r   r   r   )r   s1s2expectexpect_non_asciis        r   $test_ensure_ascii_linebreak_encoding0TestUnicode.test_ensure_ascii_linebreak_encodingh   s    YYv#,B0B0BU;=MNBU;=MNr   c                 n   U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S	5        [        R
                  S
:  Gay  U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        g g )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   JSONDecodeErrorr9   sys
maxunicoderd   s    r   test_invalid_escape_sequences)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                    [        [        [        SS5      5       H<  nU R                  [        R
                  " USS9[        R
                  " U5      5        M>     SnU R                  [        R
                  " WSS9SU-   S-   5        g )Nr      Fr,   u   ☃r.   )mapr   r=   r   r   r   )r   csnowmans      r   test_ensure_ascii_still_works)TestUnicode.test_ensure_ascii_still_works   sn    VU1c]+A

151

1 , !JJqu-!GcM	r   c                 D   Sn[         R                  [        [        R                  " U5      5      -   nU R                  [        R                  " [        U5      5      U5        X"R                  S5      4 H)  nU R                  [        R                  " U5      U5        M+     g )Nu   こんにちわrw   )
codecsBOM_UTF8r   r   r   r   loadr   decoder9   )r   contentjson_docdocs       r   test_strip_bomTestUnicode.test_strip_bom   so    3??Qtzz'':%;;78#45w?__V44CTZZ_g6 5r   rR   N)__name__
__module____qualname____firstlineno__r   r    r&   r)   r/   r2   r6   r:   r?   r_   re   rh   rl   rt   r|   r   r   r   __static_attributes__rR   r   r   r	   r	      sb    !!0
2
-
/
M
>
/. C
N	L	OT.	7r   r	   )r   r   unittestr   
simplejsonr   simplejson.compatr   r   r   r   r	   rR   r   r   <module>r      s%    
    ; ;R7( R7r   