use rand_jitter::JitterRng;
#[cfg(feature = "std")]
use rand_core::RngCore;

#[cfg(feature = "std")]
#[test]
fn test_jitter_init() {
    // Because this is a debug build, measurements here are not representive
    // of the final release build.
    // Don't fail this test if initializing `JitterRng` fails because of a
    // bad timer (the timer from the standard library may not have enough
    // accuracy on all platforms).
    match JitterRng::new() {
        Ok(ref mut rng) => {
            // false positives are possible, but extremely unlikely
            assert!(rng.next_u32() | rng.next_u32() != 0);
        },
        Err(_) => {},
    }
}

#[test]
fn test_jitter_bad_timer() {
    fn bad_timer() -> u64 { 0 }
    let mut rng = JitterRng::new_with_timer(bad_timer);
    assert!(rng.test_timer().is_err());
}

