public void NoItemsTest() { var solver = new ZeroOneDPKnapsackSolver(); IEnumerable<int> seq = Enumerable.Range(10, 10); IEnumerable<IItem> items = seq.Select(item => new IntItem(item)); IEnumerable<IItem> knapsack = solver.Solve(items, 0); Assert.AreEqual(0, knapsack.Count()); }
public void SomeItemsTest() { var solver = new ZeroOneDPKnapsackSolver(); IEnumerable<int> seq = new[] { 2, 3, 4 }; IEnumerable<IItem> items = seq.Select(item => new IntItem(item)); IEnumerable<IItem> knapsack = solver.Solve(items, 5); Assert.AreEqual(2, knapsack.Count()); var twoQuery = from result in knapsack where result.Weight == 2 && result.Value == 2 select result; var threeQuery = from result in knapsack where result.Weight == 3 && result.Value == 3 select result; Assert.IsTrue(twoQuery.Any()); Assert.IsTrue(threeQuery.Any()); }
public void AllItemsTest() { var solver = new ZeroOneDPKnapsackSolver(); IEnumerable<int> seq = Enumerable.Range(1, 5); IEnumerable<IItem> items = seq.Select(item => new IntItem(item)); IEnumerable<IItem> knapsack = solver.Solve(items, 15); Assert.AreEqual(5, knapsack.Count()); var itemSet = new HashSet<IItem>(items); foreach(var item in itemSet) { var query = from result in knapsack where result.Value == item.Value && result.Weight == item.Weight select result; //Make sure we have the item in the result set Assert.IsTrue(query.Any()); } }