aoc_omni/ruby/2025/5/test/test_ingredient_management.rb

44 lines
977 B
Ruby

require "minitest/autorun"
require "ingredient_management"
class TestIngredientManagement < Minitest::Test
def database
<<-END
3-5
10-14
16-20
12-18
1
5
8
11
17
32
END
end
def test_fresh_ingredient_ids
im = IngredientManagement.for(database)
assert_equal([1,5,8,11,17,32], im.ids)
assert_equal([3..5, 10..14, 16..20, 12..18], im.ranges)
assert_equal([5, 11, 17], im.fresh_ingredient_ids)
end
def test_all_fresh_ids_count
im = IngredientManagement.for(database)
assert_equal(14, im.all_fresh_ids_count)
end
def test_combine_two_ranges
im = IngredientManagement.new([], [])
assert_equal([1..6, 9..12], im.combine_two_ranges(1..6, 9..12))
assert_equal([1..12], im.combine_two_ranges(1..9, 6..12))
assert_equal([1..12], im.combine_two_ranges(1..9, 1..12))
end
def test_combine_ranges
im = IngredientManagement.new([1..2, 3..4, 2..6, 9..12], [])
assert_equal([1..6, 9..12], im.combine_ranges)
end
end