proptest-rs / proptest

Hypothesis-like property testing for Rust
Apache License 2.0
1.63k stars 152 forks source link

Test f{32,64}_any_generates_desired_values failed on riscv64 #428

Open milkice233 opened 4 months ago

milkice233 commented 4 months ago

Compiling proptest against Fedora RISC-V Rawhide resulted in two tests failed to pass.

thread 'num::test::f32_any_generates_desired_values' panicked at src/num.rs:1358:5:
Test failed: assertion failed: bits.contains(FloatTypes::POSITIVE) at src/num.rs:1365.
minimal failing input: strategy = Any(
    FloatTypes(
        NEGATIVE | QUIET_NAN,
    ),
)
        successes: 0
        local rejects: 0
        global rejects: 0

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    num::test::f32_any_generates_desired_values

test result: FAILED$<2>. 0 passed; 1 failed; 0 ignored; 0 measured; 1473 filtered out; finished in 0.29s

Add I added println!("{}, {:#b}, {}, {:#b}, {}", value, raw, is_negative, bits.bits(), bits.contains(FloatTypes::POSITIVE)); right before this line and the output is like:

---- num::test::f32_any_generates_desired_values stdout ----
NaN, 0b1111111110000000000000000000000, false, 0b1111110, false
NaN, 0b1111111110110001110010101100000, false, 0b1111101, true
NaN, 0b1111111110111000100111010100110, false, 0b1111101, true
NaN, 0b1111111111000000011010101101110, false, 0b1111101, true
NaN, 0b1111111111101101010110010001000, false, 0b1111101, true
NaN, 0b1111111111011011101000010111101, false, 0b1111101, true
NaN, 0b1111111111010101111101001001111, false, 0b1111101, true
NaN, 0b1111111110100110110110000101110, false, 0b1111101, true
NaN, 0b1111111110110001000000011110010, false, 0b1111101, true
NaN, 0b1111111110110000111000000001010, false, 0b1111101, true
NaN, 0b1111111110000010101001100010101, false, 0b1111101, true
NaN, 0b1111111110100100110011001111100, false, 0b1111101, true
NaN, 0b1111111110101100111100110001011, false, 0b1111101, true
NaN, 0b1111111110110111011100001100000, false, 0b1111101, true
NaN, 0b1111111111011001111001111110011, false, 0b1111101, true
NaN, 0b1111111110011100010111001010000, false, 0b1111101, true
NaN, 0b1111111111101011110100101000110, false, 0b1111101, true
NaN, 0b1111111111011001000000100001010, false, 0b1111101, true
NaN, 0b1111111110110101011100011100101, false, 0b1111101, true
NaN, 0b1111111110101010110011101111011, false, 0b1111101, true
NaN, 0b1111111110101111111111111110111, false, 0b1111101, true
NaN, 0b1111111110100101111101110001101, false, 0b1111101, true
NaN, 0b1111111110010111011111000001110, false, 0b1111101, true
NaN, 0b1111111110001011111000011001010, false, 0b1111101, true
NaN, 0b1111111111101110100010100011010, false, 0b1111101, true
NaN, 0b1111111111110001000111101100111, false, 0b1111101, true
NaN, 0b1111111110001110011110110011110, false, 0b1111101, true
NaN, 0b1111111110100001010011111000110, false, 0b1111101, true
NaN, 0b1111111110010110111000000101011, false, 0b1111101, true
NaN, 0b1111111111001011110010101111111, false, 0b1111101, true
NaN, 0b1111111111010000110000100110011, false, 0b1111101, true
NaN, 0b1111111111000011111110010000000, false, 0b1111101, true
NaN, 0b1111111110000000000000000000000, false, 0b1111110, false
NaN, 0b1111111110000000000000000000000, false, 0b1111010, false
NaN, 0b1111111110000000000000000000000, false, 0b1110010, false
NaN, 0b1111111110000000000000000000000, false, 0b1100010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
NaN, 0b1111111110000000000000000000000, false, 0b1000010, false
thread 'num::test::f32_any_generates_desired_values' panicked at src/num.rs:1358:5:
Test failed: assertion failed: bits.contains(FloatTypes::POSITIVE) at src/num.rs:1365.

