using VisualRegressionTests using Plots using Random using BinaryProvider using Test using FileIO include("imgcomp.jl") # don't actually show the plots Random.seed!(1234) default(show=false, reuse=true) img_tol = isinteractive() ? 1e-2 : 10e-2 @testset "GR" begin ENV["PLOTS_TEST"] = "true" ENV["GKSwstype"] = "100" @test gr() == Plots.GRBackend() @test backend() == Plots.GRBackend() @static if Sys.islinux() image_comparison_facts(:gr, tol=img_tol, skip = [25, 30]) end end @testset "UnicodePlots" begin @test unicodeplots() == Plots.UnicodePlotsBackend() @test backend() == Plots.UnicodePlotsBackend() # lets just make sure it runs without error p = plot(rand(10)) @test isa(p, Plots.Plot) == true @test isa(display(p), Nothing) == true p = bar(randn(10)) @test isa(p, Plots.Plot) == true @test isa(display(p), Nothing) == true end @testset "Axes" begin p = plot() axis = p.subplots[1][:xaxis] @test typeof(axis) == Plots.Axis @test Plots.discrete_value!(axis, "HI") == (0.5, 1) @test Plots.discrete_value!(axis, :yo) == (1.5, 2) @test Plots.ignorenan_extrema(axis) == (0.5,1.5) @test axis[:discrete_map] == Dict{Any,Any}(:yo => 2, "HI" => 1) Plots.discrete_value!(axis, ["x$i" for i=1:5]) Plots.discrete_value!(axis, ["x$i" for i=0:2]) @test Plots.ignorenan_extrema(axis) == (0.5, 7.5) end @testset "NoFail" begin plots = [histogram([1, 0, 0, 0, 0, 0]), plot([missing]), plot([missing; 1:4]), plot([fill(missing,10); 1:4]), plot([1 1; 1 missing]), plot(["a" "b"; missing "d"], [1 2; 3 4])] for plt in plots display(plt) end end @testset "Segments" begin function segments(args...) segs = UnitRange{Int}[] for seg in iter_segments(args...) push!(segs,seg) end segs end nan10 = fill(NaN,10) @test segments(11:20) == [1:10] @test segments([NaN]) == [] @test segments(nan10) == [] @test segments([nan10; 1:5]) == [11:15] @test segments([1:5;nan10]) == [1:5] @test segments([nan10; 1:5; nan10; 1:5; nan10]) == [11:15, 26:30] @test segments([NaN; 1], 1:10) == [2:2, 4:4, 6:6, 8:8, 10:10] @test segments([nan10; 1:15], [1:15; nan10]) == [11:15] end