2024-03-19 09:10:40 -04:00
|
|
|
require "test_helper"
|
|
|
|
|
|
|
|
class TimeSeries::TrendTest < ActiveSupport::TestCase
|
|
|
|
test "handles money trend" do
|
|
|
|
trend = TimeSeries::Trend.new(current: Money.new(100), previous: Money.new(50))
|
|
|
|
assert_equal "up", trend.direction
|
|
|
|
assert_equal Money.new(50), trend.value
|
|
|
|
assert_equal 100.0, trend.percent
|
|
|
|
end
|
2024-04-18 18:09:03 -06:00
|
|
|
|
2024-03-19 09:10:40 -04:00
|
|
|
test "up" do
|
2024-04-18 20:01:40 -06:00
|
|
|
assert_equal "up", TimeSeries::Trend.new(current: 100, previous: 50).direction
|
2024-03-19 09:10:40 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
test "down" do
|
2024-04-18 20:01:40 -06:00
|
|
|
assert_equal "down", TimeSeries::Trend.new(current: 50, previous: 100).direction
|
2024-03-19 09:10:40 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
test "flat" do
|
2024-04-18 20:01:40 -06:00
|
|
|
assert_equal "flat", TimeSeries::Trend.new(current: 100, previous: 100).direction
|
|
|
|
assert_equal "flat", TimeSeries::Trend.new(current: 100, previous: nil).direction
|
2024-03-19 09:10:40 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
test "infinitely up" do
|
2024-04-18 20:01:40 -06:00
|
|
|
assert_equal "up", TimeSeries::Trend.new(current: 100, previous: 0).direction
|
2024-03-19 09:10:40 -04:00
|
|
|
end
|
2024-04-18 20:40:16 -06:00
|
|
|
|
|
|
|
test "infinitely down" do
|
|
|
|
assert_equal "down", TimeSeries::Trend.new(current: nil, previous: 100).direction
|
|
|
|
assert_equal "down", TimeSeries::Trend.new(current: 0, previous: 100).direction
|
|
|
|
end
|
|
|
|
|
|
|
|
test "empty" do
|
|
|
|
assert_equal "flat", TimeSeries::Trend.new(current: nil, previous: nil).direction
|
|
|
|
end
|
2024-03-19 09:10:40 -04:00
|
|
|
end
|