///|
pub struct BenchmarkResult {
  name : String
  iterations : Int
  checksum : Double
} derive(Debug, Eq)

///|
pub fn benchmark_kepler(iterations : Int) -> BenchmarkResult {
  let mut checksum = 0.0
  let count = iterations.max(0)
  for i in 0.. BenchmarkResult {
  let mut checksum = 0.0
  let count = iterations.max(0)
  let elements = ClassicalElements::new(
    7000.0,
    0.01,
    radians(51.6),
    0.3,
    0.7,
    1.1,
  )
  for _ in 0.. BenchmarkResult {
  let mut checksum = 0.0
  let count = iterations.max(0)
  let site = Geodetic::new(radians(35.0), radians(139.0), 0.1)
  for i in 0.. Array[BenchmarkResult] {
  [
    benchmark_kepler(iterations),
    benchmark_state_conversion(iterations),
    benchmark_geodesy(iterations),
  ]
}