public void ComputeGeneticDifference ( string expression, double[ , ] theoretical, ComputingBound bound, double expectedDifference ) { _computer .ComputeGeneticDifference(_nodeAnalyzer.Parse(expression), theoretical, bound) .Should() .BeApproximately(expectedDifference, Precision); }
public void ComputeExpressionForBounds(double lowerBound, double upperBound, int stepCount) { var bound = new ComputingBound(lowerBound, upperBound, stepCount); var expected = new double[bound.StepCount + 1, bound.StepCount + 1]; var sut = new double[bound.StepCount + 1, bound.StepCount + 1]; for (var i = 0; i <= bound.StepCount; ++i) { for (var j = 0; j <= bound.StepCount; ++j) { expected[i, j] = bound.LowerBound + 1.0 * i * bound.Step + bound.LowerBound + 1.0 * j * bound.Step; } } _computer.Compute(_nodeAnalyzer.Parse("x + y"), sut, bound); for (var i = 0; i <= bound.StepCount; ++i) { for (var j = 0; j <= bound.StepCount; ++j) { sut[i, j].Should().BeApproximately(expected[i, j], Precision); } } }
public void Setup() { _inRangeExpressionComputer = new InRangeExpressionComputer(); _geneticExpressionGenerator = new GeneticExpressionGenerator(); _bound = new ComputingBound(-1.0, 1.0, 20); }