use rand_mt::Mt64;
pub fn generate_key(seed: u64) -> [u8; 32] {
let mut rng = Mt64::new(seed);
let mut key = [0u8; 32];
rng.fill_bytes(&mut key);
key
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_deterministic() {
let key1 = generate_key(12345);
let key2 = generate_key(12345);
assert_eq!(key1, key2);
}
#[test]
fn test_different_seeds() {
let key1 = generate_key(1);
let key2 = generate_key(2);
assert_ne!(key1, key2);
}
#[test]
fn test_zero_seed() {
let key = generate_key(0);
assert_ne!(key, [0u8; 32]);
}
#[test]
fn test_max_seed() {
let key = generate_key(u64::MAX);
assert_ne!(key, [0u8; 32]);
}
#[test]
fn test_key_length() {
let key = generate_key(42);
assert_eq!(key.len(), 32);
}
}