コード例 #1
0
        public void MutateNodeWithCount(string expression, int expectedCount)
        {
            var node          = new NodeAnalyzer().Parse(expression);
            var optimizedNode = new OptimizationMutator().MutateNodeWithCount(node);

            optimizedNode.Count.Should().Be(expectedCount);
        }
コード例 #2
0
 public GeneticMutator(Random random)
 {
     _random           = random;
     _indexVisitor     = new IndexVisitor(() => _otherIndexLookup);
     _generator        = new RandomNodeGenerator(_random);
     _optimizer        = new OptimizationMutator();
     _otherIndexLookup = -1;
 }
コード例 #3
0
        public void count_with_optimize_mutator(string expression, int expected)
        {
            var tree    = new NodeAnalyzer().Parse(expression);
            var mutator = new OptimizationMutator();

            var(_, count) = mutator.MutateNodeWithCount(tree);
            count.Should().Be(expected);
        }
コード例 #4
0
 public GeneticExpressionGenerator()
 {
     _random         = new Random();
     _computer       = new InRangeExpressionComputer();
     _generator      = new RandomNodeGenerator(_random);
     _optimizer      = new OptimizationMutator();
     _geneticMutator = new GeneticMutator(_random);
 }
コード例 #5
0
        public void optimizer_in_action(string input, string optimized)
        {
            var node          = new NodeAnalyzer().Parse(input);
            var optimizedNode = new OptimizationMutator().MutateNode(node);
            var printer       = new PrettyPrintVisitor();

            printer.VisitNode(optimizedNode);
            printer.ToString().Should().Be(optimized);
        }
コード例 #6
0
 public RandomNodeGenerator(Random random)
 {
     _random = random;
     _optimizationMutator = new OptimizationMutator();
 }