///|
fn main {
  let d = @weave.read_grid("#.#.\n.#.#\n#.#.\n.#.#").unwrap()
  let p = d.direct_tieup(2).unwrap()
  let restored = @weave.from_treadles(
    d.shaft_count(),
    d.threads(),
    p.tieup,
    p.treadling,
  ).unwrap()
  assert_eq(d.differences(restored).unwrap().length(), 0) catch {
    _ => abort("roundtrip example failed")
  }
  println(
    "从 4×4 交织图反推:2 个综框、2 个踏板,重建后 0 个交点差异。",
  )
  println(d.write_json())
}