v2 / vlib / encoding / cbor / tests / cbor_wg / rfc8949_good.edn
526 lines · 516 sloc · 27.4 KB · 468855eef1db0ff73c62be2d1bf176ffa0e1478e
Raw
1{
2 "title": "good",
3 "description": "Good tests for RFC 8949",
4 "tests": [
5 # Integers
6 {
7 "description": "u8: non-preferred 0",
8 "roundtrip": false,
9 "encoded": h'18 00',
10 "decoded": 0,
11 },
12 {
13 "description": "u8: max",
14 "encoded": h'18 ff',
15 "decoded": 255,
16 },
17 {
18 "description": "s8: -1, not preferred",
19 "roundtrip": false,
20 "encoded": h'38 00',
21 "decoded": -1,
22 },
23 {
24 "description": "s8: min",
25 "encoded": h'38 ff',
26 "decoded": -256,
27 },
28 {
29 "description": "u16: max",
30 "encoded": h'19 ffff',
31 "decoded": 65535,
32 },
33 {
34 "description": "u16: 0, non-preferred",
35 "roundtrip": false,
36 "encoded": h'19 0000',
37 "decoded": 0,
38 },
39 {
40 "description": "s16: min",
41 "encoded": h'39 ffff',
42 "decoded": -65536,
43 },
44 {
45 "description": "s16: -1, non-preferred",
46 "roundtrip": false,
47 "encoded": h'39 0000',
48 "decoded": -1,
49 },
50 {
51 "description": "u32: max",
52 "encoded": h'1a ffffffff',
53 "decoded": 0xffffffff,
54 },
55 {
56 "description": "u32: 0, non-preferred",
57 "roundtrip": false,
58 "encoded": h'1a 00000000',
59 "decoded": 0,
60 },
61 {
62 "description": "u32: 65535, non-preferred",
63 "roundtrip": false,
64 "encoded": h'1a 0000ffff',
65 "decoded": 65535,
66 },
67 {
68 "description": "s32: -65537",
69 "encoded": h'3a 00010000',
70 "decoded": -65537,
71 },
72 {
73 "description": "s32: min",
74 "encoded": h'3a ffffffff',
75 "decoded": -0x100000000,
76 },
77 {
78 "description": "u64: 0, not preferred",
79 "roundtrip": false,
80 "encoded": h'1b 0000000000000000',
81 "decoded": 0,
82 },
83 {
84 "description": "u64: 65535, not preferred",
85 "roundtrip": false,
86 "encoded": h'1b 000000000000ffff',
87 "decoded": 65535,
88 },
89 {
90 "description": "u64: 65536, not preferred",
91 "roundtrip": false,
92 "encoded": h'1b 0000000000010000',
93 "decoded": 65536,
94 },
95 {
96 "description": "u64: MAX_SAFE_INTEGER",
97 "encoded": h'1b 001fffffffffffff',
98 "decoded": 0x1fffffffffffff,
99 },
100 {
101 "description": "u64: MIN_SAFE_INTEGER",
102 "encoded": h'3b 001ffffffffffffe',
103 "decoded": -0x1fffffffffffff,
104 },
105 {
106 "description": "s64: -1, not preferred",
107 "roundtrip": false,
108 "encoded": h'3b 0000000000000000',
109 "decoded": -1,
110 },
111 {
112 "description": "s64: -65536, not preferred",
113 "roundtrip": false,
114 "encoded": h'3b 000000000000ffff',
115 "decoded": -65536,
116 },
117 {
118 "description": "s64: -65537, not preferred",
119 "roundtrip": false,
120 "encoded": h'3b 0000000000010000',
121 "decoded": -65537,
122 },
123
124 # Floats
125 ## Around 2^53
126 {
127 "description": "MAX_SAFE_INTEGER + 1",
128 "encoded": h'fa 5a000000',
129 "decoded": 9007199254740992.0,
130 },
131 {
132 "description": "MAX_SAFE_INTEGER + 3",
133 "encoded": h'fb 4340000000000001',
134 "decoded": 9007199254740994.0,
135 },
136 {
137 "description": "MIN_SAFE_INTEGER - 1",
138 "encoded": h'fa da000000',
139 "decoded": -9007199254740992.0,
140 },
141 {
142 "description": "MIN_SAFE_INTEGER - 3",
143 "encoded": h'fb c340000000000001',
144 "decoded": -9007199254740994.0,
145 },
146 ## f16
147 {
148 "description": "f16: Min",
149 "encoded": h'f9 fbff',
150 "decoded": -65504.0,
151 "encodeOptions": {
152 "avoidInts": true,
153 },
154 },
155 {
156 "description": "f16: Second-smallest subnormal",
157 "encoded": h'f9 0002',
158 "decoded": 1.1920928955078125e-7,
159 },
160 {
161 "description": "f16: Second-smallest subnormal, negative",
162 "encoded": h'f9 8002',
163 "decoded": -1.1920928955078125e-7,
164 },
165 {
166 "description": "f16: Largest subnormal",
167 "roundtrip": false, # precision is lost with subnormal
168 "encoded": h'f9 03ff',
169 "decoded": 0.00006097555160522461,
170 },
171 {
172 "description": "f16: Largest subnormal, negative",
173 "roundtrip": false, # precision is lost with subnormal
174 "encoded": h'f9 83ff',
175 "decoded": -0.00006097555160522461,
176 },
177 {
178 "description": "f16: Closest to 1/3",
179 "encoded": h'f9 3555',
180 "decoded": 0.333251953125,
181 },
182 {
183 "description": "f16: Closest to -1/3",
184 "encoded": h'f9 b555',
185 "decoded": -0.333251953125,
186 },
187 {
188 "description": "f16: Largest number less than one",
189 "encoded": h'f9 3bff',
190 "decoded": 0.99951171875,
191 },
192 {
193 "description": "f16: Smallest number greater than -1",
194 "encoded": h'f9 bbff',
195 "decoded": -0.99951171875,
196 },
197 {
198 "description": "f16: Smallest number larger than one",
199 "encoded": h'f9 3c01',
200 "decoded": 1.0009765625,
201 },
202 {
203 "description": "f16: Largest number less than -1",
204 "encoded": h'f9 bc01',
205 "decoded": -1.0009765625,
206 },
207 {
208 "description": "f16: Largest odd number",
209 "encoded": h'f9 67ff',
210 "decoded": 2047.0,
211 "encodeOptions": {
212 "avoidInts": true,
213 },
214 },
215 {
216 "description": "f16: Smallest odd number",
217 "encoded": h'f9 e7ff',
218 "decoded": -2047.0,
219 "encodeOptions": {
220 "avoidInts": true,
221 },
222 },
223 {
224 "description": "f16: Closest value to pi",
225 "encoded": h'f9 4248',
226 "decoded": 3.140625,
227 },
228 {
229 "description": "f16: Closest value to -pi",
230 "encoded": h'f9 c248',
231 "decoded": -3.140625,
232 },
233 {
234 "description": "f16: Small positive",
235 "encoded": h'f9 4100',
236 "decoded": 2.5,
237 },
238 {
239 "description": "f16: Small negative",
240 "encoded": h'f9 c100',
241 "decoded": -2.5,
242 },
243
244 ## f32
245 {
246 "description": "f32: Min",
247 "encoded": h'fa ff7fffff',
248 "decoded": -3.4028234663852886e+38,
249 },
250 {
251 "description": "f32: Smallest subnormal",
252 "encoded": h'fa 00000001',
253 "decoded": 1.401298464324817e-45,
254 },
255 {
256 "description": "f32: Smallest subnormal, negative",
257 "encoded": h'fa 80000001',
258 "decoded": -1.401298464324817e-45,
259 },
260 {
261 "description": "f32: Largest subnormal",
262 "encoded": h'fa 007fffff',
263 "decoded": 1.1754942106924411e-38,
264 },
265 {
266 "description": "f32: Largest subnormal, negative",
267 "encoded": h'fa 807fffff',
268 "decoded": -1.1754942106924411e-38,
269 },
270 {
271 "description": "f32: Medium subnormal",
272 "encoded": h'fa 00001fff',
273 "decoded": 1.1478035721284577e-41,
274 },
275 {
276 "description": "f32: Medium subnormal, negative",
277 "encoded": h'fa 80001fff',
278 "decoded": -1.1478035721284577e-41,
279 },
280 {
281 "description": "f32: smallest positive normal number",
282 "encoded": h'fa 00800000',
283 "decoded": 1.1754943508222875e-38,
284 },
285 {
286 "description": "f32: largest negative normal number",
287 "encoded": h'fa 80800000',
288 "decoded": -1.1754943508222875e-38,
289 },
290 {
291 "description": "f32: largest number less than one",
292 "encoded": h'fa 3f7fffff',
293 "decoded": 0.9999999403953552,
294 },
295 {
296 "description": "f32: smallest number greater than -1",
297 "encoded": h'fa bf7fffff',
298 "decoded": -0.9999999403953552,
299 },
300 {
301 "description": "f32: one",
302 "roundtrip": false, # Not preferred encoding
303 "encoded": h'fa 3f800000',
304 "decoded": 1.0,
305 },
306 {
307 "description": "f32: -1",
308 "roundtrip": false, # Not preferred encoding
309 "encoded": h'fa bf800000',
310 "decoded": -1.0,
311 },
312 {
313 "description": "f32: smallest number larger than one",
314 "encoded": h'fa 3f800001',
315 "decoded": 1.0000001192092896,
316 },
317 {
318 "description": "f32: 0",
319 "roundtrip": false, # Not preferred encoding
320 "encoded": h'fa 00000000',
321 "decoded": 0.0,
322 },
323 {
324 "description": "f32: -0",
325 "roundtrip": false, # Not preferred encoding
326 "encoded": h'fa 80000000',
327 "decoded": -0.0,
328 },
329 {
330 "description": "f32: 1/3",
331 "encoded": h'fa 3eaaaaab',
332 "decoded": 0.3333333432674408,
333 },
334 {
335 "description": "f32: -1/3",
336 "encoded": h'fa beaaaaab',
337 "decoded": -0.3333333432674408,
338 },
339 {
340 "description": "f32: pi",
341 "encoded": h'fa 40490fdb',
342 "decoded": 3.1415927410125732,
343 },
344 {
345 "description": "f32: -pi",
346 "encoded": h'fa c0490fdb',
347 "decoded": -3.1415927410125732,
348 },
349
350
351 # f64
352 {
353 "description": "f64: Max",
354 "encoded": h'fb 7fefffffffffffff',
355 "decoded": 1.7976931348623157e+308,
356 },
357 {
358 "description": "f64: Min",
359 "encoded": h'fb ffefffffffffffff',
360 "decoded": -1.7976931348623157e+308,
361 },
362 {
363 "description": "f64: Min subnormal",
364 "encoded": h'fb 0000000000000001',
365 "decoded": 5e-324,
366 },
367 {
368 "description": "f64: Min subnormal, negative",
369 "encoded": h'fb 8000000000000001',
370 "decoded": -5e-324,
371 },
372 {
373 "description": "f64: Largest subnormal",
374 "encoded": h'fb 000FFFFFFFFFFFFF',
375 "decoded": 2.225073858507201e-308,
376 },
377 {
378 "description": "f64: Largest subnormal, negative",
379 "encoded": h'fb 800FFFFFFFFFFFFF',
380 "decoded": -2.225073858507201e-308,
381 },
382 {
383 "description": "f64: Smallest normal",
384 "encoded": h'fb 0010000000000000',
385 "decoded": 2.2250738585072014e-308,
386 },
387 {
388 "description": "f64: Smallest normal, negative",
389 "encoded": h'fb 8010000000000000',
390 "decoded": -2.2250738585072014e-308,
391 },
392 {
393 "description": "f64: 1/3",
394 "encoded": h'fb 3FD5555555555555',
395 "decoded": 0.3333333333333333,
396 },
397 {
398 "description": "f64: -1/3",
399 "encoded": h'fb BFD5555555555555',
400 "decoded": -0.3333333333333333,
401 },
402 {
403 "description": "f64: pi",
404 "encoded": h'fb 400921FB54442D18',
405 "decoded": 3.141592653589793,
406 },
407 {
408 "description": "f64: -pi",
409 "encoded": h'fb C00921FB54442D18',
410 "decoded": -3.141592653589793,
411 },
412
413 # Bigint
414 {
415 "description": "bigint: Positive",
416 "encoded": h'c2 49 1c0000000000000000',
417 "decoded": 0x1c0000000000000000,
418 },
419 {
420 "description": "bigint: Negative",
421 "encoded": h'c3 49 1c0000000000000000',
422 "decoded": -0x1c0000000000000001,
423 },
424
425 # UTF8 String
426 {
427 "description": "string: BOM",
428 "encoded": h'66 efbbbf424f4d',
429 "decoded": "\ufeffBOM",
430 },
431 {
432 "description": "string: combining",
433 "encoded": h'63 75cc88',
434 "decoded": "ü",
435 },
436 {
437 "description": "string: zalgo, length 1384",
438 "encoded": h'790568c6b8ccb7cd82cd8bccbfcd8acd98cc9bcc92cc95cc8dcc88ccbdcc8acc88cc8ccc83cda0cc84cd9bccbdcc88cc93cc87cc8ecd9fcd95ccbacc9ccc98cc9dcd9acd88cca9cca7cca4cd95cd99cd89cd96cd9cccadcc9ee1b8b3ccb7cc8ccc89cc80cd80ccbfcc83cc8dcd82cc90cc88cd90cc8ecc85cd98cc94cc86ccb2cd87ccaccca1cd9fcd8eccafccb3cca9cc9cea9cacccb4cda1cc84cd9ecc88cc83cc86cc80cc9acd8acd92cc87cd92cc94cc90cc89cc89cc91ccbecd8bcc84cc92cda0ccabcd89cca8e1b889ccb6ccbecc8ccc83cc94cd9bcd98cc8fcc8dcc8bcd86cda0cca8cca6cd9ccca9cca6ccabcd87ccbcccb0cd9fcca8cd9fcd9cccafccbccca4ccb9cd93cc9ecc97cc9fcc9fcc99cd9accb3ccb3cd9acc9fcca8c8a5ccb6ccbecc8ccc84cd82cd80cc8ccd92ccbecd82cc87cd9ecd90cd92cc88cc94cc8bcc89cc83cd97cd97cd98cc85cc90cc83cd90cc9acd91ccb1ccabcca7cd89ccbccca6cd88cca9ccb1cca8ccbccd8dccaecd8dcd87cd95e1b8a9ccb4cd8ccc8fcc86cc87cd8bcd81cc95cda0cc80cc87cc86cd9ecd98cc87cc89cc81cc84cd83cd9acd94ccbbcca5cd85cd8ecca5cc99cd9ccc9ecca6ccadccbccca8cca2cca1cd87ccb3ccaaccb3cc99ccb2cca2e1ba8accb4cd84cda0cd9dcd9bcc9acd92cc91cc92cc81cd9dcc87cd91cc8dcd9fcd96cca1cca3ccb0cc9eccaacca0cd88cd88ccaacca0ccbacca2cca7ccbbcd95ccb1ccbbccafcca5cd8dea9e8eccb7cc80cc83cc90cc91cd83cc93cd83cd92cc83cd90cda1ccbfcd9ecc95cc82cd98cc94cc88cd82cc8dcd97cca8cc9fcc9fccb2ccb1ccafccbbcd8eccb2cc96cc9dcd9ccd88ccbccd95cca8cca254ccb6cd83cc82cc94cc84cda0cc8bcc9acd97cc8ccd9dcc92cc83cc90cc8acc9bcc83cd86ccbdcc88cc94cca5cc9fccb0cd96cd8ecd8ecd94cd9fcd89cd94cc9ecca7cca7ccaecd89cd89cd94ccbacca9cd87cd88cd87cd8dcd89cd9accabcd93ccbae1b985ccb4cd81cc94cd9dcc92cd82cc95ccbfcc93cc8ccc95cd98cd82ccbdcc95cd83cc86cc9bcc94cc8dcd90cda0cd9ccd95cd87ccbccc9ecc9ccd96ccb3cd85ccb3cd8ecca2ccadccbbcd93ccb1e1bab0ccb8cd97cc95cc9acd8bcc82cc88cc86cd84cc94cd92cc81cc88cc8acc8ecc91cc94cd8accbecd8bcc85ccbecd98cc85cc8acc94cc8bcca5ccb9cca6ccafcd87cd9fcd9acca5cd89cd8dcd9fcd93ccafccbbcd87cca2ccb1ccadccb2cd89ccadcca4cd8dcca1cca3cc9cccb3cab2ccb8cd86cc90cc89cc83cc91ccacccbacc99cca6cc96ccbbcca8ccbbcca2ca89ccb4cd86cc8bcd86cd9ecd90cc81cd81cd8acc9bcda0cc84cc90cd9ecd8accbecca9cd96cd93ccb9ccb3cd8dccbccd89ccafcd8ecca5cd94cd85cc9dcca6cd8ecd93cca2c6bdccb7cd84cd86cc83cc95cd90cc92cc98cd93cc9dcca8cca4ccbcccafcd85ccafcd8dcd94cc9dcd87ccaccd9accaecca5ccb1ccbcccb1cca0ccadcc98cca3cc9dccbbcd9fccbccc97e1bbbcccb6cc94cd80cd92cd80cda0cc8fcc81cd9ecc92cd83cd92cd84cc9bcd92cd8ccd86cc8dcc94cc84cda1cd91cd83cd84cc8dcd97cda0cd80cca2cd88cd93cd8dcd93cca1cca4ccafcca1cca4ccaccca0ccb9cd9acc9ecc99ccbaccb1cca2cc9ccd95cca4cc99cca9ccb0cd8eccaee1b9bdccb7cc95cd92cc9acc81cd91cc90cda0cc97cca5cca9cd94cd87cca3cd99ccb1cc9ecca7cca6ccb2ccbbcc96cc9fccb3cc99ccaecca4cca2cca5cca3e1b8b8ccb6cc8ecd81cda1cc83cd91cd97cd8dcc9fcd88cc98ccb1ccb1cd8dcc9fcca9ccb3cd8eccbcccabcca0cd85cd8dcc96cd9acca0cd93cd9fcca4cca9cd8dccb9cc9fcca5ccbbcd9fc7b0ccb5cc83cd8cccbecc8acd8bcd89cd85ccaacd89ccb1cca0cd88cca2ccaccd9ccd8dccadccaaccb9cca6ccb1cca0cca1cd88',
439 "decoded": "Ƹ̷̧̛͕̺̜̘̝͚͈̩̤͕͙͉͖̭̞͂͋̿͊̒̍̈̽̊̈̌̃̄͛̽̈̓̇̎͘̕͟͜͠ḳ̷̡̲͇̬͎̯̳̩̜̌̉̀̀̿̃̍͂̐̈͐̎̅̔̆͘͟Ꜭ̴̨̫͉̄̈̃̆̀͊͒̇͒̔̐̉̉̑̾͋̄̒̚͡͞͠ḉ̶̨̨̨̦̩̦̫͇̼̰̯̼̤̹͓̞̗̟̟̙͚̳̳͚̟̾̌̃̔͛̏̍̋͆͘͜͟͟͜͠ȥ̶̧̨̱̫͉̼̦͈̩̱̼͍̮͍͇͕̾̌̄͂̀̌͒̾͂̇͐͒̈̔̋̉̃͗͗̅̐̃͐͑͘̚͞ḩ̴̨̢̡̢͚͔̻̥͎̥̙̞̦̭̼͇̳̪̳̙̲͌̏̆̇͋́̀̇̆̇̉́̄̓̕͘͜͠͞ͅẊ̴̡̢̧͖̣̰̞̪̠͈͈̪̠̺̻͕̱̻̯̥͍̈́͛͒̑̒́̇͑̍̚͟͠͝͝ꞎ̷̨̨̢̟̟̲̱̯̻͎̲̖̝͈̼͕̀̃̐̑̓̓̓͒̃͐̿̂̔̈͂̍͗̕͘͜͡͞Ţ̶̧̛̥̟̰͖͎͎͔͉͔̞̮͉͉͔̺̩͇͈͇͍͉͚̫͓̺̓̂̔̄̋͗̌̒̃̐̊̃͆̽̈̔̚͟͠͝ṅ̴̢̛͕͇̼̞̜͖̳̳͎̭̻͓̱́̔̒͂̿̓̌͂̽̓̆̔̍͐̕̕͘̕͜͝͠ͅḀ̸̢̡̹̦̯͇͚̥͉͍͓̯̻͇̱̭̲͉̭̤͍̣̜̳̆̀͗͋̂̈̆̈́̔͒́̈̊̎̑̔͊̾͋̅̾̅̊̔̋̕̚͘͟͟ʲ̸̨̢̬̺̙̦̖̻̻͆̐̉̃̑ʉ̴̢̛̩͖͓̹̳͍̼͉̯͎̥͔̝̦͎͓͆̋͆͐́́͊̄̐͊̾͞͠͞ͅƽ̷̨̘͓̝̤̼̯̯͍͔̝͇̬͚̮̥̱̼̱̠̭̘̣̝̻̼̗̈́͆̃͐̒̕͟ͅỼ̶̢̡̡̢̛͈͓͍͓̤̯̤̬̠̹͚̞̙̺̱̜͕̤̙̩̰͎̮̔̀͒̀̏́̒̓͒̈́͒͌͆̍̔̄͑̓̈́̍͗̀͠͞͡͠ṽ̷̧̢̗̥̩͔͇̣͙̱̞̦̲̻̖̟̳̙̮̤̥̣͒́͑̐̕̚͠Ḹ̶͍̟͈̘̱̱͍̟̩̳͎̼̫̠͍̖͚̠͓̤̩͍̹̟̥̻̎́̃͑͗͟͟͡ͅǰ̵̢̡͉̪͉̱̠͈̬͍̭̪̹̦̱̠͈̃͌̾̊͋͜ͅ",
440 },
441
442 # Date
443 {
444 "description": "Date: 0 epoch",
445 "encoded": h'c100',
446 "decoded": 1(0),
447 },
448 {
449 "description": "Date: 1 epoch",
450 "encoded": h'c101',
451 "decoded": 1(1),
452 },
453 {
454 "description": "Date: -1 epoch",
455 "encoded": h'c120',
456 "decoded": 1(-1),
457 },
458
459 # TODO: Large tag numbers, which have been reserved by IANA
460
461 # Map
462 {
463 "description": "Map: -0 key",
464 "roundtrip": false, # JS Map converts -0 to 0 in map key
465 "encoded": h'a1f9800080',
466 "decoded": {
467 -0.0: [],
468 },
469 },
470 {
471 "description": "Map: interesting keys",
472 "roundtrip": false,
473 "encoded": h'b81a808081008081808081810080f580f480f680f7800080613080fb3fb999999999999a8001802080f97c0080f9fc0080f97e0080c2491c000000000000000080a080a1808080a1a08080a1a18080808040804100806080616180c10080',
474 "decoded": {
475 []: [],
476 [0]: [],
477 [[]]: [],
478 [[0]]: [],
479 true: [],
480 false: [],
481 null: [],
482 undefined: [],
483 0: [],
484 "0": [],
485 0.1: [],
486 1: [],
487 -1: [],
488 Infinity: [],
489 -Infinity: [],
490 NaN: [],
491 0x1c0000000000000000: [],
492 {}: [],
493 {[]: []}: [],
494 {{}: []}: [],
495 {{[]: []}: []}: [],
496 h'': [],
497 h'00': [],
498 "": [],
499 "a": [],
500 1(0): []
501 },
502 },
503 {
504 "description": "array: deeply-nested",
505 "encoded": h'8181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818181818100',
506 "decoded": [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],
507 },
508 {
509 "description": "map: deeply-nested key",
510 "encoded": h'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
511 "decoded": {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{0: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0}: 0},
512 },
513 {
514 "description": "map: deeply-nested value",
515 "encoded": h'a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a100a10000',
516 "decoded": {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: {0: 0}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
517 },
518
519 # JS edge cases
520 {
521 "description": "JS: __proto__ should be escaped (security)",
522 "encoded": h'a1695f5f70726f746f5f5f00',
523 "decoded": {"__proto__": 0},
524 }
525 ],
526}
527