///|
fn main {
  let data = @svm.dataset(
    [[-4.0], [-3.0], [-2.0], [-1.0], [1.0], [2.0], [3.0], [4.0]],
    [0, 0, 0, 0, 1, 1, 1, 1],
    "search example",
  ).unwrap()
  let linear = @svm.svm_candidate(
    "linear",
    @svm.default_binary_config(@svm.Linear).unwrap(),
    @svm.StandardScaling,
  )
  let rbf = @svm.svm_candidate(
    "rbf",
    @svm.default_binary_config(@svm.Rbf(0.5)).unwrap(),
    @svm.StandardScaling,
  )
  let result = @svm.select_svm(
    data,
    [linear, rbf],
    2,
    @svm.SelectBalancedAccuracy,
  ).unwrap()
  println("best=\{result.best_name()}")
  println("score=\{result.best_score()}")
  println("prediction=\{result.predict([2.5]).unwrap()}")
}