import type { Game } from "../../../src/c31_games.ts"; export const spec: Game = { id: "string-calc", description: "Roy Osherove's String Calculator, judged. Build add(numbers) one rule at a time — seven red→green cycles from empty string to negatives-throw.", signature: "add(numbers: string): number", importPath: "./add", steps: [ { id: "empty", requirement: "An empty string returns 0", hiddenTestFile: "hidden/empty.ts", }, { id: "single-number", requirement: "A single number returns its value", hiddenTestFile: "hidden/single-number.ts", }, { id: "two-numbers", requirement: "Two comma-separated numbers return their sum", hiddenTestFile: "hidden/two-numbers.ts", }, { id: "n-numbers", requirement: "Any count of comma-separated numbers", hiddenTestFile: "hidden/n-numbers.ts", }, { id: "newline-separator", requirement: "Newlines are valid separators alongside commas", hiddenTestFile: "hidden/newline-separator.ts", }, { id: "custom-separator", requirement: "//\\n header defines a single-character custom separator", hiddenTestFile: "hidden/custom-separator.ts", }, { id: "negatives-throw", requirement: "Negative inputs throw an error listing all negatives", hiddenTestFile: "hidden/negatives-throw.ts", }, ], };