stdrandom 0.3.0-alpha.1

Generate random numbers using only Rust standard library
Documentation
use super::*;
use std::collections::HashSet;

#[test]
fn test_random_numbers_are_distinct() {
    let mut numbers = HashSet::new();

    for _ in 0..5 {
        let num = random_u64();
        numbers.insert(num);
    }

    // If all numbers are distinct, the HashSet should contain 5 elements
    assert_eq!(numbers.len(), 5, "Generated numbers are not unique!");
}

#[test]
fn test_random_numbers_are_distinct_st() {
    let mut numbers = HashSet::new();

    for _ in 0..5 {
        let num = fast_u64();
        numbers.insert(num);
    }

    // If all numbers are distinct, the HashSet should contain 5 elements
    assert_eq!(numbers.len(), 5, "Generated numbers are not unique!");
}

#[test]
fn test_fill_bytes_with_randomness() {
    let mut buffer = [0u8; 32]; // Initialize a zeroed-out buffer of 32 bytes
    fill_bytes(&mut buffer, fast_u64);

    // Ensure buffer is filled with non-zero values
    assert!(
        buffer.iter().any(|&byte| byte != 0),
        "Buffer should contain non-zero random bytes"
    );
}

/**
   Ensure multiple calls produce different outputs (not perfect randomness check)
*/
#[test]
fn test_fill_bytes_different() {
    let mut buffer = [0u8; 32];
    fill_bytes(&mut buffer, fast_u64);

    let mut buffer2 = [0u8; 32];
    fill_bytes(&mut buffer2, fast_u64);
    assert_ne!(
        buffer, buffer2,
        "Two buffers should contain different random values"
    );
}

#[test]
fn test_fill_numbers_with_randomness() {
    let mut buffer = [0f32; 32]; // Initialize a zeroed-out buffer of 32 bytes
    fill_numbers(&mut buffer, fast_f32);

    // Ensure buffer is filled with non-zero values
    assert!(
        buffer.iter().any(|&num| num != 0f32),
        "Buffer should contain non-zero random bytes"
    );
}