Closed
Description
using Test
@testset "inconsistency, possible bug" begin
@testset "T: $T" for T ∈ (Float16, Float32, Float64, BigFloat)
@testset "literal `-1`" begin
@test -0.0 === Float64(T(-Inf)^-1)
end
@testset "`Int(-1)`" begin
@test -0.0 === Float64(T(-Inf)^Int(-1))
end
end
end
It fails only for T === Float64
, and only in the non-literal case:
Test Summary: | Pass Fail Total Time
inconsistency, possible bug | 7 1 8 1.8s
T: Float16 | 2 2 0.0s
T: Float32 | 2 2 0.0s
T: Float64 | 1 1 2 1.8s
literal `-1` | 1 1 0.0s
`Int(-1)` | 1 1 1.8s
T: BigFloat | 2 2 0.0s
ERROR: Some tests did not pass: 7 passed, 1 failed, 0 errored, 0 broken.
The reason why the sign of the zero might matter here is perhaps that the zero with negative sign is the identity element for addition in IEEE 754 floating-point. It's suspicious that there's an "odd one out" here, in any case.
Activity