Current section
Files
Jump to
Current section
Files
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