public void CheckInvalidInputs()
 {
     Assert.Throws <InvalidOperationException>(() => ChallengeSolution.SolveBounded(null, new uint[1], new uint[1], 1));
     Assert.Throws <InvalidOperationException>(() => ChallengeSolution.SolveBounded(new uint[1], null, new uint[1], 1));
     Assert.Throws <InvalidOperationException>(() => ChallengeSolution.SolveBounded(new uint[1], new uint[2], new uint[1], 1));
     Assert.Throws <InvalidOperationException>(() => ChallengeSolution.SolveBounded(new uint[1], new uint[1], new uint[2], 1));
 }
 public void TestBounded(uint[] values, uint[] weights, uint[] stock, uint capacity, uint[] expectedSet, uint expectedSum)
 {
     (uint[] outputSet, uint outputSum) = ChallengeSolution.SolveBounded(values, weights, stock, capacity);
     this.AssertResult(outputSet, outputSum, expectedSet, expectedSum);
 }
 public void TestZeroOne(uint[] values, uint[] weights, uint capacity, uint[] expectedSet, uint expectedSum)
 {
     (uint[] outputSet, uint outputSum) = ChallengeSolution.SolveZeroOne(values, weights, capacity);
     this.AssertResult(outputSet, outputSum, expectedSet, expectedSum);
 }