Speaking of f64_any_generates_desired_values

---- num::test::f64_any_generates_desired_values stdout ----
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1111110, false
NaN, 0b111111111111000100101001111011101001110100101000010010000000011, false, 0b1111101, true
NaN, 0b111111111111001011101100111011101101001101101111100001001100111, false, 0b1111101, true
NaN, 0b111111111111101111110011001001111000000010011111000101111110010, false, 0b1111101, true
NaN, 0b111111111111110001001010100110011001110001101111110010010110001, false, 0b1111101, true
NaN, 0b111111111111001011101111001110101001100111001110001110011100011, false, 0b1111101, true
NaN, 0b111111111111001101111100101001000111011111010011110001111000000, false, 0b1111101, true
NaN, 0b111111111111000011000101100110010001001010000000101011101101010, false, 0b1111101, true
NaN, 0b111111111111010011001101100000100110100010110001000000011110010, false, 0b1111101, true
NaN, 0b111111111111001011101101010001000100001110000000101000111010110, false, 0b1111101, true
NaN, 0b111111111111000100100011010010101011110101010100010100101111001, false, 0b1111101, true
NaN, 0b111111111111010010001010100001110011111100001010100100110111010, false, 0b1111101, true
NaN, 0b111111111111000010101101010101000000101111111110100111111110010, false, 0b1111101, true
NaN, 0b111111111111010011001001011100100111000000101010101100010110000, false, 0b1111101, true
NaN, 0b111111111111100100100101010101101000101101000001000010010011101, false, 0b1111101, true
NaN, 0b111111111111011010101000100101101111101010010111111011100110010, false, 0b1111101, true
NaN, 0b111111111111010111010101000001111100110111011110011010100100101, false, 0b1111101, true
NaN, 0b111111111111000110111010110010101100111001000011000011111110011, false, 0b1111101, true
NaN, 0b111111111111100001001101101000101111110010000000100110001110000, false, 0b1111101, true
NaN, 0b111111111111100100000010000101000111110100110010001000111101100, false, 0b1111101, true
NaN, 0b111111111111101000111010110100110011000111010110101001111001100, false, 0b1111101, true
NaN, 0b111111111111001011000100101011000001100111010011010010101010111, false, 0b1111101, true
NaN, 0b111111111111010001111011001000101011111111010000011000001011001, false, 0b1111101, true
NaN, 0b111111111111011000101011000011110101001000010111011100111011000, false, 0b1111101, true
NaN, 0b111111111111110110000011000111001000011001110010100010001010110, false, 0b1111101, true
NaN, 0b111111111111111011101000111010001011000100001111101101001100000, false, 0b1111101, true
NaN, 0b111111111111010001010100110011001110001111010011011000110001111, false, 0b1111101, true
NaN, 0b111111111111000010011011111010011110010101000111100101101011101, false, 0b1111101, true
NaN, 0b111111111111011000011110110001001110001101001001000000000101011, false, 0b1111101, true
NaN, 0b111111111111111011101000010110101101110010111000011000101001001, false, 0b1111101, true
NaN, 0b111111111111101010100001111010101101010110011001100011101001101, false, 0b1111101, true
NaN, 0b111111111111101011111000110110110010111011100101010010000100000, false, 0b1111101, true
NaN, 0b111111111111111111001010101101101110111011010100110101111010110, false, 0b1111101, true
NaN, 0b111111111111000000011100011000100110111110010100000011000001100, false, 0b1111101, true
NaN, 0b111111111111000011011100011101001101100001011000111011100110000, false, 0b1111101, true
NaN, 0b111111111111100010001111101111100011111110100010010101010100100, false, 0b1111101, true
NaN, 0b111111111111000110011001111111001111000100011110011001110110010, false, 0b1111101, true
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1111110, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1111010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1110010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1100010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
NaN, 0b111111111111000000000000000000000000000000000000000000000000000, false, 0b1000010, false
thread 'num::test::f64_any_generates_desired_values' panicked at src/num.rs:1358:5:
Test failed: assertion failed: bits.contains(FloatTypes::POSITIVE) at src/num.rs:1382.