use rlevo_benchmarks::evaluator::EvaluatorConfig;
use rlevo_benchmarks::suite::Suite;
use crate::bench::adapter::BenchAdapter;
use crate::classic::{CartPole, CartPoleConfig, Pendulum, PendulumConfig, TenArmedBandit};
#[must_use]
pub fn ten_armed_bandit_suite(cfg: EvaluatorConfig) -> Suite<BenchAdapter<TenArmedBandit, 1, 1, 1>> {
Suite::new("ten-armed-bandit", cfg).with_env("ten-armed-bandit-default", |seed| {
BenchAdapter::new(TenArmedBandit::with_seed(seed))
})
}
#[must_use]
pub fn cartpole_suite(cfg: EvaluatorConfig) -> Suite<BenchAdapter<CartPole, 1, 1, 1>> {
Suite::new("cartpole", cfg).with_env("cartpole-default", |seed| {
BenchAdapter::new(CartPole::with_config(CartPoleConfig {
seed,
..CartPoleConfig::default()
}))
})
}
#[must_use]
pub fn pendulum_suite(cfg: EvaluatorConfig) -> Suite<BenchAdapter<Pendulum, 1, 1, 1>> {
Suite::new("pendulum", cfg).with_env("pendulum-default", |seed| {
BenchAdapter::new(Pendulum::with_config(PendulumConfig {
seed,
..PendulumConfig::default()
}))
})
}