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