zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
U
­ý°dŒã@s
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z
ddl Z ddl Z ddl mmZddlmZddlmZmZmZmZmZmZmZmZmZddlmZdd„Ze j ddddd    gd
d d „ƒZ!Gd d„dƒZ"Gdd„dƒZ#Gdd„dƒZ$dS)éN)ÚIS64)    Ú    DataFrameÚ DatetimeIndexÚIndexÚNaTÚ PeriodIndexÚSeriesÚ    TimedeltaÚ    TimestampÚ
date_rangecCsdd„| ¡DƒS)zÉ
    Sanitize dictionary for JSON by converting all keys to strings.
 
    Parameters
    ----------
    d : dict
        The dictionary to convert.
 
    Returns
    -------
    cleaned_dict : dict
    cSsi|]\}}t|ƒ|“qS©)Ústr)Ú.0ÚkÚvr r úVd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/json/test_ujson.pyÚ
<dictcomp>-sz_clean_dict.<locals>.<dictcomp>)Úitems©Údr r rÚ _clean_dict s rÚsplitÚrecordsÚvaluesÚindex)ÚparamscCs|jS©N)Úparam)Úrequestr r rÚorient0src @s–eZdZejje dddd„ƒZej dddg¡dd    „ƒZ    ej d
d d d g¡dd„ƒZ
dd„Z dd„Z dd„Z ej dddg¡dd„ƒZej dejej g¡dd„ƒZdd„Zd d!„Zd"d#„Zd$d%„Zej d&d'd(d)d*g¡d+d,„ƒZd-d.„Zej d/d0d1g¡d2d3„ƒZd4d5„Zd6d7„Zd8d9„Zd:d;„Zd<d=„Zd>d?„Zej d@dAdBdCg¡dDdE„ƒZdFdG„Z dHdI„Z!ej dJd*ddg¡dKdL„ƒZ"dMdN„Z#dOdP„Z$ej dQe% &¡e% &dRdSdT¡e% &dUdVdWdX¡g¡dYdZ„ƒZ'd[d\„Z(d]d^„Z)ej d_e*e+ ,d`¡e+j-e+j.e+j. g¡dadb„ƒZ/dcdd„Z0dedf„Z1dgdh„Z2didj„Z3dkdl„Z4ej dmdndodpdqg¡drds„ƒZ5ej dtdndog¡dudv„ƒZ6ej dwdxdydzd{d|g¡d}d~„ƒZ7ej dd€dd‚g¡dƒd„„ƒZ8ej d…d†d‡dˆg¡d‰dŠ„ƒZ9ej d‹dŒdg¡dŽd„ƒZ:dd‘„Z;d’d“„Z<d”d•„Z=ej d–d—d˜g¡d™dš„ƒZ>ej d›dœdg¡dždŸ„ƒZ?ej d d¡d¢d£d¤d¥g¡d¦d§„ƒZ@d¨d©„ZAej dªd«d¬d­d®g¡d¯d°„ƒZBd±d²„ZCd³d´„ZDdµd¶„ZEd·d¸„ZFd¹dº„ZGd*S)»ÚTestUltraJSONTestsz$not compliant on 32-bit, xref #15865)ÚreasoncCsØt d¡}tj|dd}t |¡}|dks.t‚t d¡}tj|dd}|dksRt‚t |¡}|dksht‚t d    ¡}tj|dd}|d
ksŒt‚t |¡}|d ks¢t‚t d ¡}tj|dd}|d ksÆt‚t |¡}|dksÜt‚t d¡}tj|dd}|dkst‚t |¡}|dkst‚t d¡}tj|dd}|dks@t‚t |¡}|dksXt‚t d¡}tj|dd}|dks~t‚t |¡}|dks–t‚t d¡}tj|dd}|dks¼t‚t |¡}|dksÔt‚dS)Nz    1337.1337é©Údouble_precisiongç§èˆä”@z0.95éú1.0çð?z0.94z0.9gÍÌÌÌÌÌì?z1.95z2.0g@z-1.95z-2.0gÀz0.995éz0.9995éz0.99999999999999944)ÚdecimalÚDecimalÚujsonÚencodeÚdecodeÚAssertionError©ÚselfÚsutÚencodedÚdecodedr r rÚtest_encode_decimal8sN
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
z&TestUltraJSONTests.test_encode_decimalÚ ensure_asciiTFcs>d‰d}d}‡‡fdd„}||ƒ||dd||dddS)    Nz"A string \ /    
        </script> &z,"A string \\ \/ \b \f \n \r \t <\/script> &"z;"A string \\ \/ \b \f \n \r \t \u003c\/script\u003e \u0026"csJtjˆfdˆi|—Ž}||ks"t‚ˆt |¡ks4t‚ˆt |¡ksFt‚dS)Nr6)r,r-r/ÚjsonÚloadsr.)Zexpected_outputÚ encode_kwargsÚoutput©r6Ú string_inputr rÚhelperxsÿÿÿ z@TestUltraJSONTests.test_encode_string_conversion.<locals>.helperF)Zencode_html_charsTr )r1r6Znot_html_encodedZ html_encodedr=r r;rÚtest_encode_string_conversionpsÿ
 z0TestUltraJSONTests.test_encode_string_conversionÚ long_numberlüÿÿÿZ:`¡7{g#å_œçt¦ÂgԟpAª‚¿ÁcCs0d|i}tj|dd}t |¡}||ks,t‚dS)NÚar"r#©r,r-r.r/)r1r?r2r3r4r r rÚtest_double_long_numbersŠs
z+TestUltraJSONTests.test_double_long_numbersc
Csjtj}dD]Z}t ||¡r
t ||¡4t t d¡¡dks@t‚tjddddksVt‚W5QRXqfq
dS)N)z it_IT.UTF-8Z Italian_Italygòì‘ÄûˇLz4.78T©Z precise_floatg…ëQ¸@)    ÚlocaleÚ
LC_NUMERICÚtmZcan_set_localeZ
set_localer,r8Údumpsr/)r1Z lc_categoryZ
new_localer r rÚtest_encode_non_c_locale”s  z+TestUltraJSONTests.test_encode_non_c_localecCs0ddi}t |¡}tj|dd}||ks,t‚dS)Nr@g=
×£p=@TrCrAr0r r rÚ test_decimal_decode_test_preciseŸs
z3TestUltraJSONTests.test_decimal_decode_test_precisecCsxd}|t t |¡¡kst‚d}|t t |¡¡ks8t‚d}|t t |¡¡ksTt‚d}t |t t |¡¡¡stt‚dS)NgœWw'&l¡7g0Žä.ÿ++g¹j7­֖¶gó¡?>¬úÓ¡)r,r.r-r/ÚnpZallclose)r1Únumr r rÚ#test_encode_double_tiny_exponential¥sz6TestUltraJSONTests.test_encode_double_tiny_exponentialÚ unicode_keyÚkey1uبنcCs$|di}|t t |¡¡ks t‚dS)NZvalue1©r,r.r-r/)r1rMZ unicode_dictr r rÚ"test_encode_dict_with_unicode_keys¯sz5TestUltraJSONTests.test_encode_dict_with_unicode_keysÚ double_inputcCsJt |¡}t|dƒtt |¡dƒks(t‚t|dƒtt |¡dƒksFt‚dS©Né)r,r-Úroundr7r8r/r.)r1rQr:r r rÚtest_encode_double_conversion´s
z0TestUltraJSONTests.test_encode_double_conversioncCsd}t |¡}|dkst‚dS)Nr'r&©r,r-r/)r1Z decimal_inputr:r r rÚtest_encode_with_decimal¼s
z+TestUltraJSONTests.test_encode_with_decimalcCs@ggggd}t |¡}|t |¡ks*t‚|t |¡ks<t‚dS)Né©r,r-r7r8r/r.)r1Z nested_inputr:r r rÚ"test_encode_array_of_nested_arraysÂs
z5TestUltraJSONTests.test_encode_array_of_nested_arrayscCsBddddgd}t |¡}|t |¡ks,t‚|t |¡ks>t‚dS)Ngc ATšÞ@é
rY)r1Z doubles_inputr:r r rÚtest_encode_array_of_doublesÉs
z/TestUltraJSONTests.test_encode_array_of_doublescCs€d}tj|dd}|t |¡ks$t‚|t |¡ks6t‚dD]@}tj||d}t||ƒ}|t |¡ksht‚|t |¡ks:t‚q:dS)Ng² )>@r"r#)r)é    )r,r-r7r8r/r.rT)r1rQr:r$Z rounded_inputr r rÚtest_double_precisionÐs
z(TestUltraJSONTests.test_double_precisionÚ invalid_valrXéÿÿÿÿÚ9Nc    CsFd}t|tƒrtnt}d}tj||dtj||dW5QRXdS)NgöF7ݚ>@z‹Invalid value '.*' for option 'double_precision', max is '15'|an integer is required \(got type |object cannot be interpreted as an integer©Úmatchr#)Ú
isinstanceÚintÚ
ValueErrorÚ    TypeErrorÚpytestÚraisesr,r-)r1r_rQÚexpected_exceptionÚmsgr r rÚtest_invalid_double_precisionÞs
ÿz0TestUltraJSONTests.test_invalid_double_precisioncCsBd}t |¡}|t |¡ks t‚|t |¡ks2t‚|dks>t‚dS)NzA string \ /    
       z"A string \\ \/ \b \f \n \r \t"rY)r1r<r:r r rÚtest_encode_string_conversion2òs
 
z1TestUltraJSONTests.test_encode_string_conversion2Ú unicode_inputu@RäksmörgÃ¥s Ø§Ø³Ø§Ù…Ø© Ø¨Ù† Ù…حمد Ø¨Ù† Ø¹ÙˆØ¶ Ø¨Ù† Ù„ادنõ
日шcCs<t |¡}t |¡}|t |¡ks&t‚|t |¡ks8t‚dSr©r,r-r.r7rGr/r8)r1rnÚencÚdecr r rÚtest_encode_unicode_conversionús
 
z1TestUltraJSONTests.test_encode_unicode_conversioncCs:d}t |¡}t |¡}||ks$t‚|t |¡ks6t‚dS)Nú)r,r-r.r/r7rG)r1Z escaped_inputrqrrr r rÚtest_encode_control_escapings
 
 
 z/TestUltraJSONTests.test_encode_control_escapingcCs@d}t |¡}t |¡}|t |¡ks*t‚|t |¡ks<t‚dS)Nu𐍆rp)r1Zsurrogate_inputrqrrr r rÚ"test_encode_unicode_surrogate_pair s
 
 
z5TestUltraJSONTests.test_encode_unicode_surrogate_paircCs@d}t |¡}t |¡}|t |¡ks*t‚|t |¡ks<t‚dS)Nu𑀰TRAILINGNORMALrp©r1Zfour_bytes_inputrqrrr r rÚtest_encode_unicode_4bytes_utf8s
 
 
z2TestUltraJSONTests.test_encode_unicode_4bytes_utf8cCs@d}t |¡}t |¡}|t |¡ks*t‚|t |¡ks<t‚dS)Nuó¿¿¿TRAILINGNORMALrprwr r rÚ&test_encode_unicode_4bytes_utf8highests
 
 
z9TestUltraJSONTests.test_encode_unicode_4bytes_utf8highestc    Cs2d}d}tjt|dt |g¡W5QRXdS)Nu'í«€'zT'utf-8' codec can't encode character '\\udac0' in position 1: surrogates not allowedrb)rhriÚUnicodeEncodeErrorr,rG)r1Ústringrkr r rÚtest_encode_unicode_error&s
ÿz,TestUltraJSONTests.test_encode_unicode_errorcCsNgggg}t |¡}|t |¡ks&t‚|t |¡ks8t‚|t |¡ksJt‚dSr©r,r-r7r8r/rGr.)r1Zarr_in_arr_inputr:r r rÚtest_encode_array_in_array/s
 
 
z-TestUltraJSONTests.test_encode_array_in_arrayÚ    num_inputéizi—…ÿÿìûÿÿÿcCsDt |¡}|t |¡kst‚|t |¡ks.t‚|t |¡ks@t‚dSrr})r1rr:r r rÚtest_encode_num_conversion7s    
z-TestUltraJSONTests.test_encode_num_conversioncCs>ddddg}t |¡}|t |¡ks(t‚|t |¡ks:t‚dS)Nr%r(r)érY)r1Z
list_inputr:r r rÚtest_encode_list_conversionEs 
z.TestUltraJSONTests.test_encode_list_conversioncCs@dddddœ}t |¡}|t |¡ks*t‚|t |¡ks<t‚dS)Nr%r(r)rƒ)Zk1Zk2Zk3Zk4rY)r1Z
dict_inputr:r r rÚtest_encode_dict_conversionLs
z.TestUltraJSONTests.test_encode_dict_conversionÚ builtin_valuecCsDt |¡}|t |¡kst‚|t |¡ks.t‚|t |¡ks@t‚dSrr})r1r†r:r r rÚ%test_encode_builtin_values_conversionSs
z8TestUltraJSONTests.test_encode_builtin_values_conversioncCs\tj t ¡¡}tj|dd}t | ¡¡}t|ƒt     
|¡ksBt ‚t|ƒt  |¡ksXt ‚dS)NÚs©Ú    date_unit) ÚdatetimeÚ fromtimestampÚtimer,r-ÚcalendarÚtimegmÚ utctimetuplerer7r8r/r.)r1Zdatetime_inputr:Úexpectedr r rÚtest_encode_datetime_conversionZs
z2TestUltraJSONTests.test_encode_datetime_conversioncCsntj t ¡¡}tj|dd}|j|j|jdddf}t     
|¡}t |ƒt   |¡ksTt‚t |ƒt |¡ksjt‚dS)Nrˆr‰r)r‹ÚdaterŒrr,r-ÚyearÚmonthÚdayrŽrrer7r8r/r.)r1Z
date_inputr:Útupr‘r r rÚtest_encode_date_conversionbs 
z.TestUltraJSONTests.test_encode_date_conversionÚtestr%r(r)r[é r"éË<cCs*t |¡}d| ¡›d}||ks&t‚dS)Nú"©r,r-Ú    isoformatr/©r1r™r:r‘r r rÚ!test_encode_time_conversion_basicls
z4TestUltraJSONTests.test_encode_time_conversion_basiccCs>t ddddtj¡}t |¡}d| ¡›d}||ks:t‚dS©Nr[ršr"r›rœ)r‹rÚpytzÚutcr,r-ržr/rŸr r rÚ test_encode_time_conversion_pytzus
z3TestUltraJSONTests.test_encode_time_conversion_pytzcCsBt ddddtj ¡¡}t |¡}d| ¡›d}||ks>t‚dSr¡)    r‹rÚdateutilÚtzZtzutcr,r-ržr/rŸr r rÚ$test_encode_time_conversion_dateutil|s
z7TestUltraJSONTests.test_encode_time_conversion_dateutilÚ decoded_inputrcCst |¡dkstdƒ‚dS)NÚnullz Expected nullrV)r1r¨r r rÚtest_encode_as_nullƒsz&TestUltraJSONTests.test_encode_as_nullc    Csèt ddddddd¡}t|ƒ d¡}t tj|dd    ¡}||jd
ksJt‚t tj|d d    ¡}||jd kspt‚t tj|d d    ¡}||jdks–t‚t tj|dd    ¡}||jks¸t‚d}tj    t
|dtj|dd    W5QRXdS)NéÝéééršiÐIÚnsrˆr‰iʚ;Úmsi@BÚuséèz*Invalid value 'foo' for option 'date_unit'rbÚfoo) r‹r
Zas_unitr,r.r-Ú_valuer/rhrirf)r1ÚvalZstampZ    roundtriprkr r rÚtest_datetime_units‰sz&TestUltraJSONTests.test_datetime_unitscCsHd}tj|dd}t |¡}|tj|ddks2t‚|t |¡ksDt‚dS)NroF)r6rp)r1Ú    unencodedrqrrr r rÚtest_encode_to_utf8s
 
z&TestUltraJSONTests.test_encode_to_utf8cCs,d}t |¡}t t|ƒ¡}||ks(t‚dS)Nz{"obj": 31337}©r,r.r r/)r1rnZdec1Zdec2r r rÚtest_decode_from_unicode¦s
z+TestUltraJSONTests.test_decode_from_unicodec    CsZGdd„dƒ}Gdd„dƒ}|ƒ}|ƒ|_||j_tjtddt |¡W5QRXdS)Nc@seZdZdZdS)z8TestUltraJSONTests.test_encode_recursion_max.<locals>.O2rN©Ú__name__Ú
__module__Ú __qualname__Úmemberr r r rÚO2±srÀc@seZdZdZdS)z8TestUltraJSONTests.test_encode_recursion_max.<locals>.O1rNr»r r r rÚO1´srÁúMaximum recursion level reachedrb)r¿rhriÚ OverflowErrorr,r-)r1rÀrÁr¨r r rÚtest_encode_recursion_max®sz,TestUltraJSONTests.test_encode_recursion_maxc    Cs0d}d}tjt|dt |¡W5QRXdS)Nzfdsa sda v9sa fdsaz0Unexpected character found when decoding 'false'rb©rhrirfr,r.)r1Z    jibberishrkr r rÚtest_decode_jibberish¾sz(TestUltraJSONTests.test_decode_jibberishÚ broken_jsonú[Ú{ú]Ú}c    Cs,d}tjt|dt |¡W5QRXdS)NzExpected object or valuerbrÅ)r1rÇrkr r rÚtest_decode_broken_jsonÄs
z*TestUltraJSONTests.test_decode_broken_jsonÚ too_big_charc    Cs,tjtddt |d¡W5QRXdS)Nz#Reached object decoding depth limitrbirÅ)r1rÍr r rÚtest_decode_depth_too_bigÒsz,TestUltraJSONTests.test_decode_depth_too_bigÚ
bad_stringz"TESTINGz
"TESTING\"ZtruÚfaÚnc    Cs,d}tjt|dt |¡W5QRXdS)NzSUnexpected character found when decoding|Unmatched ''"' when when decoding 'string'rbrÅ)r1rÏrkr r rÚtest_decode_bad_string×s ÿz)TestUltraJSONTests.test_decode_bad_stringzbroken_json, err_msg)z {{1337:""}}z:Key name of object must be 'string' when decoding 'object')z
{{"key":"}z*Unmatched ''"' when when decoding 'string')z[[[truez8Unexpected character found when decoding array value (2)c
Cs<tdƒD].}tjtt |¡dt |¡W5QRXqdS)Nr²rb)ÚrangerhrirfÚreÚescaper,r.)r1rÇÚerr_msgÚ_r r rÚtest_decode_broken_json_leakés z/TestUltraJSONTests.test_decode_broken_json_leakÚ invalid_dictz {{{{31337}}}}z{{{{"key":}}}}z {{{{"key"}}}}c    Cs,d}tjt|dt |¡W5QRXdS)Nz{Key name of object must be 'string' when decoding 'object'|No ':' found when decoding object value|Expected object or valuerbrÅ)r1rÙrkr r rÚtest_decode_invalid_dictùs
ÿz+TestUltraJSONTests.test_decode_invalid_dictÚnumeric_int_as_strZ31337z-31337cCst|ƒt |¡kst‚dSr)rer,r.r/)r1rÛr r rÚtest_decode_numeric_int
sz*TestUltraJSONTests.test_decode_numeric_intcCsžd}t |¡}|t |¡ks t‚|t |¡ks2t‚|t |¡ksDt‚d}t |¡}|t |¡ksdt‚|t |¡ksvt‚|t |¡ksˆt‚dt d¡ksšt‚dS)Nz 31337  1337úz"  \u0000\r\n "z  
 r})r1Ú wrapped_inputr:Z alone_inputr r rÚtest_encode_null_characters
 
z-TestUltraJSONTests.test_encode_null_charactercCs d}t |¡t |¡kst‚dS)Nz"31337 \u0000 31337"©r,r.r7r8r/)r1rÞr r rÚtest_decode_null_character sz-TestUltraJSONTests.test_decode_null_charactercCsBddddddg}t |¡}|t |¡ks,t‚|t |¡ks>t‚dS)NìÿÿÿÿrY©r1Ú
long_inputr:r r rÚ test_encode_list_long_conversion$sú
z3TestUltraJSONTests.test_encode_list_long_conversionrärâlÿÿÿÿcCsDt |¡}|t |¡kst‚|t |¡ks.t‚|t |¡ks@t‚dSrr}rãr r rÚtest_encode_long_conversion2s
z.TestUltraJSONTests.test_encode_long_conversionÚbigNumììûÿÿÿc    CsJt |¡}t|ƒ|kst‚tjtddt |¡|ks<t‚W5QRXdS©Nz#Value is too big|Value is too smallrb)r,r-r r/rhrirfr8)r1rçÚencodingr r rÚ#test_dumps_ints_larger_than_maxsize:s
þz6TestUltraJSONTests.test_dumps_ints_larger_than_maxsizeÚint_expZ1337E40z1.337E40z1337E+9z    1.337e+40z1.337E-4cCst |¡t |¡kst‚dSrrà)r1rír r rÚtest_decode_numeric_int_expEsz.TestUltraJSONTests.test_decode_numeric_int_expc    Cs,d}tjt|dt d¡W5QRXdS)NzExpected 'str' or 'bytes'rb)rhrirgr,r8©r1rkr r rÚtest_loads_non_str_bytes_raisesKsz2TestUltraJSONTests.test_loads_non_str_bytes_raisesrµl£Mö+lllÿÿcCs&d|›d}t |¡d|ks"t‚dS)Nz{"id": rËÚid©r,r.r/)r1rµÚdocr r rÚ&test_decode_number_with_32bit_sign_bitPs z9TestUltraJSONTests.test_decode_number_with_32bit_sign_bitcCs4tdƒD]&}d ¡}|ddd}t |¡qdS)Nr[õÃ¥ér()rÓr-r,)r1r×ÚbaseÚ escape_inputr r rÚtest_encode_big_escapeWs z)TestUltraJSONTests.test_encode_big_escapecCs@tdƒD]2}d ¡}d}||ddd|}t |¡qdS)Nr[rõó"rör()rÓr-r,r.)r1r×r÷Úquoterør r rÚtest_decode_big_escape^s
 z)TestUltraJSONTests.test_decode_big_escapecsDddi‰G‡fdd„dƒ}|ƒ}t |¡}t |¡}|ˆks@t‚dS)NÚkeyr€cseZdZ‡fdd„ZdS)z1TestUltraJSONTests.test_to_dict.<locals>.DictTestcsˆSrr ©r1rr rÚtoDictksz8TestUltraJSONTests.test_to_dict.<locals>.DictTest.toDictN)r¼r½r¾rÿr rr rÚDictTestjsrrA)r1rÚor:rrr rrÚ test_to_dictgs 
 
zTestUltraJSONTests.test_to_dictc    sXG‡fdd„dƒ‰d}tjt|dt ˆdƒ¡W5QRXdtjˆdƒtdksXt‚dd    „}d
tjˆdƒ|dkszt‚d d „}tjtd dtjˆdƒ|dW5QRXdd„}t tjˆdƒ|d¡dksÖt‚dd„}t t t         ddd¡¡¡t tjˆdƒ|d¡kst‚ˆdƒˆdƒg}t
  t
j |td¡t tj|td¡ksTt‚dS)Ncs8eZdZddœdd„Ze‡fdd„ƒZedœdd„ZdS)    z<TestUltraJSONTests.test_default_handler.<locals>._TestObjectN©ÚreturncSs
||_dSr)rµ)r1rµr r rÚ__init__vszETestUltraJSONTests.test_default_handler.<locals>._TestObject.__init__csˆdƒS)NÚrecursive_attrr rþ©Ú _TestObjectr rryszKTestUltraJSONTests.test_default_handler.<locals>._TestObject.recursive_attrcSs
t|jƒSr)r rµrþr r rÚ__str__}szDTestUltraJSONTests.test_default_handler.<locals>._TestObject.__str__)r¼r½r¾rÚpropertyrr r    r rr rrusrrÂrbr³z"foo")Zdefault_handlercSsdS)NZfoobarr ©r×r r rÚ
my_handler…sz;TestUltraJSONTests.test_default_handler.<locals>.my_handlerz"foobar"cSs tdƒ‚dS)NúI raise for anything)rgr r r rÚmy_handler_raisesŒszBTestUltraJSONTests.test_default_handler.<locals>.my_handler_raisesr cSsdS)Né*r r r r rÚmy_int_handler’sz?TestUltraJSONTests.test_default_handler.<locals>.my_int_handlerrcSst ddd¡S)Nr«r(r))r‹r r r rÚmy_obj_handlerœsz?TestUltraJSONTests.test_default_handler.<locals>.my_obj_handlerr«r(r)Úbar)Údefault) rhrirÃr,r-r r/rgr.r‹r7r8rG)r1rkr rrrZobj_listr rrÚtest_default_handlerts@ ÿ ÿýÿÿÿþ
 ÿz'TestUltraJSONTests.test_default_handlercCsBGdd„dƒ}|ddddd}t t |¡¡ddddœks>t‚dS)    Nc@s"eZdZddœdd„Zdd„ZdS)z:TestUltraJSONTests.test_encode_object.<locals>._TestObjectNrcSs||_||_||_||_dSr©r@ÚbÚ_cr)r1r@rrrr r rr¬szCTestUltraJSONTests.test_encode_object.<locals>._TestObject.__init__cSsdSrRr rþr r rÚe²sz<TestUltraJSONTests.test_encode_object.<locals>._TestObject.e)r¼r½r¾rrr r r rr«srr%r(r)rƒr)r@rrrO)r1rZ test_objectr r rÚtest_encode_objectªs z%TestUltraJSONTests.test_encode_object)Hr¼r½r¾rhÚmarkZskipifrr5Ú parametrizer>rBrHrIrLrPÚmathÚpirUrWrZr\r^rlrmrsrurvrxryr|r~r‚r„r…r‡r’r˜r‹rr r¤r§rrJZ
datetime64ÚnanÚinfrªr¶r¸rºrÄrÆrÌrÎrÒrØrÚrÜrßrárårærìrîrðrôrùrürrrr r r rr 7s
7
ÿ
 
 
 ÿ
üþ    
þ
        ýþ
 
 
"þ
ÿ
    üþ    
 
ûþ
 
úþ
ýþ
    ÿ
 
 
 
 ÿ
 
     6r c@sšeZdZej dddg¡dd„ƒZdd„Zdd    „Zd
d „Z    d d „Z
dd„Z dd„Z dd„Z dd„Zej ddddg¡dd„ƒZdd„Zdd„Zd d!„Zd"S)#ÚTestNumpyJSONTestsÚ
bool_inputTFcCs$t|ƒ}t t |¡¡|ks t‚dSr)Úboolr,r.r-r/)r1r!rr r rÚ    test_bool»szTestNumpyJSONTests.test_boolc    CsHtjddddddddgtd}tjt t |¡¡td}t ||¡dS)NTF©Údtype)rJÚarrayr"r,r.r-rFÚassert_numpy_array_equal)r1Z
bool_arrayr:r r rÚtest_bool_arrayÀs ÿz"TestNumpyJSONTests.test_bool_arraycCs4t |¡j}|dƒ}|t t |¡¡ƒ|ks0t‚dS)Nr%©rJr%Útyper,r.r-r/©r1Úany_int_numpy_dtypeÚklassrKr r rÚtest_intÇs zTestNumpyJSONTests.test_intcCsBtjdtd}| |¡}tjt t |¡¡|d}t     ||¡dS)Nédr$)
rJÚarangereÚastyper&r,r.r-rFr')r1r,ÚarrZ    arr_inputZ
arr_outputr r rÚtest_int_arrayÍs
ÿz!TestNumpyJSONTests.test_int_arraycCsd|dkrtst d¡t |¡j}|dkr8t d¡j}n t |¡j}|t     t 
|¡¡ƒ|ks`t ‚dS)N)Úint64Úuint64z-Cannot test 64-bit integer on 32-bit platformr5r4) rrhÚskiprJr%r*ZiinfoÚmaxr,r.r-r/r+r r rÚ test_int_maxÖs 
  zTestNumpyJSONTests.test_int_maxcCs4t |¡j}|dƒ}|t t |¡¡ƒ|ks0t‚dS)NgõJY†8p@r)©r1Úfloat_numpy_dtyper-rKr r rÚ
