#![cfg(feature = "software_renderer")]
use raylib::test_harness::with_headless;
#[test]
fn random_seed_is_deterministic() {
with_headless(64, 64, |rl, _thread| {
rl.set_random_seed(1);
let r: i32 = rl.get_random_value(0..=4);
let r_again: i32 = {
rl.set_random_seed(1);
rl.get_random_value(0..=4)
};
assert_eq!(
r, r_again,
"set_random_seed(1) + get_random_value(0..=4) is deterministic"
);
rl.set_random_seed(1);
let seq1: Vec<i32> = rl.load_random_sequence(1..10, 10).iter().copied().collect();
rl.set_random_seed(1);
let seq2: Vec<i32> = rl.load_random_sequence(1..10, 10).iter().copied().collect();
assert_eq!(seq1.len(), 10, "sequence length is 10");
assert_eq!(seq2.len(), 10, "second sequence length is 10");
assert_eq!(seq1, seq2, "seeded sequence is reproducible");
for (i, v) in seq1.iter().enumerate() {
assert!(
*v >= 1 && *v <= 10,
"sequence element {i} = {v} out of inclusive range [1, 10]"
);
}
});
}