use protest::{Arbitrary, GeneratorConfig, Strategy};
use rand::thread_rng;
#[derive(Debug, Clone, PartialEq, protest::Generator)]
struct CustomizedStruct {
#[generator(range = "1..100")]
id: u32,
name: String,
active: bool,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_customized_struct_generation() {
let strategy = CustomizedStruct::arbitrary();
let mut rng = thread_rng();
let config = GeneratorConfig::default();
for _ in 0..10 {
let instance = strategy.generate(&mut rng, &config);
println!("Generated CustomizedStruct: {:?}", instance);
}
}
#[test]
fn test_arbitrary_trait_works() {
let strategy = CustomizedStruct::arbitrary();
let mut rng = thread_rng();
let config = GeneratorConfig::default();
let instance = strategy.generate(&mut rng, &config);
println!("Generated via Arbitrary: {:?}", instance);
}
}