public void Fill_ReturnsNothingForSingleItem_IfCannotBeFitted() { var array = new[] { new KnapsackItem <string>("item1", 1, 10) }; var result = Knapsack.Fill(array, 9); TestHelper.AssertSequence(result); }
public void Fill_ReturnsSingleItem_IfCanBeFitted() { var array = new[] { new KnapsackItem <string>("item1", 1, 1) }; var result = Knapsack.Fill(array, 1); TestHelper.AssertSequence(result, "item1"); }
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"); }
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"); }
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"); }
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"); }
public void Fill_ThrowsException_ForNullSequence() { Assert.Throws <ArgumentNullException>( () => Knapsack.Fill <int>(null, 1)); }
public void Fill_ReturnsNothing_ForEmptySequence() { var result = Knapsack.Fill(new List <KnapsackItem <int> >(), 1); TestHelper.AssertSequence(result); }
public void Fill_ThrowsException_ForZeroOrLessKnapsackWeight() { Assert.Throws <ArgumentOutOfRangeException>( () => Knapsack.Fill(new List <KnapsackItem <int> >(), 0)); }