1[
2    {
3        "name": "basic integer",
4        "raw": ["42"],
5        "header_type": "item",
6        "expected": [42, []]
7    },
8    {
9        "name": "zero integer",
10        "raw": ["0"],
11        "header_type": "item",
12        "expected": [0, []]
13    },
14    {
15        "name": "negative zero",
16        "raw": ["-0"],
17        "header_type": "item",
18        "expected": [0, []],
19        "canonical": ["0"]
20    },
21    {
22        "name": "double negative zero",
23        "raw": ["--0"],
24        "header_type": "item",
25        "must_fail": true
26    },
27    {
28        "name": "negative integer",
29        "raw": ["-42"],
30        "header_type": "item",
31        "expected": [-42, []]
32    },
33    {
34        "name": "leading 0 integer",
35        "raw": ["042"],
36        "header_type": "item",
37        "expected": [42, []],
38        "canonical": ["42"]
39    },
40    {
41        "name": "leading 0 negative integer",
42        "raw": ["-042"],
43        "header_type": "item",
44        "expected": [-42, []],
45        "canonical": ["-42"]
46    },
47    {
48        "name": "leading 0 zero",
49        "raw": ["00"],
50        "header_type": "item",
51        "expected": [0, []],
52        "canonical": ["0"]
53    },
54    {
55        "name": "comma",
56        "raw": ["2,3"],
57        "header_type": "item",
58        "must_fail": true
59    },
60    {
61        "name": "negative non-DIGIT first character",
62        "raw": ["-a23"],
63        "header_type": "item",
64        "must_fail": true
65    },
66    {
67        "name": "sign out of place",
68        "raw": ["4-2"],
69        "header_type": "item",
70        "must_fail": true
71    },
72    {
73        "name": "whitespace after sign",
74        "raw": ["- 42"],
75        "header_type": "item",
76        "must_fail": true
77    },
78    {
79        "name": "long integer",
80        "raw": ["123456789012345"],
81        "header_type": "item",
82        "expected": [123456789012345, []]
83    },
84    {
85        "name": "long negative integer",
86        "raw": ["-123456789012345"],
87        "header_type": "item",
88        "expected": [-123456789012345, []]
89    },
90    {
91        "name": "too long integer",
92        "raw": ["1234567890123456"],
93        "header_type": "item",
94        "must_fail": true
95    },
96    {
97        "name": "negative too long integer",
98        "raw": ["-1234567890123456"],
99        "header_type": "item",
100        "must_fail": true
101    },
102    {
103        "name": "simple decimal",
104        "raw": ["1.23"],
105        "header_type": "item",
106        "expected": [1.23, []]
107    },
108    {
109        "name": "negative decimal",
110        "raw": ["-1.23"],
111        "header_type": "item",
112        "expected": [-1.23, []]
113    },
114    {
115        "name": "decimal, whitespace after decimal",
116        "raw": ["1. 23"],
117        "header_type": "item",
118        "must_fail": true
119    },
120    {
121        "name": "decimal, whitespace before decimal",
122        "raw": ["1 .23"],
123        "header_type": "item",
124        "must_fail": true
125    },
126    {
127        "name": "negative decimal, whitespace after sign",
128        "raw": ["- 1.23"],
129        "header_type": "item",
130        "must_fail": true
131    },
132    {
133        "name": "tricky precision decimal",
134        "raw": ["123456789012.1"],
135        "header_type": "item",
136        "expected": [123456789012.1, []]
137    },
138    {
139        "name": "double decimal decimal",
140        "raw": ["1.5.4"],
141        "header_type": "item",
142        "must_fail": true
143    },
144    {
145        "name": "adjacent double decimal decimal",
146        "raw": ["1..4"],
147        "header_type": "item",
148        "must_fail": true
149    },
150    {
151        "name": "decimal with three fractional digits",
152        "raw": ["1.123"],
153        "header_type": "item",
154        "expected": [1.123, []]
155    },
156    {
157        "name": "negative decimal with three fractional digits",
158        "raw": ["-1.123"],
159        "header_type": "item",
160        "expected": [-1.123, []]
161    },
162    {
163        "name": "decimal with four fractional digits",
164        "raw": ["1.1234"],
165        "header_type": "item",
166        "must_fail": true
167    },
168    {
169        "name": "negative decimal with four fractional digits",
170        "raw": ["-1.1234"],
171        "header_type": "item",
172        "must_fail": true
173    },
174    {
175        "name": "decimal with thirteen integer digits",
176        "raw": ["1234567890123.0"],
177        "header_type": "item",
178        "must_fail": true
179    },
180    {
181        "name": "negative decimal with thirteen integer digits",
182        "raw": ["-1234567890123.0"],
183        "header_type": "item",
184        "must_fail": true
185    }
186]
187