コード例 #1
0
 public void ComputeGeneticDifference
 (
     string expression,
     double[ , ] theoretical,
     ComputingBound bound,
     double expectedDifference
 )
 {
     _computer
     .ComputeGeneticDifference(_nodeAnalyzer.Parse(expression), theoretical, bound)
     .Should()
     .BeApproximately(expectedDifference, Precision);
 }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
 public void Setup()
 {
     _inRangeExpressionComputer  = new InRangeExpressionComputer();
     _geneticExpressionGenerator = new GeneticExpressionGenerator();
     _bound = new ComputingBound(-1.0, 1.0, 20);
 }