44 lines
977 B
Ruby
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
|