private static void FractionalKnapsackDriverCode() { FractionalKnapsack fractionalKnapsack = new FractionalKnapsack(); item[] arr = { new item(60, 10), new item(100, 20), new item(120, 30) }; fractionalKnapsack.FracKnapSack(arr, 50); }
public static void TakesHalf([Random(0, 1000, 100, Distinct = true)] int length) { var val = new[] { 135, 139, 149, 150, 156, 163, 173, 184, 192, 201, 210, 214, 221, 229, 240 }; var wt = new[] { 7.0, 7.3, 7.7, 8.0, 8.2, 8.7, 9.0, 9.4, 9.8, 10.6, 11.0, 11.3, 11.5, 11.8, 12.0 }; var items = Enumerable.Range(1, val.Count()).ToArray(); var capacity = 75; Func <int, double> weightSelector = x => (int)(wt[Array.IndexOf(items, x)] * 10); Func <int, double> valueSelector = x => val[Array.IndexOf(items, x)]; var expected = new[] { 1, 3, 5, 7, 8, 9, 14, 15 }; //Act var solver = new FractionalKnapsack <int>(); var actual = solver.Solve(items, capacity * 10, weightSelector, valueSelector); //Assert Assert.AreEqual(expected.OrderBy(x => x), actual.OrderBy(x => x)); }