Skip to content

Commit 1fa3927

Browse files
committed
Work around rounding errors in nightly test (#248)
This forces the `BigFloat`-->`Float16` conversion to go through `Float32` instead of `Float64`.
1 parent b66f035 commit 1fa3927

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

test/normed.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,8 @@ end
216216
T = rawtype(N)
217217
float_err = zero(Tf)
218218
for i = typemin(T):typemax(T)
219-
f_expected = Tf(i / BigFloat(FixedPointNumbers.rawone(N)))
219+
b_expected = i / BigFloat(FixedPointNumbers.rawone(N))
220+
f_expected = Tf(promote_type(Tf, Float32)(b_expected)) # workaround for issue #246
220221
isinf(f_expected) && break # for Float16(::Normed{UInt16,1})
221222
f_actual = Tf(reinterpret(N, i))
222223
float_err += abs(f_actual - f_expected)
@@ -227,7 +228,8 @@ end
227228
T = rawtype(N)
228229
error_count = 0
229230
for i in vcat(T(0x00):T(0xFF), (typemax(T)-0xFF):typemax(T))
230-
f_expected = Tf(i / BigFloat(FixedPointNumbers.rawone(N)))
231+
b_expected = i / BigFloat(FixedPointNumbers.rawone(N))
232+
f_expected = Tf(promote_type(Tf, Float32)(b_expected)) # workaround for issue #246
231233
isinf(f_expected) && break # for Float16() and Float32()
232234
f_actual = Tf(reinterpret(N, i))
233235
f_actual == f_expected && continue

0 commit comments

Comments
 (0)