{
  "id": "five-by-five",
  "title": "Five-by-five X with comma-separated clues",
  "input": {
    "path": "formats/nonogram/cases/five-by-five/input.txt",
    "text": "title \"Hand-made X\"\nwidth 5\nheight 5\nrows\n1,1\n1,1\n1\n1,1\n1,1\ncolumns\n1,1\n1,1\n1\n1,1\n1,1\n"
  },
  "params": [],
  "commands": {
    "readJson": "iris read formats/nonogram/nonogram.iris formats/nonogram/cases/five-by-five/input.txt --json",
    "readDzn": "iris read formats/nonogram/nonogram.iris formats/nonogram/cases/five-by-five/input.txt --dzn",
    "readSummary": "iris read formats/nonogram/nonogram.iris formats/nonogram/cases/five-by-five/input.txt --summary",
    "errorJson": null
  },
  "result": {
    "kind": "success",
    "json": "{\"iris\":\"0.1\",\"entries\":[{\"name\":\"width\",\"type\":\"int\",\"depth\":0,\"value\":5},{\"name\":\"height\",\"type\":\"int\",\"depth\":0,\"value\":5},{\"name\":\"row\",\"type\":\"int\",\"depth\":2,\"value\":[[1,1],[1,1],[1],[1,1],[1,1]]},{\"name\":\"col\",\"type\":\"int\",\"depth\":2,\"value\":[[1,1],[1,1],[1],[1,1],[1,1]]}]}\n",
    "dzn": "width = 5;\nheight = 5;\n% row: array[int] of tuple(array[int] of int)\nrow = [([1, 1],), ([1, 1],), ([1],), ([1, 1],), ([1, 1],)];\n% col: array[int] of tuple(array[int] of int)\ncol = [([1, 1],), ([1, 1],), ([1],), ([1, 1],), ([1, 1],)];\n",
    "summary": "formats/nonogram/cases/five-by-five/input.txt [nonogram]\n  width: int 5\n  height: int 5\n  row: int array 5 x 1..2\n  col: int array 5 x 1..2\n"
  },
  "catalog": null,
  "downloads": {
    "input": "/examples/formats/nonogram/cases/five-by-five/input.txt",
    "spec": "/examples/formats/nonogram/nonogram.iris",
    "data.json": "/examples/formats/nonogram/cases/five-by-five/data.json",
    "data.dzn": "/examples/formats/nonogram/cases/five-by-five/data.dzn",
    "summary.txt": "/examples/formats/nonogram/cases/five-by-five/summary.txt",
    "case": "/examples/formats/nonogram/cases/five-by-five/case.json"
  },
  "spec": {
    "path": "formats/nonogram/nonogram.iris",
    "text": "format nonogram\n\nseparators \",\"\nsections skip other {\n  \"width {width:1..}\"\n  \"height {height:1..}\"\n  \"rows\" {\n    repeat height {\n      list row: 0.. until eol\n    }\n  }\n  \"columns\" {\n    repeat width {\n      list col: 0.. until eol\n    }\n  }\n}\n\ncheck height <= 1000000 / width \"the board must have at most a million fields\"\ncheck size(row) == height && size(col) == width\n  \"the numbers of rows and columns differ from the board size\"\ncheck count(row) <= 1 || min(row) > 0 \"a 0 must be the only clue of its row\"\ncheck count(col) <= 1 || min(col) > 0 \"a 0 must be the only clue of its column\"\ncheck sum(row) + count(row) - 1 <= width \"the clues of a row do not fit into the width of the board\"\ncheck sum(col) + count(col) - 1 <= height\n  \"the clues of a column do not fit into the height of the board\"\n"
  }
}