test_floatås zTestNumpyJSONTests.test_floatcCsJtjdddtd}| |¡}tjt tj|dd¡|d}t     ||¡dS)Ng)@g×£p=
7g@geâX·û?r$r"r#)
rJr0Úfloatr1r&r,r.r-rFÚassert_almost_equal)r1r:r2Z float_inputZ float_outputr r rÚtest_float_arrayës
þz#TestNumpyJSONTests.test_float_arrayc    CsDt |¡j}|t |¡jdƒ}t |t tj    |dd¡ƒ|¡dS)Nr[r"r#)
rJr%r*Zfinfor7rFr=r,r.r-r9r r rÚtest_float_maxõs  ÿz!TestNumpyJSONTests.test_float_maxc    Cs6t d¡}| d¡}t t t t |¡¡¡|¡dS)Né`)r(r(r(r(r)r(©    rJr0ÚreshaperFr'r&r,r.r-©r1r2r r rÚtest_array_basicýs
 
z#TestNumpyJSONTests.test_array_basicÚshape)r[r[©rSrSrƒ)r/r%c    Cs6t d¡}| |¡}t t t t |¡¡¡|¡dS)Nr/rA)r1rEr2r r rÚtest_array_reshapeds
 
z&TestNumpyJSONTests.test_array_reshapedc
CsVdgiigddddgddig    }tj|td}tjt t |¡¡td}t ||¡dS)Nr@rg33333sX@rrýrµr$)rJr&Úobjectr,r.r-rFr')r1Zarr_listr2Úresultr r rÚtest_array_list
s÷ z"TestNumpyJSONTests.test_array_listcCsLtj}tjddd|d}| d¡}tjt t |¡¡|d}t     ||¡dS)Ng°rh‘í Y@gX9´Èvi@r%r$rF)
rJÚfloat32r0rBr&r,r.r-rFr=)r1r%r2Zarr_outr r rÚtest_array_floats
 
z#TestNumpyJSONTests.test_array_floatc    Cs8t d¡}tjt|dt t d¡¡W5QRXdS)Nz:array(1) (0d array) is not JSON serializable at the momentrbr%)    rÔrÕrhrirgr,r-rJr&rïr r rÚ test_0d_array#s
z TestNumpyJSONTests.test_0d_arrayN)r¼r½r¾rhrrr#r(r.r3r8r;r>r?rDrGrJrLrMr r r rr ºs
    
 
    r c@s¨eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Ze    j
  d ddddg¡dd„ƒZ e    j
  dgdgg¡dd„ƒZ e    j
  dddg¡dd„ƒZe    j
  dd›d›g¡d d!„ƒZd"d#„Zd$d%„Ze    j
  d&d›d›g¡d'd(„ƒZe    j
  d)d*d+d,d-d.d/d0d1d2g    ¡e    j
  d3d4d5g¡d6d7„ƒƒZd8d9„Zd:d;„Zd<d=„Ze    j
  d>ed?d@ed4d@edAdBdBdCedAdDdEdCed4dBdFed5dGed5d5dHed5d5d5dIedJdJdJdIg    ¡dKdL„ƒZdMdN„ZdOS)PÚTestPandasJSONTestscCstj}tdddgdddggddgd    d
d g|d }|dkr<ind |i}|j|k ¡sVt‚t tj|f|Ž¡}|j|k ¡s|t‚|dkr˜t    |ƒ}tf|Ž}nt|ƒ}|dkrÀdddg|_
ddg|_ n$|dkrÔddg|_ n|dkrä|  ¡}|j|k ¡söt‚t  ||¡dS)Nr%r(r)rƒrSér@rÚxÚyÚz)rÚcolumnsr%rrrrrr)rJr4rZdtypesÚallr/r,r.r-rrSrZ    transposerFZassert_frame_equal)r1rr%Údfr9r:rrr r rÚtest_dataframe+s0ü    z"TestPandasJSONTests.test_dataframecCs”tdddgdddggddgd    d
d gd }|| ¡d œ}|dkrBind|i}t tj|f|Ž¡t tj|f|Ž¡d œ}t tj|f|Ž¡|kst‚dS)Nr%r(r)rƒrSrOr@rrPrQrR)rrS)Zdf1Zdf2r)rÚcopyr,r.r-r/)r1rrUÚnestedÚkwargsÚexpr r rÚtest_dataframe_nestedMsÿþz)TestPandasJSONTests.test_dataframe_nestedc    Cstj}tddddddgddd    d
d dd g|d  ¡}|j|ks@t‚|dkrLind|i}t tj|f|Ž¡}|j|ksvt‚|dkr’t    |ƒ}tf|Ž}nt|ƒ}|dkrÄd|_
| ¡}ddddddg|_ n |dkräd|_
ddddddg|_ |j|ksòt‚t   ||¡dS)Nr[rXéé(é2é<ÚseriesrOér¬r]r")Únamerr%rr)NrÚ6Ú7Ú8raÚ10Z15)rrrr%r(r)rƒrS)rJr4rÚ sort_valuesr%r/r,r.r-rrbrrFÚassert_series_equal)r1rr%rˆr9r:rrr r rÚ test_series[s0ü
 zTestPandasJSONTests.test_seriesc    Cs–tddddddgddd    d
d dd gd  ¡}|| ¡dœ}|dkrDind|i}t tj|f|Ž¡t tj|f|Ž¡dœ}t tj|f|Ž¡|ks’t‚dS)Nr[rXr\r]r^r_r`rOrar¬r]r")rbr)Ús1Ús2r)rrgrWr,r.r-r/)r1rrˆrXrYrZr r rÚtest_series_nested{sÿ
þz&TestPandasJSONTests.test_series_nestedcCstddddddgdd}tt t |¡¡dd}t ||¡tt tj|d    d
¡ƒ}tf|Ž}t ||¡|j|jkszt‚t ||¡|j|jks–t‚tt tj|d d
¡dd}t ||¡tt tj|d d
¡dd}t ||¡tt tj|dd
¡dd}t ||¡dS) Néé-éébé+é r)rbr)rrr)    rr,r.r-rFÚassert_index_equalrrbr/)r1Úir:rrr r rÚ
test_indexˆs 
    zTestPandasJSONTests.test_indexcCs¤d}tttdddƒdd}tj||d}tt t |¡¡ƒ}t     ||¡t
