@@ -17,7 +17,6 @@ function test_fixed(::Type{T}, f) where {T}
1717 if ! (typemin (T) < x <= typemax (T))
1818 continue
1919 end
20- # isinteger(x) && @show x
2120 fx = convert (T,x)
2221 @test convert (T,convert (Float64, fx)) == fx
2322 @test convert (T,convert (Float64, - fx)) == - fx
243242 @test isa (float (one (Fixed{Int32,25 })), Float64)
244243end
245244
245+ @testset " predicates" begin
246+ @test isfinite (1 Q7f8)
247+ @test ! isnan (1 Q7f8)
248+ @test ! isinf (1 Q7f8)
249+
250+ @testset " isinteger" begin
251+ for T in (Int8, Int16)
252+ @testset " isinteger(::Fixed{$T ,$f })" for f = 0 : bitwidth (T)- 1
253+ F = Fixed{T,f}
254+ xs = typemin (F): eps (F): typemax (F)
255+ @test all (x -> isinteger (x) == isinteger (float (x)), xs)
256+ end
257+ end
258+ for T in (Int32, Int64)
259+ @testset " isinteger(::Fixed{$T ,$f })" for f = 0 : bitwidth (T)- 1
260+ F = Fixed{T,f}
261+ fzero, fmax, fmin = zero (F), typemax (F), typemin (F)
262+ if f == 0
263+ @test isinteger (fzero) & isinteger (fmax) & isinteger (fmin)
264+ else
265+ @test isinteger (fzero) & ! isinteger (fmax) & isinteger (fmin)
266+ end
267+ end
268+ end
269+ @testset " isinteger(::Fixed{Int8,8})" begin # TODO : remove this testset
270+ @test ! isinteger (Fixed {Int8,8} (- 0.5 ))
271+ @test isinteger (Fixed {Int8,8} (0.0 ))
272+ @test ! isinteger (Fixed {Int8,8} (127 / 256 ))
273+ end
274+ end
275+ end
276+
246277@testset " Show" begin
247278 x = Fixed {Int32,5} (0.25 )
248279 iob = IOBuffer ()
0 commit comments