public void GetIntegral_TestCase_BenchmarkNumericalIntegrator(double lowerBound, double upperBound) { var piecewiseConstantInterpolator = GetTestCaseInterpolatorObject(); double actual = piecewiseConstantInterpolator.GetIntegral(lowerBound, upperBound); BenchmarkIntegrator benchmarkIntegrator = new BenchmarkIntegrator(); benchmarkIntegrator.FunctionToIntegrate = piecewiseConstantInterpolator.GetValue; double expected = benchmarkIntegrator.GetValue(lowerBound, upperBound); Assert.That(actual, Is.EqualTo(expected).Within(1E-2)); // the Benchmark is not accurate for such a discontinous function }
public void GetIntegral_TestCase_BenchmarkNumericalIntegrator(double lowerBound, double upperBound) { var interpolator = GetTestCaseInterpolatorObject(); double actual = interpolator.GetIntegral(lowerBound, upperBound); BenchmarkIntegrator benchmarkIntegrator = new BenchmarkIntegrator(); benchmarkIntegrator.FunctionToIntegrate = interpolator.GetValue; double expected = benchmarkIntegrator.GetValue(lowerBound, upperBound); Assert.That(actual, Is.EqualTo(expected).Within(1E-6)); }