Current section

Files

Jump to
plotex test time_units_test.exs
Raw

test/time_units_test.exs

defmodule Plotex.TimeUnitsTest do
use ExUnit.Case
doctest Plotex
require Logger
alias Plotex.ViewRange
@config %Plotex.Axis.Units.Time{}
test "a first b after" do
dt_a = DateTime.from_iso8601("2019-05-20T05:00:00.836Z") |> elem(1)
dt_b = DateTime.from_iso8601("2019-05-20T05:05:00.836Z") |> elem(1)
%{basis_name: unit_name, val: unit_val, order: _unit_ord, diff: delta} =
Plotex.Axis.Units.Time.units_for(dt_a, dt_b, %{@config | ticks: 3})
assert delta == 300
assert unit_name == :minute
assert unit_val == 60
end
test "a after b first" do
dt_a = DateTime.from_iso8601("2019-05-20T05:05:00.836Z") |> elem(1)
dt_b = DateTime.from_iso8601("2019-05-20T05:00:00.836Z") |> elem(1)
%{basis_name: unit_name, val: unit_val, order: _unit_ord, diff: delta} =
Plotex.Axis.Units.Time.units_for(dt_a, dt_b, %{@config | ticks: 3})
assert delta == 300
assert unit_name == :minute
assert unit_val == 60
end
test "time scale" do
dt_a = DateTime.from_iso8601("2019-05-20T05:04:10.836Z") |> elem(1)
dt_b = DateTime.from_iso8601("2019-05-20T05:15:00.836Z") |> elem(1)
scale = Plotex.Axis.Units.scale(@config, %ViewRange{start: dt_a, stop: dt_b})
scale! = scale[:data] |> Enum.take(30)
# for i <- scale! do Logger.warn("#{inspect(i)}") end
assert length(scale!) == 12
end
test "time scale with 4 ticks " do
dt_a = DateTime.from_iso8601("2019-05-20T05:04:10.836Z") |> elem(1)
dt_b = DateTime.from_iso8601("2019-05-20T05:15:00.836Z") |> elem(1)
scale = Plotex.Axis.Units.scale(%{@config | ticks: 4}, %ViewRange{start: dt_a, stop: dt_b})
scale! = scale[:data] |> Enum.take(30)
# for i <- scale! do Logger.warn("#{inspect(i)}") end
assert length(scale!) == 4
end
test "hour time scale" do
dt_a = ~U[2019-05-20T05:04:10.836Z]
dt_b = ~U[2019-05-20T08:15:00.836Z]
scale = Plotex.Axis.Units.scale(@config, %ViewRange{start: dt_a, stop: dt_b})
scale! = scale[:data] |> Enum.take(30)
# for i <- scale! do
# Logger.warn("#{inspect(i)}")
# end
assert length(scale!) == 14
end
end