///|
/// Reproducible benchmark driver. Wall-clock timing is deliberately measured
/// by the host shell so the library stays backend-independent.
fn main {
  let records = @reliability.benchmark_dataset(2000)
  let grid = @reliability.benchmark_grid(256)
  let weibull = @reliability.ReliabilityModel::WeibullModel(
    @reliability.Weibull::new(100.0, 1.8),
  )
  let exponential = @reliability.ReliabilityModel::ExponentialModel(
    @reliability.Exponential::new(0.01),
  )
  let values = records.map(record => record.time)
  let distribution_checksum = @reliability.benchmark_distribution_kernel(
    weibull, grid, 20,
  )
  let statistics_checksum = @reliability.benchmark_statistics_kernel(values, 20)
  let survival_checksum = @reliability.benchmark_survival_kernel(records, 5)
  let system_checksum = @reliability.benchmark_system_kernel(
    [weibull, exponential],
    grid,
    10,
  )
  println("dataset_records=2000")
  println("grid_points=256")
  println("distribution_checksum=\{distribution_checksum}")
  println("statistics_checksum=\{statistics_checksum}")
  println("survival_checksum=\{survival_checksum}")
  println("system_checksum=\{system_checksum}")
}