///|
pub fn benchmark_image_workload(
  width : Int,
  height : Int,
  rounds : Int,
) -> Double {
  let image = make_benchmark_image(width, height)
  let mut checksum = 0.0
  for _ in 0.. Double {
  let points : Array[Point] = []
  for i in 0.. Int {
  let image = make_benchmark_image(width, height)
  let mask = adaptive_threshold(image, 2, 0.02).closing(1)
  let mut checksum = 0
  for _ in 0.. Double {
  let image = bracket_fixture()
  let config = CaliperConfig::new(
    start=Point::Point(x=10.0, y=48.0),
    finish=Point::Point(x=150.0, y=48.0),
    threshold=0.08,
    mode=Both,
    expected_edges=2,
    unit="px",
  )
  let tolerance = Tolerance::Tolerance(nominal=94.0, lower=90.0, upper=98.0)
  let mut checksum = 0.0
  for _ in 0.. Array[Double] {
  [
    benchmark_image_workload(128, 96, 2),
    benchmark_geometry_workload(128, 2),
    Double::from_int(benchmark_component_workload(128, 96, 2)),
    benchmark_pipeline_workload(2),
  ]
}

///|
pub fn benchmark_checksum_text() -> String {
  let out = StringBuilder()
  for value in benchmark_checksum() {
    out.write_string(value.to_string())
    out.write_string("\n")
  }
  out.to_string()
}