tj   t |ƒ¡|d}t
t tj||d¡ƒ}|jj tj¡}t|ƒ|_t ||¡dS)Nr¯z1/1/2000rX)Zperiods©Úfreqr‰©r)rÚlistr r,r-rJr&r.rFrsrÚrandomZrandnÚlenrrr1r4rh)r1rŠÚrngr3r4ÚtsZ
idx_valuesr r rÚtest_datetime_index¡s 
z'TestPandasJSONTests.test_datetime_indexÚ invalid_arrz[31337,]z[,31337]z[]]z[,]c    Cs,d}tjt|dt |¡W5QRXdS)Nz[Expected object or value|Trailing data|Unexpected character found when decoding array valuerbrÅ)r1rrkr r rÚtest_decode_invalid_array²s ÿz-TestPandasJSONTests.test_decode_invalid_arrayr2r€cCs|t t|ƒ¡kst‚dSrr¹rCr r rÚtest_decode_arrayÃsz%TestPandasJSONTests.test_decode_arrayÚ extreme_numrârcCs|t t|ƒ¡kst‚dSrr¹)r1r‚r r rÚtest_decode_extreme_numbersÇsz/TestPandasJSONTests.test_decode_extreme_numbersÚtoo_extreme_numrèréc    Cs(tjtddt |¡W5QRXdSrêrÅ)r1r„r r rÚtest_decode_too_extreme_numbersËs
þz3TestPandasJSONTests.test_decode_too_extreme_numberscCsit d¡kst‚dS)Nz{}
     ròrþr r rÚ%test_decode_with_trailing_whitespacesÓsz9TestPandasJSONTests.test_decode_with_trailing_whitespacesc    Cs(tjtddt d¡W5QRXdS)Nz Trailing datarbz{}
     arÅrþr r rÚ)test_decode_with_trailing_non_whitespacesÖsz=TestPandasJSONTests.test_decode_with_trailing_non_whitespacesÚvaluec    Cs(tjtddt |¡W5QRXdSrê)rhrirfr,r8)r1rˆr r rÚtest_decode_array_with_big_intÚs
