Skip to content

Commit a6f3bda

Browse files
mateuszbarantimholy
authored andcommitted
Fixed printing of monotonic interpolation objects (#347)
1 parent 5e2d9e8 commit a6f3bda

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

src/io.jl

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,19 @@ function show_ranged(io::IO, X, knots)
107107
Base.print_array(io, [X(x...) for x in Iterators.product(knots...)])
108108
end
109109

110-
getknots(X::BSplineInterpolation) = axes(X)
111-
getknots(X::ScaledInterpolation) = X.ranges
112-
getknots(X::GriddedInterpolation) = X.knots
113-
getknots(X::AbstractExtrapolation) = getknots(parent(X))
110+
getknots(X::BSplineInterpolation) = axes(X)
111+
getknots(X::ScaledInterpolation) = X.ranges
112+
getknots(X::GriddedInterpolation) = X.knots
113+
getknots(X::AbstractExtrapolation) = getknots(parent(X))
114+
getknots(X::MonotonicInterpolation) = (X.knots,)
114115

115-
Base.show(io::IO, ::MIME{Symbol("text/plain")}, X::ScaledInterpolation) = show_ranged(io, X, getknots(X))
116-
Base.show(io::IO, ::MIME{Symbol("text/plain")}, X::GriddedInterpolation) = show_ranged(io, X, getknots(X))
117-
Base.show(io::IO, ::MIME{Symbol("text/plain")}, X::AbstractExtrapolation) = show_ranged(io, X, getknots(X))
116+
Base.show(io::IO, ::MIME{Symbol("text/plain")}, X::ScaledInterpolation) = show_ranged(io, X, getknots(X))
117+
Base.show(io::IO, ::MIME{Symbol("text/plain")}, X::GriddedInterpolation) = show_ranged(io, X, getknots(X))
118+
Base.show(io::IO, ::MIME{Symbol("text/plain")}, X::AbstractExtrapolation) = show_ranged(io, X, getknots(X))
119+
Base.show(io::IO, ::MIME{Symbol("text/plain")}, X::MonotonicInterpolation) = show_ranged(io, X, getknots(X))
118120

119121
# these are called by show(X)
120-
Base.show(io::IO, X::ScaledInterpolation) = show_ranged(io, X, getknots(X))
121-
Base.show(io::IO, X::GriddedInterpolation) = show_ranged(io, X, getknots(X))
122-
Base.show(io::IO, X::AbstractExtrapolation) = show_ranged(io, X, getknots(X))
122+
Base.show(io::IO, X::ScaledInterpolation) = show_ranged(io, X, getknots(X))
123+
Base.show(io::IO, X::GriddedInterpolation) = show_ranged(io, X, getknots(X))
124+
Base.show(io::IO, X::AbstractExtrapolation) = show_ranged(io, X, getknots(X))
125+
Base.show(io::IO, X::MonotonicInterpolation) = show_ranged(io, X, getknots(X))

test/io.jl

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,21 @@ using Test
8585
end
8686

8787
@testset "Monotonic" begin
88-
A = rand(20)
8988
A_x = collect(1.0:2.0:40.0)
89+
A = map(x->x^2, A_x)
9090
itp = interpolate(A_x, A, FritschButlandMonotonicInterpolation())
91-
@test summary(itp) == "20-element interpolate(::Array{Float64,1}, ::Array{Float64,1}, FritschButlandMonotonicInterpolation()) with element type Float64"
91+
teststring = "20-element interpolate(::Array{Float64,1}, ::Array{Float64,1}, FritschButlandMonotonicInterpolation()) with element type Float64"
92+
@test summary(itp) == teststring
93+
94+
io = IOBuffer()
95+
show(io, itp)
96+
str = String(take!(io))
97+
@test occursin(teststring, str)
98+
99+
io2 = IOBuffer()
100+
show(io2, MIME("text/plain"), itp)
101+
str = String(take!(io2))
102+
@test occursin(teststring, str)
92103
end
93104

94105
@testset "Extrapolation" begin

0 commit comments

Comments
 (0)