use spg_engine::Engine;
use spg_engine::testkit::EnvConfig;
#[test]
fn random_seed_is_byte_equal_with_same_seed() {
let cfg = EnvConfig::builder().random_seed(42).build();
let a = Engine::new().with_env_cfg(cfg.clone());
let b = Engine::new().with_env_cfg(cfg);
assert_eq!(a.rng_seed(), 42);
assert_eq!(a.rng_seed(), b.rng_seed());
}
#[test]
fn random_seed_distinct_across_distinct_seeds() {
let a = Engine::new().with_env_cfg(EnvConfig::builder().random_seed(1).build());
let b = Engine::new().with_env_cfg(EnvConfig::builder().random_seed(99).build());
assert_ne!(a.rng_seed(), b.rng_seed());
assert_eq!(a.rng_seed(), 1);
assert_eq!(b.rng_seed(), 99);
}
#[test]
fn rng_seed_falls_back_to_clock_when_unset() {
fn clock() -> i64 {
12345
}
let e = Engine::new().with_clock(clock);
assert_eq!(e.rng_seed(), 12345);
}
#[test]
fn rng_seed_uses_sentinel_when_no_clock_no_seed() {
let e = Engine::new();
assert_eq!(e.rng_seed(), 0xBAD_5EED_DEAD_BEEFu64);
}