master
1// This file was generated by _generate_JSONTestSuite.zig
2// These test cases are sourced from: https://github.com/nst/JSONTestSuite
3const ok = @import("./test.zig").ok;
4const err = @import("./test.zig").err;
5const any = @import("./test.zig").any;
6
7test "i_number_double_huge_neg_exp.json" {
8 try any("[123.456e-789]");
9}
10test "i_number_huge_exp.json" {
11 try any("[0.4e00669999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999969999999006]");
12}
13test "i_number_neg_int_huge_exp.json" {
14 try any("[-1e+9999]");
15}
16test "i_number_pos_double_huge_exp.json" {
17 try any("[1.5e+9999]");
18}
19test "i_number_real_neg_overflow.json" {
20 try any("[-123123e100000]");
21}
22test "i_number_real_pos_overflow.json" {
23 try any("[123123e100000]");
24}
25test "i_number_real_underflow.json" {
26 try any("[123e-10000000]");
27}
28test "i_number_too_big_neg_int.json" {
29 try any("[-123123123123123123123123123123]");
30}
31test "i_number_too_big_pos_int.json" {
32 try any("[100000000000000000000]");
33}
34test "i_number_very_big_negative_int.json" {
35 try any("[-237462374673276894279832749832423479823246327846]");
36}
37test "i_object_key_lone_2nd_surrogate.json" {
38 try any("{\"\\uDFAA\":0}");
39}
40test "i_string_1st_surrogate_but_2nd_missing.json" {
41 try any("[\"\\uDADA\"]");
42}
43test "i_string_1st_valid_surrogate_2nd_invalid.json" {
44 try any("[\"\\uD888\\u1234\"]");
45}
46test "i_string_UTF-16LE_with_BOM.json" {
47 try any("\xff\xfe[\x00\"\x00\xe9\x00\"\x00]\x00");
48}
49test "i_string_UTF-8_invalid_sequence.json" {
50 try any("[\"\xe6\x97\xa5\xd1\x88\xfa\"]");
51}
52test "i_string_UTF8_surrogate_U+D800.json" {
53 try any("[\"\xed\xa0\x80\"]");
54}
55test "i_string_incomplete_surrogate_and_escape_valid.json" {
56 try any("[\"\\uD800\\n\"]");
57}
58test "i_string_incomplete_surrogate_pair.json" {
59 try any("[\"\\uDd1ea\"]");
60}
61test "i_string_incomplete_surrogates_escape_valid.json" {
62 try any("[\"\\uD800\\uD800\\n\"]");
63}
64test "i_string_invalid_lonely_surrogate.json" {
65 try any("[\"\\ud800\"]");
66}
67test "i_string_invalid_surrogate.json" {
68 try any("[\"\\ud800abc\"]");
69}
70test "i_string_invalid_utf-8.json" {
71 try any("[\"\xff\"]");
72}
73test "i_string_inverted_surrogates_U+1D11E.json" {
74 try any("[\"\\uDd1e\\uD834\"]");
75}
76test "i_string_iso_latin_1.json" {
77 try any("[\"\xe9\"]");
78}
79test "i_string_lone_second_surrogate.json" {
80 try any("[\"\\uDFAA\"]");
81}
82test "i_string_lone_utf8_continuation_byte.json" {
83 try any("[\"\x81\"]");
84}
85test "i_string_not_in_unicode_range.json" {
86 try any("[\"\xf4\xbf\xbf\xbf\"]");
87}
88test "i_string_overlong_sequence_2_bytes.json" {
89 try any("[\"\xc0\xaf\"]");
90}
91test "i_string_overlong_sequence_6_bytes.json" {
92 try any("[\"\xfc\x83\xbf\xbf\xbf\xbf\"]");
93}
94test "i_string_overlong_sequence_6_bytes_null.json" {
95 try any("[\"\xfc\x80\x80\x80\x80\x80\"]");
96}
97test "i_string_truncated-utf-8.json" {
98 try any("[\"\xe0\xff\"]");
99}
100test "i_string_utf16BE_no_BOM.json" {
101 try any("\x00[\x00\"\x00\xe9\x00\"\x00]");
102}
103test "i_string_utf16LE_no_BOM.json" {
104 try any("[\x00\"\x00\xe9\x00\"\x00]\x00");
105}
106test "i_structure_500_nested_arrays.json" {
107 try any("[" ** 500 ++ "]" ** 500);
108}
109test "i_structure_UTF-8_BOM_empty_object.json" {
110 try any("\xef\xbb\xbf{}");
111}
112test "n_array_1_true_without_comma.json" {
113 try err("[1 true]");
114}
115test "n_array_a_invalid_utf8.json" {
116 try err("[a\xe5]");
117}
118test "n_array_colon_instead_of_comma.json" {
119 try err("[\"\": 1]");
120}
121test "n_array_comma_after_close.json" {
122 try err("[\"\"],");
123}
124test "n_array_comma_and_number.json" {
125 try err("[,1]");
126}
127test "n_array_double_comma.json" {
128 try err("[1,,2]");
129}
130test "n_array_double_extra_comma.json" {
131 try err("[\"x\",,]");
132}
133test "n_array_extra_close.json" {
134 try err("[\"x\"]]");
135}
136test "n_array_extra_comma.json" {
137 try err("[\"\",]");
138}
139test "n_array_incomplete.json" {
140 try err("[\"x\"");
141}
142test "n_array_incomplete_invalid_value.json" {
143 try err("[x");
144}
145test "n_array_inner_array_no_comma.json" {
146 try err("[3[4]]");
147}
148test "n_array_invalid_utf8.json" {
149 try err("[\xff]");
150}
151test "n_array_items_separated_by_semicolon.json" {
152 try err("[1:2]");
153}
154test "n_array_just_comma.json" {
155 try err("[,]");
156}
157test "n_array_just_minus.json" {
158 try err("[-]");
159}
160test "n_array_missing_value.json" {
161 try err("[ , \"\"]");
162}
163test "n_array_newlines_unclosed.json" {
164 try err("[\"a\",\n4\n,1,");
165}
166test "n_array_number_and_comma.json" {
167 try err("[1,]");
168}
169test "n_array_number_and_several_commas.json" {
170 try err("[1,,]");
171}
172test "n_array_spaces_vertical_tab_formfeed.json" {
173 try err("[\"\x0ba\"\\f]");
174}
175test "n_array_star_inside.json" {
176 try err("[*]");
177}
178test "n_array_unclosed.json" {
179 try err("[\"\"");
180}
181test "n_array_unclosed_trailing_comma.json" {
182 try err("[1,");
183}
184test "n_array_unclosed_with_new_lines.json" {
185 try err("[1,\n1\n,1");
186}
187test "n_array_unclosed_with_object_inside.json" {
188 try err("[{}");
189}
190test "n_incomplete_false.json" {
191 try err("[fals]");
192}
193test "n_incomplete_null.json" {
194 try err("[nul]");
195}
196test "n_incomplete_true.json" {
197 try err("[tru]");
198}
199test "n_multidigit_number_then_00.json" {
200 try err("123\x00");
201}
202test "n_number_++.json" {
203 try err("[++1234]");
204}
205test "n_number_+1.json" {
206 try err("[+1]");
207}
208test "n_number_+Inf.json" {
209 try err("[+Inf]");
210}
211test "n_number_-01.json" {
212 try err("[-01]");
213}
214test "n_number_-1.0..json" {
215 try err("[-1.0.]");
216}
217test "n_number_-2..json" {
218 try err("[-2.]");
219}
220test "n_number_-NaN.json" {
221 try err("[-NaN]");
222}
223test "n_number_.-1.json" {
224 try err("[.-1]");
225}
226test "n_number_.2e-3.json" {
227 try err("[.2e-3]");
228}
229test "n_number_0.1.2.json" {
230 try err("[0.1.2]");
231}
232test "n_number_0.3e+.json" {
233 try err("[0.3e+]");
234}
235test "n_number_0.3e.json" {
236 try err("[0.3e]");
237}
238test "n_number_0.e1.json" {
239 try err("[0.e1]");
240}
241test "n_number_0_capital_E+.json" {
242 try err("[0E+]");
243}
244test "n_number_0_capital_E.json" {
245 try err("[0E]");
246}
247test "n_number_0e+.json" {
248 try err("[0e+]");
249}
250test "n_number_0e.json" {
251 try err("[0e]");
252}
253test "n_number_1.0e+.json" {
254 try err("[1.0e+]");
255}
256test "n_number_1.0e-.json" {
257 try err("[1.0e-]");
258}
259test "n_number_1.0e.json" {
260 try err("[1.0e]");
261}
262test "n_number_1_000.json" {
263 try err("[1 000.0]");
264}
265test "n_number_1eE2.json" {
266 try err("[1eE2]");
267}
268test "n_number_2.e+3.json" {
269 try err("[2.e+3]");
270}
271test "n_number_2.e-3.json" {
272 try err("[2.e-3]");
273}
274test "n_number_2.e3.json" {
275 try err("[2.e3]");
276}
277test "n_number_9.e+.json" {
278 try err("[9.e+]");
279}
280test "n_number_Inf.json" {
281 try err("[Inf]");
282}
283test "n_number_NaN.json" {
284 try err("[NaN]");
285}
286test "n_number_U+FF11_fullwidth_digit_one.json" {
287 try err("[\xef\xbc\x91]");
288}
289test "n_number_expression.json" {
290 try err("[1+2]");
291}
292test "n_number_hex_1_digit.json" {
293 try err("[0x1]");
294}
295test "n_number_hex_2_digits.json" {
296 try err("[0x42]");
297}
298test "n_number_infinity.json" {
299 try err("[Infinity]");
300}
301test "n_number_invalid+-.json" {
302 try err("[0e+-1]");
303}
304test "n_number_invalid-negative-real.json" {
305 try err("[-123.123foo]");
306}
307test "n_number_invalid-utf-8-in-bigger-int.json" {
308 try err("[123\xe5]");
309}
310test "n_number_invalid-utf-8-in-exponent.json" {
311 try err("[1e1\xe5]");
312}
313test "n_number_invalid-utf-8-in-int.json" {
314 try err("[0\xe5]\n");
315}
316test "n_number_minus_infinity.json" {
317 try err("[-Infinity]");
318}
319test "n_number_minus_sign_with_trailing_garbage.json" {
320 try err("[-foo]");
321}
322test "n_number_minus_space_1.json" {
323 try err("[- 1]");
324}
325test "n_number_neg_int_starting_with_zero.json" {
326 try err("[-012]");
327}
328test "n_number_neg_real_without_int_part.json" {
329 try err("[-.123]");
330}
331test "n_number_neg_with_garbage_at_end.json" {
332 try err("[-1x]");
333}
334test "n_number_real_garbage_after_e.json" {
335 try err("[1ea]");
336}
337test "n_number_real_with_invalid_utf8_after_e.json" {
338 try err("[1e\xe5]");
339}
340test "n_number_real_without_fractional_part.json" {
341 try err("[1.]");
342}
343test "n_number_starting_with_dot.json" {
344 try err("[.123]");
345}
346test "n_number_with_alpha.json" {
347 try err("[1.2a-3]");
348}
349test "n_number_with_alpha_char.json" {
350 try err("[1.8011670033376514H-308]");
351}
352test "n_number_with_leading_zero.json" {
353 try err("[012]");
354}
355test "n_object_bad_value.json" {
356 try err("[\"x\", truth]");
357}
358test "n_object_bracket_key.json" {
359 try err("{[: \"x\"}\n");
360}
361test "n_object_comma_instead_of_colon.json" {
362 try err("{\"x\", null}");
363}
364test "n_object_double_colon.json" {
365 try err("{\"x\"::\"b\"}");
366}
367test "n_object_emoji.json" {
368 try err("{\xf0\x9f\x87\xa8\xf0\x9f\x87\xad}");
369}
370test "n_object_garbage_at_end.json" {
371 try err("{\"a\":\"a\" 123}");
372}
373test "n_object_key_with_single_quotes.json" {
374 try err("{key: 'value'}");
375}
376test "n_object_lone_continuation_byte_in_key_and_trailing_comma.json" {
377 try err("{\"\xb9\":\"0\",}");
378}
379test "n_object_missing_colon.json" {
380 try err("{\"a\" b}");
381}
382test "n_object_missing_key.json" {
383 try err("{:\"b\"}");
384}
385test "n_object_missing_semicolon.json" {
386 try err("{\"a\" \"b\"}");
387}
388test "n_object_missing_value.json" {
389 try err("{\"a\":");
390}
391test "n_object_no-colon.json" {
392 try err("{\"a\"");
393}
394test "n_object_non_string_key.json" {
395 try err("{1:1}");
396}
397test "n_object_non_string_key_but_huge_number_instead.json" {
398 try err("{9999E9999:1}");
399}
400test "n_object_repeated_null_null.json" {
401 try err("{null:null,null:null}");
402}
403test "n_object_several_trailing_commas.json" {
404 try err("{\"id\":0,,,,,}");
405}
406test "n_object_single_quote.json" {
407 try err("{'a':0}");
408}
409test "n_object_trailing_comma.json" {
410 try err("{\"id\":0,}");
411}
412test "n_object_trailing_comment.json" {
413 try err("{\"a\":\"b\"}/**/");
414}
415test "n_object_trailing_comment_open.json" {
416 try err("{\"a\":\"b\"}/**//");
417}
418test "n_object_trailing_comment_slash_open.json" {
419 try err("{\"a\":\"b\"}//");
420}
421test "n_object_trailing_comment_slash_open_incomplete.json" {
422 try err("{\"a\":\"b\"}/");
423}
424test "n_object_two_commas_in_a_row.json" {
425 try err("{\"a\":\"b\",,\"c\":\"d\"}");
426}
427test "n_object_unquoted_key.json" {
428 try err("{a: \"b\"}");
429}
430test "n_object_unterminated-value.json" {
431 try err("{\"a\":\"a");
432}
433test "n_object_with_single_string.json" {
434 try err("{ \"foo\" : \"bar\", \"a\" }");
435}
436test "n_object_with_trailing_garbage.json" {
437 try err("{\"a\":\"b\"}#");
438}
439test "n_single_space.json" {
440 try err(" ");
441}
442test "n_string_1_surrogate_then_escape.json" {
443 try err("[\"\\uD800\\\"]");
444}
445test "n_string_1_surrogate_then_escape_u.json" {
446 try err("[\"\\uD800\\u\"]");
447}
448test "n_string_1_surrogate_then_escape_u1.json" {
449 try err("[\"\\uD800\\u1\"]");
450}
451test "n_string_1_surrogate_then_escape_u1x.json" {
452 try err("[\"\\uD800\\u1x\"]");
453}
454test "n_string_accentuated_char_no_quotes.json" {
455 try err("[\xc3\xa9]");
456}
457test "n_string_backslash_00.json" {
458 try err("[\"\\\x00\"]");
459}
460test "n_string_escape_x.json" {
461 try err("[\"\\x00\"]");
462}
463test "n_string_escaped_backslash_bad.json" {
464 try err("[\"\\\\\\\"]");
465}
466test "n_string_escaped_ctrl_char_tab.json" {
467 try err("[\"\\\x09\"]");
468}
469test "n_string_escaped_emoji.json" {
470 try err("[\"\\\xf0\x9f\x8c\x80\"]");
471}
472test "n_string_incomplete_escape.json" {
473 try err("[\"\\\"]");
474}
475test "n_string_incomplete_escaped_character.json" {
476 try err("[\"\\u00A\"]");
477}
478test "n_string_incomplete_surrogate.json" {
479 try err("[\"\\uD834\\uDd\"]");
480}
481test "n_string_incomplete_surrogate_escape_invalid.json" {
482 try err("[\"\\uD800\\uD800\\x\"]");
483}
484test "n_string_invalid-utf-8-in-escape.json" {
485 try err("[\"\\u\xe5\"]");
486}
487test "n_string_invalid_backslash_esc.json" {
488 try err("[\"\\a\"]");
489}
490test "n_string_invalid_unicode_escape.json" {
491 try err("[\"\\uqqqq\"]");
492}
493test "n_string_invalid_utf8_after_escape.json" {
494 try err("[\"\\\xe5\"]");
495}
496test "n_string_leading_uescaped_thinspace.json" {
497 try err("[\\u0020\"asd\"]");
498}
499test "n_string_no_quotes_with_bad_escape.json" {
500 try err("[\\n]");
501}
502test "n_string_single_doublequote.json" {
503 try err("\"");
504}
505test "n_string_single_quote.json" {
506 try err("['single quote']");
507}
508test "n_string_single_string_no_double_quotes.json" {
509 try err("abc");
510}
511test "n_string_start_escape_unclosed.json" {
512 try err("[\"\\");
513}
514test "n_string_unescaped_ctrl_char.json" {
515 try err("[\"a\x00a\"]");
516}
517test "n_string_unescaped_newline.json" {
518 try err("[\"new\nline\"]");
519}
520test "n_string_unescaped_tab.json" {
521 try err("[\"\x09\"]");
522}
523test "n_string_unicode_CapitalU.json" {
524 try err("\"\\UA66D\"");
525}
526test "n_string_with_trailing_garbage.json" {
527 try err("\"\"x");
528}
529test "n_structure_100000_opening_arrays.json" {
530 try err("[" ** 100000);
531}
532test "n_structure_U+2060_word_joined.json" {
533 try err("[\xe2\x81\xa0]");
534}
535test "n_structure_UTF8_BOM_no_data.json" {
536 try err("\xef\xbb\xbf");
537}
538test "n_structure_angle_bracket_..json" {
539 try err("<.>");
540}
541test "n_structure_angle_bracket_null.json" {
542 try err("[<null>]");
543}
544test "n_structure_array_trailing_garbage.json" {
545 try err("[1]x");
546}
547test "n_structure_array_with_extra_array_close.json" {
548 try err("[1]]");
549}
550test "n_structure_array_with_unclosed_string.json" {
551 try err("[\"asd]");
552}
553test "n_structure_ascii-unicode-identifier.json" {
554 try err("a\xc3\xa5");
555}
556test "n_structure_capitalized_True.json" {
557 try err("[True]");
558}
559test "n_structure_close_unopened_array.json" {
560 try err("1]");
561}
562test "n_structure_comma_instead_of_closing_brace.json" {
563 try err("{\"x\": true,");
564}
565test "n_structure_double_array.json" {
566 try err("[][]");
567}
568test "n_structure_end_array.json" {
569 try err("]");
570}
571test "n_structure_incomplete_UTF8_BOM.json" {
572 try err("\xef\xbb{}");
573}
574test "n_structure_lone-invalid-utf-8.json" {
575 try err("\xe5");
576}
577test "n_structure_lone-open-bracket.json" {
578 try err("[");
579}
580test "n_structure_no_data.json" {
581 try err("");
582}
583test "n_structure_null-byte-outside-string.json" {
584 try err("[\x00]");
585}
586test "n_structure_number_with_trailing_garbage.json" {
587 try err("2@");
588}
589test "n_structure_object_followed_by_closing_object.json" {
590 try err("{}}");
591}
592test "n_structure_object_unclosed_no_value.json" {
593 try err("{\"\":");
594}
595test "n_structure_object_with_comment.json" {
596 try err("{\"a\":/*comment*/\"b\"}");
597}
598test "n_structure_object_with_trailing_garbage.json" {
599 try err("{\"a\": true} \"x\"");
600}
601test "n_structure_open_array_apostrophe.json" {
602 try err("['");
603}
604test "n_structure_open_array_comma.json" {
605 try err("[,");
606}
607test "n_structure_open_array_object.json" {
608 try err("[{\"\":" ** 50000 ++ "\n");
609}
610test "n_structure_open_array_open_object.json" {
611 try err("[{");
612}
613test "n_structure_open_array_open_string.json" {
614 try err("[\"a");
615}
616test "n_structure_open_array_string.json" {
617 try err("[\"a\"");
618}
619test "n_structure_open_object.json" {
620 try err("{");
621}
622test "n_structure_open_object_close_array.json" {
623 try err("{]");
624}
625test "n_structure_open_object_comma.json" {
626 try err("{,");
627}
628test "n_structure_open_object_open_array.json" {
629 try err("{[");
630}
631test "n_structure_open_object_open_string.json" {
632 try err("{\"a");
633}
634test "n_structure_open_object_string_with_apostrophes.json" {
635 try err("{'a'");
636}
637test "n_structure_open_open.json" {
638 try err("[\"\\{[\"\\{[\"\\{[\"\\{");
639}
640test "n_structure_single_eacute.json" {
641 try err("\xe9");
642}
643test "n_structure_single_star.json" {
644 try err("*");
645}
646test "n_structure_trailing_#.json" {
647 try err("{\"a\":\"b\"}#{}");
648}
649test "n_structure_uescaped_LF_before_string.json" {
650 try err("[\\u000A\"\"]");
651}
652test "n_structure_unclosed_array.json" {
653 try err("[1");
654}
655test "n_structure_unclosed_array_partial_null.json" {
656 try err("[ false, nul");
657}
658test "n_structure_unclosed_array_unfinished_false.json" {
659 try err("[ true, fals");
660}
661test "n_structure_unclosed_array_unfinished_true.json" {
662 try err("[ false, tru");
663}
664test "n_structure_unclosed_object.json" {
665 try err("{\"asd\":\"asd\"");
666}
667test "n_structure_unicode-identifier.json" {
668 try err("\xc3\xa5");
669}
670test "n_structure_whitespace_U+2060_word_joiner.json" {
671 try err("[\xe2\x81\xa0]");
672}
673test "n_structure_whitespace_formfeed.json" {
674 try err("[\x0c]");
675}
676test "y_array_arraysWithSpaces.json" {
677 try ok("[[] ]");
678}
679test "y_array_empty-string.json" {
680 try ok("[\"\"]");
681}
682test "y_array_empty.json" {
683 try ok("[]");
684}
685test "y_array_ending_with_newline.json" {
686 try ok("[\"a\"]");
687}
688test "y_array_false.json" {
689 try ok("[false]");
690}
691test "y_array_heterogeneous.json" {
692 try ok("[null, 1, \"1\", {}]");
693}
694test "y_array_null.json" {
695 try ok("[null]");
696}
697test "y_array_with_1_and_newline.json" {
698 try ok("[1\n]");
699}
700test "y_array_with_leading_space.json" {
701 try ok(" [1]");
702}
703test "y_array_with_several_null.json" {
704 try ok("[1,null,null,null,2]");
705}
706test "y_array_with_trailing_space.json" {
707 try ok("[2] ");
708}
709test "y_number.json" {
710 try ok("[123e65]");
711}
712test "y_number_0e+1.json" {
713 try ok("[0e+1]");
714}
715test "y_number_0e1.json" {
716 try ok("[0e1]");
717}
718test "y_number_after_space.json" {
719 try ok("[ 4]");
720}
721test "y_number_double_close_to_zero.json" {
722 try ok("[-0.000000000000000000000000000000000000000000000000000000000000000000000000000001]\n");
723}
724test "y_number_int_with_exp.json" {
725 try ok("[20e1]");
726}
727test "y_number_minus_zero.json" {
728 try ok("[-0]");
729}
730test "y_number_negative_int.json" {
731 try ok("[-123]");
732}
733test "y_number_negative_one.json" {
734 try ok("[-1]");
735}
736test "y_number_negative_zero.json" {
737 try ok("[-0]");
738}
739test "y_number_real_capital_e.json" {
740 try ok("[1E22]");
741}
742test "y_number_real_capital_e_neg_exp.json" {
743 try ok("[1E-2]");
744}
745test "y_number_real_capital_e_pos_exp.json" {
746 try ok("[1E+2]");
747}
748test "y_number_real_exponent.json" {
749 try ok("[123e45]");
750}
751test "y_number_real_fraction_exponent.json" {
752 try ok("[123.456e78]");
753}
754test "y_number_real_neg_exp.json" {
755 try ok("[1e-2]");
756}
757test "y_number_real_pos_exponent.json" {
758 try ok("[1e+2]");
759}
760test "y_number_simple_int.json" {
761 try ok("[123]");
762}
763test "y_number_simple_real.json" {
764 try ok("[123.456789]");
765}
766test "y_object.json" {
767 try ok("{\"asd\":\"sdf\", \"dfg\":\"fgh\"}");
768}
769test "y_object_basic.json" {
770 try ok("{\"asd\":\"sdf\"}");
771}
772test "y_object_duplicated_key.json" {
773 try ok("{\"a\":\"b\",\"a\":\"c\"}");
774}
775test "y_object_duplicated_key_and_value.json" {
776 try ok("{\"a\":\"b\",\"a\":\"b\"}");
777}
778test "y_object_empty.json" {
779 try ok("{}");
780}
781test "y_object_empty_key.json" {
782 try ok("{\"\":0}");
783}
784test "y_object_escaped_null_in_key.json" {
785 try ok("{\"foo\\u0000bar\": 42}");
786}
787test "y_object_extreme_numbers.json" {
788 try ok("{ \"min\": -1.0e+28, \"max\": 1.0e+28 }");
789}
790test "y_object_long_strings.json" {
791 try ok("{\"x\":[{\"id\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"}], \"id\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"}");
792}
793test "y_object_simple.json" {
794 try ok("{\"a\":[]}");
795}
796test "y_object_string_unicode.json" {
797 try ok("{\"title\":\"\\u041f\\u043e\\u043b\\u0442\\u043e\\u0440\\u0430 \\u0417\\u0435\\u043c\\u043b\\u0435\\u043a\\u043e\\u043f\\u0430\" }");
798}
799test "y_object_with_newlines.json" {
800 try ok("{\n\"a\": \"b\"\n}");
801}
802test "y_string_1_2_3_bytes_UTF-8_sequences.json" {
803 try ok("[\"\\u0060\\u012a\\u12AB\"]");
804}
805test "y_string_accepted_surrogate_pair.json" {
806 try ok("[\"\\uD801\\udc37\"]");
807}
808test "y_string_accepted_surrogate_pairs.json" {
809 try ok("[\"\\ud83d\\ude39\\ud83d\\udc8d\"]");
810}
811test "y_string_allowed_escapes.json" {
812 try ok("[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]");
813}
814test "y_string_backslash_and_u_escaped_zero.json" {
815 try ok("[\"\\\\u0000\"]");
816}
817test "y_string_backslash_doublequotes.json" {
818 try ok("[\"\\\"\"]");
819}
820test "y_string_comments.json" {
821 try ok("[\"a/*b*/c/*d//e\"]");
822}
823test "y_string_double_escape_a.json" {
824 try ok("[\"\\\\a\"]");
825}
826test "y_string_double_escape_n.json" {
827 try ok("[\"\\\\n\"]");
828}
829test "y_string_escaped_control_character.json" {
830 try ok("[\"\\u0012\"]");
831}
832test "y_string_escaped_noncharacter.json" {
833 try ok("[\"\\uFFFF\"]");
834}
835test "y_string_in_array.json" {
836 try ok("[\"asd\"]");
837}
838test "y_string_in_array_with_leading_space.json" {
839 try ok("[ \"asd\"]");
840}
841test "y_string_last_surrogates_1_and_2.json" {
842 try ok("[\"\\uDBFF\\uDFFF\"]");
843}
844test "y_string_nbsp_uescaped.json" {
845 try ok("[\"new\\u00A0line\"]");
846}
847test "y_string_nonCharacterInUTF-8_U+10FFFF.json" {
848 try ok("[\"\xf4\x8f\xbf\xbf\"]");
849}
850test "y_string_nonCharacterInUTF-8_U+FFFF.json" {
851 try ok("[\"\xef\xbf\xbf\"]");
852}
853test "y_string_null_escape.json" {
854 try ok("[\"\\u0000\"]");
855}
856test "y_string_one-byte-utf-8.json" {
857 try ok("[\"\\u002c\"]");
858}
859test "y_string_pi.json" {
860 try ok("[\"\xcf\x80\"]");
861}
862test "y_string_reservedCharacterInUTF-8_U+1BFFF.json" {
863 try ok("[\"\xf0\x9b\xbf\xbf\"]");
864}
865test "y_string_simple_ascii.json" {
866 try ok("[\"asd \"]");
867}
868test "y_string_space.json" {
869 try ok("\" \"");
870}
871test "y_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json" {
872 try ok("[\"\\uD834\\uDd1e\"]");
873}
874test "y_string_three-byte-utf-8.json" {
875 try ok("[\"\\u0821\"]");
876}
877test "y_string_two-byte-utf-8.json" {
878 try ok("[\"\\u0123\"]");
879}
880test "y_string_u+2028_line_sep.json" {
881 try ok("[\"\xe2\x80\xa8\"]");
882}
883test "y_string_u+2029_par_sep.json" {
884 try ok("[\"\xe2\x80\xa9\"]");
885}
886test "y_string_uEscape.json" {
887 try ok("[\"\\u0061\\u30af\\u30EA\\u30b9\"]");
888}
889test "y_string_uescaped_newline.json" {
890 try ok("[\"new\\u000Aline\"]");
891}
892test "y_string_unescaped_char_delete.json" {
893 try ok("[\"\x7f\"]");
894}
895test "y_string_unicode.json" {
896 try ok("[\"\\uA66D\"]");
897}
898test "y_string_unicodeEscapedBackslash.json" {
899 try ok("[\"\\u005C\"]");
900}
901test "y_string_unicode_2.json" {
902 try ok("[\"\xe2\x8d\x82\xe3\x88\xb4\xe2\x8d\x82\"]");
903}
904test "y_string_unicode_U+10FFFE_nonchar.json" {
905 try ok("[\"\\uDBFF\\uDFFE\"]");
906}
907test "y_string_unicode_U+1FFFE_nonchar.json" {
908 try ok("[\"\\uD83F\\uDFFE\"]");
909}
910test "y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json" {
911 try ok("[\"\\u200B\"]");
912}
913test "y_string_unicode_U+2064_invisible_plus.json" {
914 try ok("[\"\\u2064\"]");
915}
916test "y_string_unicode_U+FDD0_nonchar.json" {
917 try ok("[\"\\uFDD0\"]");
918}
919test "y_string_unicode_U+FFFE_nonchar.json" {
920 try ok("[\"\\uFFFE\"]");
921}
922test "y_string_unicode_escaped_double_quote.json" {
923 try ok("[\"\\u0022\"]");
924}
925test "y_string_utf8.json" {
926 try ok("[\"\xe2\x82\xac\xf0\x9d\x84\x9e\"]");
927}
928test "y_string_with_del_character.json" {
929 try ok("[\"a\x7fa\"]");
930}
931test "y_structure_lonely_false.json" {
932 try ok("false");
933}
934test "y_structure_lonely_int.json" {
935 try ok("42");
936}
937test "y_structure_lonely_negative_real.json" {
938 try ok("-0.1");
939}
940test "y_structure_lonely_null.json" {
941 try ok("null");
942}
943test "y_structure_lonely_string.json" {
944 try ok("\"asd\"");
945}
946test "y_structure_lonely_true.json" {
947 try ok("true");
948}
949test "y_structure_string_empty.json" {
950 try ok("\"\"");
951}
952test "y_structure_trailing_newline.json" {
953 try ok("[\"a\"]\n");
954}
955test "y_structure_true_in_array.json" {
956 try ok("[true]");
957}
958test "y_structure_whitespace_array.json" {
959 try ok(" [] ");
960}