public void FindMaximum_XSquared_ThrowsExceptions() { OneDimensionalFunction derivative = x => 2 * x; GradientDescentExtremaFinder extremaFinder = new GradientDescentExtremaFinder(derivative); double initialGuess = 3; var calculatedMinimum = extremaFinder.FindMaximum(initialGuess); double expectedMinimum = 0; Assert.AreEqual(expectedMinimum, calculatedMinimum, Tolerance); }
public void FindMaximum_SinX_ReturnsPiOverTwo() { OneDimensionalFunction derivative = x => Math.Cos(x); GradientDescentExtremaFinder extremaFinder = new GradientDescentExtremaFinder(derivative); double initialGuess = 0; var calculatedMinimumLoc = extremaFinder.FindMaximum(initialGuess); double expectedMinimumLoc = Math.PI / 2; Assert.AreEqual(expectedMinimumLoc, calculatedMinimumLoc, Tolerance); }