jandom 0.3.4

Port of java.util.Random
Documentation
use super::*;
use std::include;

const SEED: i64 = 12345;

#[test]
fn next_gaussian() {
    let test_data = include!(concat!(env!("OUT_DIR"), "/gaussians.data"));
    let mut random = Random::new(SEED);
    for integer in test_data {
        assert_eq!(random.next_gaussian(), integer);
    }
}

#[test]
fn next_i32() {
    let test_data = include!(concat!(env!("OUT_DIR"), "/integers.data"));
    let mut random = Random::new(SEED);
    for integer in test_data {
        assert_eq!(random.next_i32(), integer);
    }
}

#[test]
fn next_i32_bounded() {
    let test_data = include!(concat!(env!("OUT_DIR"), "/bounded_integers.data"));
    let mut random = Random::new(SEED);
    for (index, integer) in test_data.into_iter().enumerate() {
        assert_eq!(
            random.next_i32_bounded((SEED as i32) + (index as i32)),
            integer
        );
    }
}

#[test]
fn next_i64() {
    let test_data = include!(concat!(env!("OUT_DIR"), "/longs.data"));
    let mut random = Random::new(SEED);
    for integer in test_data {
        assert_eq!(random.next_i64(), integer);
    }
}

#[test]
fn next_f32() {
    let test_data = include!(concat!(env!("OUT_DIR"), "/floats.data"));
    let mut random = Random::new(SEED);
    for integer in test_data {
        assert_eq!(random.next_f32(), integer);
    }
}

#[test]
fn next_f64() {
    let test_data = include!(concat!(env!("OUT_DIR"), "/doubles.data"));
    let mut random = Random::new(SEED);
    for integer in test_data {
        assert_eq!(random.next_f64(), integer);
    }
}

#[test]
fn next_bool() {
    let test_data = include!(concat!(env!("OUT_DIR"), "/booleans.data"));
    let mut random = Random::new(SEED);
    for integer in test_data {
        assert_eq!(random.next_bool(), integer);
    }
}

#[test]
fn next_bytes() {
    let test_data = include!(concat!(env!("OUT_DIR"), "/bytes.data"));
    let mut random = Random::new(SEED);
    let mut bytes = [0_i8; 100];
    random.next_bytes(&mut bytes);
    for i in 0..10 {
        assert_eq!(test_data[i], bytes[i]);
    }
}