Current section

Files

Jump to
plotex test axis_test.exs
Raw

test/axis_test.exs

defmodule AxisTest do
require Logger
use ExUnit.Case
alias Plotex.Axis
# @default_css
doctest Plotex
test "data plots" do
xdata = 1..4 |> Enum.map(& &1)
ydata = xdata |> Enum.map(&:math.sin(&1 / 10.0))
xlims = Plotex.Axis.Units.Numeric.range_from(xdata) |> Plotex.ViewRange.new(:horiz)
xaxis = %Axis{limits: xlims}
# Logger.warn("xlims: #{inspect xlims}")
# Logger.warn("xaxis: #{inspect xaxis}")
ylims = Plotex.Axis.Units.Numeric.range_from(ydata) |> Plotex.ViewRange.new(:vert)
yaxis = %Axis{limits: ylims}
# Logger.warn("ylims: #{inspect ylims}")
# Logger.warn("yaxis: #{inspect yaxis}")
{xrng, yrng} = Plotex.plot_data({xdata, ydata}, xaxis, yaxis)
# Logger.warn("xrng: #{inspect xrng |> Enum.to_list()}")
# Logger.warn("yrng: #{inspect yrng |> Enum.to_list()}")
xs = [{1, 10.0}, {2, 36.66666666666667}, {3, 63.333333333333336}, {4, 90.0}]
assert xs == Enum.to_list(xrng)
ys = [
{0.09983341664682815, 10.0},
{0.19866933079506122, 37.30415995856187},
{0.29552020666133955, 64.05993825604988},
{0.3894183423086505, 90.0}
]
assert ys == Enum.to_list(yrng)
end
test "plot limits" do
xdata = 1..4 |> Enum.map(& &1)
ydata = xdata |> Enum.map(&:math.sin(&1 / 10.0))
# xlims = Plotex.Axis.Units.Numeric.range_from(xdata) |> Plotex.ViewRange.new()
# xaxis = %Axis{limits: xlims}
# _ylims = Plotex.Axis.Units.Numeric.range_from(ydata) |> Plotex.ViewRange.new()
# yaxis = %Axis{limits: ylims}
{xrng, yrng} = Plotex.limits([{xdata, ydata}])
assert xrng == %Plotex.ViewRange{projection: :cartesian, start: 0.85, stop: 4.15}
assert yrng == %Plotex.ViewRange{
projection: :cartesian,
start: 0.08535417036373703,
stop: 0.40389758859174163
}
end
end