///|
pub struct BenchmarkCase {
  name : String
  dimensions : Int
  tolerance : Double
  seed : UInt
} derive(Debug)

///|
pub fn BenchmarkCase::chain(self : BenchmarkCase) -> Chain {
  let dimensions = []
  for index in 0.. AnalysisResult {
  case.chain().monte_carlo(samples, seed=case.seed)
}

///|
pub fn benchmark_suite() -> Array[BenchmarkCase] {
  [
    { name: "small-fit", dimensions: 4, tolerance: 0.02, seed: 11U },
    { name: "bearing-seat", dimensions: 8, tolerance: 0.01, seed: 17U },
    { name: "housing-stack", dimensions: 16, tolerance: 0.025, seed: 23U },
    { name: "long-actuator", dimensions: 32, tolerance: 0.04, seed: 31U },
    { name: "precision-stage", dimensions: 64, tolerance: 0.005, seed: 47U },
  ]
}