Skip to content

Unable to reach minimum value of signed types #233

@shaobo-he

Description

@shaobo-he

Hello,

It appears this test will always pass even setting QUICKCHECK_TESTS and QUICKCHECK_MAX_TESTS to a large value (e.g., 10000000) and QUICKCHECK_GENERATOR_SIZE to 300,

fn prop_gt(x: i8) -> bool {
    x != i8::min_value()
}

fn main() {
    quickcheck(prop_gt as fn(i8) -> bool);
    println!("Hello, world!");
}

It appears these lines of code attribute to this issue,
https://docs.rs/quickcheck/0.8.2/src/quickcheck/arbitrary.rs.html#756-771
If upper = min(g.size(), $ty::max_value() as usize), then if upper > $ty::max_value() always evaluates to the else branch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions