fix and format pgfx-tests

This commit is contained in:
Simon Christ 2020-09-16 10:57:34 +02:00
parent acac178d8a
commit 7cb4d42fac

View File

@ -21,12 +21,12 @@ end
@test !haskey(axis.contents[1].options.dict, "fill") @test !haskey(axis.contents[1].options.dict, "fill")
@testset "Legends" begin @testset "Legends" begin
legends_plot = plot( rand(5,2), lab = ["1" ""] ) legends_plot = plot(rand(5, 2), lab = ["1" ""])
scatter!(legends_plot, rand(5) ) scatter!(legends_plot, rand(5))
Plots._update_plot_object(legends_plot) Plots._update_plot_object(legends_plot)
axis_contents = Plots.pgfx_axes(legends_plot.o)[1].contents axis_contents = Plots.pgfx_axes(legends_plot.o)[1].contents
leg_entries = filter( x -> x isa PGFPlotsX.LegendEntry, axis_contents ) leg_entries = filter(x -> x isa PGFPlotsX.LegendEntry, axis_contents)
series = filter( x -> x isa PGFPlotsX.Plot, axis_contents ) series = filter(x -> x isa PGFPlotsX.Plot, axis_contents)
@test length(leg_entries) == 2 @test length(leg_entries) == 2
@test !haskey(series[1].options.dict, "forget plot") @test !haskey(series[1].options.dict, "forget plot")
@test haskey(series[2].options.dict, "forget plot") @test haskey(series[2].options.dict, "forget plot")
@ -91,8 +91,8 @@ end
scatter!(pic, rand(100), markersize = 6, c = :orange) scatter!(pic, rand(100), markersize = 6, c = :orange)
Plots._update_plot_object(pic) Plots._update_plot_object(pic)
axis_contents = Plots.pgfx_axes(pic.o)[1].contents axis_contents = Plots.pgfx_axes(pic.o)[1].contents
leg_entries = filter( x -> x isa PGFPlotsX.LegendEntry, axis_contents ) leg_entries = filter(x -> x isa PGFPlotsX.LegendEntry, axis_contents)
series = filter( x -> x isa PGFPlotsX.Plot, axis_contents ) series = filter(x -> x isa PGFPlotsX.Plot, axis_contents)
@test length(leg_entries) == 2 @test length(leg_entries) == 2
@test length(series) == 4 @test length(series) == 4
@test haskey(series[1].options.dict, "forget plot") @test haskey(series[1].options.dict, "forget plot")
@ -106,7 +106,7 @@ end
end), Plots._shape_keys) end), Plots._shape_keys)
markers = reshape(markers, 1, length(markers)) markers = reshape(markers, 1, length(markers))
n = length(markers) n = length(markers)
x = (range(0, stop = 10, length = n + 2))[2:(end - 1)] x = (range(0, stop = 10, length = n + 2))[2:(end-1)]
y = repeat(reshape(reverse(x), 1, :), n, 1) y = repeat(reshape(reverse(x), 1, :), n, 1)
scatter( scatter(
x, x,
@ -231,7 +231,7 @@ end
# TODO: support :semi # TODO: support :semi
end # testset end # testset
@testset "Quiver" begin @testset "Quiver" begin
x = (-2pi):0.2:(2 * pi) x = (-2pi):0.2:(2*pi)
y = sin.(x) y = sin.(x)
u = ones(length(x)) u = ones(length(x))
@ -255,7 +255,7 @@ end
nodes = filter(x -> !isa(x, PGFPlotsX.Plot), axis_content) nodes = filter(x -> !isa(x, PGFPlotsX.Plot), axis_content)
@test length(nodes) == 1 @test length(nodes) == 1
mktempdir() do path mktempdir() do path
file_path =joinpath(path,"annotations.tex") file_path = joinpath(path, "annotations.tex")
@test_nowarn savefig(pgfx_plot, file_path) @test_nowarn savefig(pgfx_plot, file_path)
open(file_path) do io open(file_path) do io
lines = readlines(io) lines = readlines(io)
@ -271,7 +271,7 @@ end
nodes = filter(x -> !isa(x, PGFPlotsX.Plot), axis_content) nodes = filter(x -> !isa(x, PGFPlotsX.Plot), axis_content)
@test length(nodes) == 3 @test length(nodes) == 3
mktempdir() do path mktempdir() do path
file_path =joinpath(path,"annotations.tex") file_path = joinpath(path, "annotations.tex")
@test_nowarn savefig(pgfx_plot, file_path) @test_nowarn savefig(pgfx_plot, file_path)
open(file_path) do io open(file_path) do io
lines = readlines(io) lines = readlines(io)
@ -296,12 +296,17 @@ end
nodes = filter(x -> !isa(x, PGFPlotsX.Plot), axis_content) nodes = filter(x -> !isa(x, PGFPlotsX.Plot), axis_content)
@test length(nodes) == 9 @test length(nodes) == 9
mktempdir() do path mktempdir() do path
file_path =joinpath(path,"annotations.tex") file_path = joinpath(path, "annotations.tex")
@test_nowarn savefig(annotation_plot, file_path) @test_nowarn savefig(annotation_plot, file_path)
open(file_path) do io open(file_path) do io
lines = readlines(io) lines = readlines(io)
@test count(s -> occursin("node", s), lines) == 9 @test count(s -> occursin("node", s), lines) == 9
end end
# test .tikz extension
file_path = joinpath(path, "annotations.tikz")
@test_nowarn savefig(annotation_plot, file_path)
@test_nowarn open(file_path) do io
end
end end
end # testset end # testset
@testset "Ribbon" begin @testset "Ribbon" begin
@ -321,6 +326,18 @@ end
@test ribbon_plot.o !== nothing @test ribbon_plot.o !== nothing
@test ribbon_plot.o.the_plot !== nothing @test ribbon_plot.o.the_plot !== nothing
end # testset end # testset
@testset "Markers and Paths" begin
pl = plot(
5 .- ones(9),
markershape = [:utriangle, :rect],
markersize = 8,
color = [:red, :black],
)
Plots._update_plot_object(pl)
axis = Plots.pgfx_axes(pl.o)[1]
plots = filter(x -> x isa PGFPlotsX.Plot, axis.contents)
@test length(plots) == 9
end # testset
end # testset end # testset
@testset "Extra kwargs" begin @testset "Extra kwargs" begin
@ -330,15 +347,65 @@ end # testset
@test pl[1].attr[:extra_kwargs][:test] == "me" @test pl[1].attr[:extra_kwargs][:test] == "me"
pl = plot(1:5, test = "me", extra_kwargs = :plot) pl = plot(1:5, test = "me", extra_kwargs = :plot)
@test pl.attr[:extra_plot_kwargs][:test] == "me" @test pl.attr[:extra_plot_kwargs][:test] == "me"
pl = plot(1:5, extra_kwargs = Dict(:plot => Dict(:test => "me"), :series => Dict(:and => "me too"))) pl = plot(
1:5,
extra_kwargs = Dict(
:plot => Dict(:test => "me"),
:series => Dict(:and => "me too"),
),
)
@test pl.attr[:extra_plot_kwargs][:test] == "me" @test pl.attr[:extra_plot_kwargs][:test] == "me"
@test pl[1][1].plotattributes[:extra_kwargs][:and] == "me too" @test pl[1][1].plotattributes[:extra_kwargs][:and] == "me too"
pl = plot( pl = plot(
plot(1:5, title="Line"), plot(1:5, title = "Line"),
scatter(1:5, title="Scatter", extra_kwargs=Dict(:subplot=>Dict("axis line shift" => "10pt"))) scatter(
1:5,
title = "Scatter",
extra_kwargs = Dict(:subplot => Dict("axis line shift" => "10pt")),
),
) )
Plots._update_plot_object(pl) Plots._update_plot_object(pl)
axes = Plots.pgfx_axes(pl.o) axes = Plots.pgfx_axes(pl.o)
@test !haskey(axes[1].options.dict, "axis line shift") @test !haskey(axes[1].options.dict, "axis line shift")
@test haskey(axes[2].options.dict, "axis line shift") @test haskey(axes[2].options.dict, "axis line shift")
pl = plot(
x -> x,
-1:1;
add = raw"\node at (0,0.5) {\huge hi};",
extra_kwargs = :subplot,
)
@test pl[1][:extra_kwargs] == Dict(:add => raw"\node at (0,0.5) {\huge hi};")
Plots._update_plot_object(pl)
axes = Plots.pgfx_axes(pl.o)
@test filter(x -> x isa String, axes[1].contents)[1] ==
raw"\node at (0,0.5) {\huge hi};"
plot!(pl)
@test pl[1][:extra_kwargs] == Dict(:add => raw"\node at (0,0.5) {\huge hi};")
Plots._update_plot_object(pl)
axes = Plots.pgfx_axes(pl.o)
@test filter(x -> x isa String, axes[1].contents)[1] ==
raw"\node at (0,0.5) {\huge hi};"
end # testset
@testset "Titlefonts" begin
pl = plot(1:5, title = "Test me", titlefont = (2, :left))
@test pl[1][:title] == "Test me"
@test pl[1][:titlefontsize] == 2
@test pl[1][:titlefonthalign] == :left
Plots._update_plot_object(pl)
ax_opt = Plots.pgfx_axes(pl.o)[1].options
@test ax_opt["title"] == "Test me"
@test(haskey(ax_opt.dict, "title style")) isa Test.Pass
pl = plot(1:5, plot_title = "Test me", plot_titlefont = (2, :left))
@test pl[:plot_title] == "Test me"
@test pl[:plot_titlefontsize] == 2
@test pl[:plot_titlefonthalign] == :left
pl = heatmap(
rand(3, 3),
colorbar_title = "Test me",
colorbar_titlefont = (12, :right),
)
@test pl[1][:colorbar_title] == "Test me"
@test pl[1][:colorbar_titlefontsize] == 12
@test pl[1][:colorbar_titlefonthalign] == :right
end # testset end # testset