| 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 | |