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