#![allow(dead_code)] extern crate rand; #[macro_use] extern crate rand_derive; use rand::Rng; #[derive(Rand)] struct Struct { x: u16, y: Option, } #[derive(Rand)] struct Tuple(i16, Option); #[derive(Rand)] struct Unit; #[derive(Rand)] enum EnumUnit { X, } #[derive(Rand)] enum Enum1 { X(u8, f32), } #[derive(Rand)] enum Enum2 { X(bool), Y, } #[derive(Rand)] enum Enum3 { X { x: u8, y: isize }, Y([bool; 4]), Z, } #[test] fn smoke() { let mut rng = rand::XorShiftRng::new_unseeded(); // check nothing horrible happens internally: for _ in 0..100 { let _ = rng.gen::(); let _ = rng.gen::(); let _ = rng.gen::(); let _ = rng.gen::(); let _ = rng.gen::(); let _ = rng.gen::(); let _ = rng.gen::(); } }