///|
fn parse_iterations(raw : String) -> Int {
  @strconv.from_str(raw[:]) catch {
    _ => 120
  }
}

///|
fn configured_iterations() -> Int {
  match @env.get_env_var("VRP_BENCHMARK_ITERATIONS") {
    None => 120
    Some(raw) => {
      let parsed = parse_iterations(raw)
      parsed.max(1).min(5_000)
    }
  }
}

///|
fn main raise {
  let benchmark_case = @bench.a_n32_k5_case()
  let config = @core.SolveConfig::default().tune(
    iterations=configured_iterations(),
    max_destroy=8,
  )
  let started = @env.now()
  let result = @bench.run_case(benchmark_case, config)
  let elapsed = @env.now() - started
  println(@bench.result_text(result))
  println("Elapsed ms: \{elapsed}")
}