From 4fa4b392c67b3d99731582d2a375eae902858ed8 Mon Sep 17 00:00:00 2001 From: Giorgio Calderone Date: Wed, 25 Mar 2020 20:22:04 +0100 Subject: [PATCH] Added test_terminal() function; Changed name and meaning of linestyles: now returns linetypes --- src/Gnuplot.jl | 37 +++++++++++++++++++++++++++++-------- test/runtests.jl | 4 ++-- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/Gnuplot.jl b/src/Gnuplot.jl index 1f5c38c..334b551 100644 --- a/src/Gnuplot.jl +++ b/src/Gnuplot.jl @@ -5,7 +5,7 @@ using StatsBase, ColorSchemes, ColorTypes, StructC14N, ReusePatterns import Base.reset import Base.write -export @gp, @gsp, save, linestyles, palette, contourlines, hist, terminal, terminals +export @gp, @gsp, save, linetypes, palette, contourlines, hist, terminal, terminals, test_terminal # ╭───────────────────────────────────────────────────────────────────╮ # │ TYPE DEFINITIONS │ @@ -133,7 +133,7 @@ end # --------------------------------------------------------------------- tostring(v) = string(v) -tostring(c::ColorTypes.RGB) = string(float(c.r)*255) * " " * string(float(c.g)*255) * " " * string(float(c.b)*255) +tostring(c::ColorTypes.RGB) = string(Int(c.r*255)) * " " * string(Int(c.g*255)) * " " * string(Int(c.b*255)) tostring(v::AbstractString) = "\"" * string(v) * "\"" function data2string(args...) @@ -425,9 +425,17 @@ function write(gp::GPSession, d::DataSet) printstyled(color=:light_black, "GNUPLOT ($(gp.sid)) EOD\n") end write(gp.pin, "$(d.name) << EOD\n") - write(gp.pin, join(d.lines, "\n") * "\n") + buf = join(d.lines, "\n") * "\n" + #if length(buf) > 1e4 + # s = "Writing data to gnuplot (length=$(length(buf)) bytes) ..." + # printstyled(color=:light_black, s) + #end + write(gp.pin, buf) write(gp.pin, "EOD\n") flush(gp.pin) + #if length(buf) > 1e4 + # write(stdout, "\r" * *(fill(" ", length(s))...) * "\r") + #end return nothing end @@ -1027,13 +1035,13 @@ save(sid::Symbol, file::AbstractString; kw...) = savescript(getsession(sid), fil # │ HIGH LEVEL FACILITIES │ # ╰───────────────────────────────────────────────────────────────────╯ # --------------------------------------------------------------------- -linestyles(s::Symbol) = linestyles(colorschemes[s]) -function linestyles(cmap::ColorScheme) - styles = Vector{String}() +linetypes(s::Symbol) = linetypes(colorschemes[s]) +function linetypes(cmap::ColorScheme) + out = Vector{String}() for i in 1:length(cmap.colors) - push!(styles, "set style line $i lt 1 lc rgb '#" * Base.hex(cmap.colors[i])) + push!(out, "set linetype $i lc rgb '#" * Base.hex(cmap.colors[i])) end - return join(styles, "\n") + return join(out, "\n") * "\nset linetype cycle " * string(length(cmap.colors)) * "\n" end # -------------------------------------------------------------------- @@ -1328,4 +1336,17 @@ function splash(outputfile="") nothing end +function test_terminal(term=nothing; linetypes=nothing, palette=nothing) + quit(:test_term) + quit(:test_palette) + if !isnothing(term) + exec(:test_term , "set term $term;") + exec(:test_palette , "set term $term") + end + s = (isnothing(linetypes) ? "" : Gnuplot.linetypes(linetypes)) + exec(:test_term , "$s; test") + s = (isnothing(palette) ? "" : Gnuplot.palette(palette)) + exec(:test_palette , "$s; test palette") +end + end #module diff --git a/test/runtests.jl b/test/runtests.jl index b96a053..a611abf 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -92,8 +92,8 @@ s = Gnuplot.data2string(1:3, 1:3, ["One", "Two", "Three"]) #----------------------------------------------------------------- pal = palette(:deepsea) @test pal == "set palette defined (0.0 '#2B004D', 0.25 '#4E0F99', 0.5 '#3C54D4', 0.75 '#48A9F8', 1.0 '#C5ECFF')\nset palette maxcol 5\n" -ls = linestyles(:deepsea) -@test ls == "set style line 1 lt 1 lc rgb '#2B004D\nset style line 2 lt 1 lc rgb '#4E0F99\nset style line 3 lt 1 lc rgb '#3C54D4\nset style line 4 lt 1 lc rgb '#48A9F8\nset style line 5 lt 1 lc rgb '#C5ECFF" +ls = linetypes(:deepsea) +@test ls == "set linetype 1 lc rgb '#2B004D\nset linetype 2 lc rgb '#4E0F99\nset linetype 3 lc rgb '#3C54D4\nset linetype 4 lc rgb '#48A9F8\nset linetype 5 lc rgb '#C5ECFF\nset linetype cycle 5\n" #----------------------------------------------------------------- # Test wth empty dataset