[{
  "describe": ["without gaps", {
    "it": [
      [
        "works with empty line and one hint",
        [3],
        [0, 0, 0, 0, 0],
        [0, 0, 1, 0, 0]
      ],
      [
        [4],
        [0, 0, 0, 0, 0],
        [0, 1, 1, 1, 0]
      ],
      [
        [5],
        [0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1]
      ],
      [
        [2],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]
      ],
      [
        "works with empty line and multiple hints",
        [2, 2],
        [0, 0, 0, 0, 0, 0],
        [0, 1, 0, 0, 1, 0]
      ],
      [
        [4, 1, 1],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 1, 1, 0, 0, 0, 0, 0, 0]
      ],
      [
        [2, 1],
        [0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0]
      ],
      [
        "works with partially filled line and one hint",
        [3],
        [0, 1, 0, 0, 0, 0],
        [0, 1, 1, 0, -1, -1]
      ],
      [
        [3],
        [1, 0, 0, 0, 0],
        [1, 1, 1, -1, -1]
      ],
      [
        [4],
        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
        [-1, 0, 0, 0, 1, 0, 0, 0, -1, -1]
      ],
      [
        [4],
        [0, 0, 0, 0, 1, 0, 1, 0, 0, 0],
        [-1, -1, -1, 0, 1, 1, 1, 0, -1, -1]
      ],
      [
        "works with partially filled line and multiple hints",
        [3, 3],
        [0, 1, 0, 0, 0, 0, 1, 0],
        [0, 1, 1, 0, 0, 1, 1, 0]
      ],
      [
        [3, 3],
        [0, 1, 0, 0, 0, 1, 0],
        [1, 1, 1, -1, 1, 1, 1]
      ],
      [
        [3, 2],
        [1, 0, 0, 0, 0, 1],
        [1, 1, 1, -1, 1, 1]
      ],
      [
        [4, 1],
        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
        [-1, 0, 0, 0, 1, 0, 0, 0, 0, 0]
      ],
      [
        [4, 2],
        [0, 0, 0, 0, 1, 0, 1, 0, 0, 0],
        [-1, 0, 0, 1, 1, 0, 1, 0, 0, 0]
      ]
    ]
  }]
}, {
  "describe": ["with gaps", {
    "it": [
      [
        "works with one gap and some occupation and one hint",
        [1],
        [0, 0, -1, 0, 1],
        [-1, -1, -1, -1, 1]
      ],
      [
        "works with multiple gaps and some occupation and multiple hints",
        [3, 3],
        [0, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0],
        [0, 0, 0, -1, 1, 1, 1, -1, 0, 0, 0]
      ],
      [
        [3, 1, 3],
        [0, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0],
        [1, 1, 1, -1, 1, -1, -1, -1, 1, 1, 1]
      ],
      [
        [2, 3, 7],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0]
      ],
      [
        [2, 4, 1, 1],
        [-1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
        [-1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0]
      ],
      [
        [2, 4, 1, 1],
        [-1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
        null
      ],
      [
        "works with complicated cases",
        [8, 1, 13, 4, 6, 9, 4, 3, 2, 4],
        [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
      ]
    ]
  }]
}]
