Testing 如何将Quickcheck生成的浮动限制在一个范围内?

Testing 如何将Quickcheck生成的浮动限制在一个范围内?,testing,rust,Testing,Rust,我想生成随机浮点数,它被限制在某个范围内,比如0.0到1.0,用于测试概率函数。我希望能够做一些成功的事情: quickcheck! { fn prop(x: f64, y: f64) -> bool { assert!(x <= 1.0); assert!(y <= 1.0); (x * y < x) && (x * y < y) } } 快速检查!{

我想生成随机浮点数,它被限制在某个范围内,比如0.0到1.0,用于测试概率函数。我希望能够做一些成功的事情:

quickcheck! {        
    fn prop(x: f64, y: f64) -> bool {
        assert!(x <= 1.0);
        assert!(y <= 1.0);

        (x * y < x) && (x * y < y)
    }
}
快速检查!{        
fn道具(x:f64,y:f64)->bool{

断言!(x创建表示所需范围的新类型,然后为其实现:

#[宏使用]
外部板条箱快速检查;
#[派生(调试、复制、克隆)]
结构概率(f64);
impl quickcheck::任意概率{
fn任意(g:&mut g)->Self{
概率(g.gen_范围(0.0,1.0))
}
}
快速检查{
fn属性(x:概率,y:概率)->bool{
设x=x.0;
设y=y.0;

断言!(x创建表示所需范围的新类型,然后为其实现:

#[宏使用]
外部板条箱快速检查;
#[派生(调试、复制、克隆)]
结构概率(f64);
impl quickcheck::任意概率{
fn任意(g:&mut g)->Self{
概率(g.gen_范围(0.0,1.0))
}
}
快速检查{
fn属性(x:概率,y:概率)->bool{
设x=x.0;
设y=y.0;
断言!(x)
#[macro_use]
extern crate quickcheck;

#[derive(Debug, Copy, Clone)]
struct Probability(f64);

impl quickcheck::Arbitrary for Probability {
    fn arbitrary<G: quickcheck::Gen>(g: &mut G) -> Self {
        Probability(g.gen_range(0.0, 1.0))
    }
}

quickcheck! {
    fn prop(x: Probability, y: Probability) -> bool {
        let x = x.0;
        let y = y.0;

        assert!(x <= 1.0);
        assert!(y <= 1.0);

        (x * y < x) && (x * y < y)
    }
}