public void FindMinimum_SinX_ReturnsNegativePiOverTwo() { OneDimensionalFunction derivative = x => Math.Cos(x); GradientDescentExtremaFinder extremaFinder = new GradientDescentExtremaFinder(derivative); double initialGuess = 0; var calculatedMinimum = extremaFinder.FindMinimum(initialGuess); double expectedMinimum = -Math.PI / 2; Assert.AreEqual(expectedMinimum, calculatedMinimum, Tolerance); }
public void FindMinimum_XSquared_ReturnsZero() { OneDimensionalFunction derivative = x => 2 * x; GradientDescentExtremaFinder extremaFinder = new GradientDescentExtremaFinder(derivative); double initialGuess = 3; var calculatedMinimum = extremaFinder.FindMinimum(initialGuess); double expectedMinimum = 0; Assert.AreEqual(expectedMinimum, calculatedMinimum, Tolerance); }