þz2TestPandasJSONTests.test_decode_array_with_big_intÚ float_numbergÞ3ˆÓ­ùñ?gªRCÊÀó?g¨B4¡æ‡õ?gŽš
LO÷?g‰    jøù?g[_$´åÜú?gŒ¹k    ù ü?g}?5^ºIþ?gÍÌÌÌÌÌô?Úsignr`r%cCs&||9}tj|t t|ƒ¡dddS)NgV瞯Ò<)Zrtol)rFr=r,r8r )r1r‹rŠr r rÚtest_decode_floating_pointâsz.TestPandasJSONTests.test_decode_floating_pointcCs.tƒ}tddƒD]}| |¡qt |¡dS)Nri †)ÚsetrÓÚaddr,r-)r1rˆrPr r rÚtest_encode_big_setõs z'TestPandasJSONTests.test_encode_big_setcCsdt tƒ¡kst‚dS)Nz[])r,r-rr/rþr r rÚtest_encode_empty_setþsz)TestPandasJSONTests.test_encode_empty_setc    CsDddddddddd    h    }t |¡}t |¡}|D]}||ks.t‚q.dS)
Nr%r(r)rƒrSrOrar¬r]rA)r1rˆrqrrrr r rÚtest_encode_sets
 
 
z#TestPandasJSONTests.test_encode_setÚtdin)Údaysé rS)ÚhoursÚminutesÚsecondsrXr\)r“Ú nanoseconds)r˜)Ú microsecondsr˜)Z millisecondsr™r˜içcCs.tj|dd}d| ¡›d}||ks*t‚dS)NT)Z    iso_datesrœr)r1r’rIr‘r r rÚtest_encode_timedelta_iso    sz-TestPandasJSONTests.test_encode_timedelta_isocCs.tddgdd}t|d}| ¡dks*t‚dS)Nz
2022-04-06z
2022-04-07ÚDrvrxz{})rrÚto_jsonr/)r1ÚprUr r rÚtest_encode_periodindexs
z+TestPandasJSONTests.test_encode_periodindexN)r¼r½r¾rVr[rirlrur~rhrrr€rrƒr…r†r‡r‰rŒrrr‘r    ršržr r r rrN*st"  üþ    
 
 
 
 
÷þ       
 
  ÷þ
rN)%rŽr‹r*r7rDrrÔrr¥ÚnumpyrJrhr¢Zpandas._libs.jsonZ_libsr,Z pandas.compatrZpandasrrrrrrr    r
r Zpandas._testingZ_testingrFrZfixturerr r rNr r r rÚ<module>s8 ,  ÿ
p