///|
/// Lightweight smoke demo for the library.
/// Run with `moon run cmd/main` from the project root.
fn main {
let buffer : @traj.ReplayBuffer[Unit, String] = @traj.ReplayBuffer::new(4)
let episode : @traj.Episode[Unit, String] = @traj.Episode::new()
let t1 = @traj.Transition::new((), "move_left", 1.0, (), false)
let t2 = @traj.Transition::new((), "move_right", 2.0, (), true)
let episode = episode.push(t1).push(t2)
let _ = buffer.extend_episode(episode)
let sample = buffer.sample_batch(2, 7)
println("MoonTrajectory demo")
println("episode length: \{episode.len()}")
println("episode total reward: \{episode.total_reward()}")
println(
"episode endpoints: \{episode.first_transition() is Some(_)} / \{episode.last_transition() is Some(_)}",
)
println("buffer size: \{buffer.len()}")
println("buffer oldest exists: \{buffer.oldest() is Some(_)}")
println("buffer newest exists: \{buffer.newest() is Some(_)}")
println("sampled transitions: \{sample.length()}")
}