Example #1
0
        public void Fill_ReturnsNothingForSingleItem_IfCannotBeFitted()
        {
            var array  = new[] { new KnapsackItem <string>("item1", 1, 10) };
            var result = Knapsack.Fill(array, 9);

            TestHelper.AssertSequence(result);
        }
Example #2
0
        public void Fill_ReturnsSingleItem_IfCanBeFitted()
        {
            var array  = new[] { new KnapsackItem <string>("item1", 1, 1) };
            var result = Knapsack.Fill(array, 1);

            TestHelper.AssertSequence(result, "item1");
        }
Example #3
0
        public void Fill_SelectsTheMostValuedItem()
        {
            var array = new[]
            {
                new KnapsackItem <string>("item1", 1, 1),
                new KnapsackItem <string>("item2", 2, 1)
            };
            var result = Knapsack.Fill(array, 1);

            TestHelper.AssertSequence(result, "item2");
        }
Example #4
0
        public void Fill_FitsTwoItems_1()
        {
            var array = new[]
            {
                new KnapsackItem <string>("item1", 1, 5),
                new KnapsackItem <string>("item2", 1, 5)
            };
            var result = Knapsack.Fill(array, 10);

            TestHelper.AssertSequence(result, "item2", "item1");
        }
Example #5
0
        public void Fill_WillChoseSingleItemIfValueCannotBeMaximized()
        {
            var array = new[]
            {
                new KnapsackItem <string>("item1", 4, 10),
                new KnapsackItem <string>("item2", 1, 3),
                new KnapsackItem <string>("item3", 1, 3),
                new KnapsackItem <string>("item4", 1, 4)
            };
            var result = Knapsack.Fill(array, 10);

            TestHelper.AssertSequence(result, "item1");
        }
Example #6
0
        public void Fill_WillChoseMoreItemsIfTheTotalValueIsMaximized()
        {
            var array = new[]
            {
                new KnapsackItem <string>("item1", 2, 10),
                new KnapsackItem <string>("item2", 1, 3),
                new KnapsackItem <string>("item3", 1, 3),
                new KnapsackItem <string>("item4", 1, 4)
            };
            var result = Knapsack.Fill(array, 10);

            TestHelper.AssertSequence(result, "item4", "item3", "item2");
        }
Example #7
0
 public void Fill_ThrowsException_ForNullSequence()
 {
     Assert.Throws <ArgumentNullException>(
         () => Knapsack.Fill <int>(null, 1));
 }
Example #8
0
        public void Fill_ReturnsNothing_ForEmptySequence()
        {
            var result = Knapsack.Fill(new List <KnapsackItem <int> >(), 1);

            TestHelper.AssertSequence(result);
        }
Example #9
0
 public void Fill_ThrowsException_ForZeroOrLessKnapsackWeight()
 {
     Assert.Throws <ArgumentOutOfRangeException>(
         () => Knapsack.Fill(new List <KnapsackItem <int> >(), 0));
 }