|
358 | 358 | end
|
359 | 359 | end
|
360 | 360 |
|
361 |
| -@testset "Show" begin |
362 |
| - x = Fixed{Int32,5}(0.25) |
363 |
| - iob = IOBuffer() |
364 |
| - show(iob, x) |
365 |
| - str = String(take!(iob)) |
366 |
| - @test str == "0.25Q26f5" |
367 |
| - @test eval(Meta.parse(str)) == x |
368 |
| -end |
369 |
| - |
370 | 361 | @testset "rand" begin
|
371 | 362 | for F in (Fixed{Int8,7}, Fixed{Int16,8}, Fixed{Int16,10}, Fixed{Int32,16})
|
372 | 363 | @test isa(rand(F), F)
|
|
433 | 424 | @test promote_type(Float32,Q0f7,Int) == Float32
|
434 | 425 | @test promote_type(Q0f7,Q1f6,Q2f5,Q3f4,Q4f3,Q5f2) == Fixed{Int128,7}
|
435 | 426 | end
|
| 427 | + |
| 428 | +@testset "show" begin |
| 429 | + iob = IOBuffer() |
| 430 | + q0f7 = reinterpret(Q0f7, signed(0xaa)) |
| 431 | + show(iob, q0f7) |
| 432 | + str = String(take!(iob)) |
| 433 | + @test str == "-0.672Q0f7" |
| 434 | + @test eval(Meta.parse(str)) === q0f7 |
| 435 | + |
| 436 | + q15f16 = reinterpret(Q15f16, signed(0xaaaaaaaa)) |
| 437 | + show(iob, q15f16) |
| 438 | + str = String(take!(iob)) |
| 439 | + @test str == "-21845.33334Q15f16" |
| 440 | + @test eval(Meta.parse(str)) === q15f16 |
| 441 | + |
| 442 | + show(IOContext(iob, :compact=>true), q15f16) |
| 443 | + @test String(take!(iob)) == "-21845.3" |
| 444 | + |
| 445 | + show(IOContext(iob, :compact=>true, :typeinfo=>Q15f16), q15f16) |
| 446 | + @test String(take!(iob)) == "-21845.3" |
| 447 | + |
| 448 | + show(IOContext(iob, :compact=>true, :typeinfo=>Fixed), q15f16) |
| 449 | + @test String(take!(iob)) == "-21845.3" |
| 450 | + |
| 451 | + show(IOContext(iob, :typeinfo=>Q15f16), q15f16) |
| 452 | + @test String(take!(iob)) == "-21845.33334Q15f16" # TODO: Consider removing suffix (issue #188) |
| 453 | + |
| 454 | + show(IOContext(iob, :typeinfo=>Normed), q15f16) |
| 455 | + @test String(take!(iob)) == "-21845.33334Q15f16" |
| 456 | + |
| 457 | + show(iob, Fixed{Int128,64}(-1.2345e6)) |
| 458 | + @test_broken String(take!(iob)) == "Fixed{Int128,64}(-1.2345e6)" # "Q63f64" is not defined |
| 459 | + |
| 460 | + # TODO: remove this test |
| 461 | + show(iob, reinterpret(Fixed{Int8,8}, signed(0xaa))) |
| 462 | + @test_broken String(take!(iob)) == "Fixed{Int8,8}(-0.336)" # "Q-1f8" is invalid |
| 463 | +end |
| 464 | + |
| 465 | +@testset "summary" begin |
| 466 | + a = Q0f7[0.2, 0.4] |
| 467 | + aa = Fixed[0.2Q0f7 0.4Q0f15] |
| 468 | + |
| 469 | + if VERSION >= v"1.6.0-DEV.356" |
| 470 | + @test_broken summary(a) == "2-element Vector{Q0f7}" |
| 471 | + @test_broken summary(view(a, 1:2)) == "2-element view(::Vector{Q0f7}, 1:2) with eltype Q0f7" |
| 472 | + @test_broken summary(aa) == "1×2 Matrix{Fixed}" |
| 473 | + else |
| 474 | + @test summary(a) == "2-element Array{Q0f7,1} with eltype Fixed{Int8,7}" |
| 475 | + @test summary(view(a, 1:2)) == "2-element view(::Array{Q0f7,1}, 1:2) with eltype Fixed{Int8,7}" |
| 476 | + @test_broken summary(aa) == "1×2 Array{Fixed,2}" |
| 477 | + end |
| 478 | +end |
0 commit comments