Skip to content

Commit 7983e19

Browse files
committed
all-your-base: Be explicit about error cases
all-your-base 2.0.0 This uses the error object defined in #401 (comment) and henceforth added to the README's **Test Data Format**. In #280 we made the explicit choice to leave various cases `expected: null` where tracks can make their own decisions (leading zeroes, the representations of zero, whether empty sequence is acceptable as input). However, since `expected: null` is also used for cases where there is always an error (and there is no decision being left to the tracks), it becomes unreasonably hard to tell cases in these two categories apart. To make this easier, all cases in the latter category (always are errors) can canonically be marked as such.
1 parent 6fb7833 commit 7983e19

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

exercises/all-your-base/canonical-data.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"exercise": "all-your-base",
3-
"version": "1.1.0",
3+
"version": "2.0.0",
44
"comments": [
55
"It's up to each track do decide:",
66
"",
@@ -124,71 +124,71 @@
124124
"input_base": 1,
125125
"input_digits": [],
126126
"output_base": 10,
127-
"expected": null
127+
"expected": {"error": "input base must be >= 2"}
128128
},
129129
{
130130
"description": "first base is zero",
131131
"property": "rebase",
132132
"input_base": 0,
133133
"input_digits": [],
134134
"output_base": 10,
135-
"expected": null
135+
"expected": {"error": "input base must be >= 2"}
136136
},
137137
{
138138
"description": "first base is negative",
139139
"property": "rebase",
140140
"input_base": -2,
141141
"input_digits": [1],
142142
"output_base": 10,
143-
"expected": null
143+
"expected": {"error": "input base must be >= 2"}
144144
},
145145
{
146146
"description": "negative digit",
147147
"property": "rebase",
148148
"input_base": 2,
149149
"input_digits": [1, -1, 1, 0, 1, 0],
150150
"output_base": 10,
151-
"expected": null
151+
"expected": {"error": "all digits must satisfy 0 <= d < input base"}
152152
},
153153
{
154154
"description": "invalid positive digit",
155155
"property": "rebase",
156156
"input_base": 2,
157157
"input_digits": [1, 2, 1, 0, 1, 0],
158158
"output_base": 10,
159-
"expected": null
159+
"expected": {"error": "all digits must satisfy 0 <= d < input base"}
160160
},
161161
{
162162
"description": "second base is one",
163163
"property": "rebase",
164164
"input_base": 2,
165165
"input_digits": [1, 0, 1, 0, 1, 0],
166166
"output_base": 1,
167-
"expected": null
167+
"expected": {"error": "output base must be >= 2"}
168168
},
169169
{
170170
"description": "second base is zero",
171171
"property": "rebase",
172172
"input_base": 10,
173173
"input_digits": [7],
174174
"output_base": 0,
175-
"expected": null
175+
"expected": {"error": "output base must be >= 2"}
176176
},
177177
{
178178
"description": "second base is negative",
179179
"property": "rebase",
180180
"input_base": 2,
181181
"input_digits": [1],
182182
"output_base": -7,
183-
"expected": null
183+
"expected": {"error": "output base must be >= 2"}
184184
},
185185
{
186186
"description": "both bases are negative",
187187
"property": "rebase",
188188
"input_base": -2,
189189
"input_digits": [1],
190190
"output_base": -7,
191-
"expected": null
191+
"expected": {"error": "input base must be >= 2"}
192192
}
193193
]
194194
}

0 commit comments

Comments
 (0)