コード例 #1
0
        public void InvalidGenomeIsHandledCorrectly()
        {
            var positiveGenomeBuilder = new ConfigurableGenomeBuilder(
                this._parameterTree,
                g => (int)g.GetGeneValue("discrete").GetValue() != 0,
                mutationRate: 1);
            var genome = this._genomeBuilder.CreateRandomGenome(0);

            genome.SetGene("discrete", new Allele <int>(0));
            var genomeValues       = new[] { 1.4, 0.3, 0, 1.5 };
            var standardizedValues =
                BoundedSearchPoint.StandardizeValues(genomeValues, this._lowerBounds, this._upperBounds);
            var searchPoint = new PartialGenomeSearchPoint(
                underlyingGenome: new ImmutableGenome(genome),
                values: standardizedValues,
                genomeSearchPointConverter: this._genomeSearchPointConverter,
                genomeBuilder: positiveGenomeBuilder,
                lowerBounds: this._lowerBounds,
                upperBounds: this._upperBounds);

            var associatedGenome = searchPoint.Genome.CreateMutableGenome();

            Assert.True(
                0 != (int)associatedGenome.GetGeneValue("discrete").GetValue(),
                "Genome should have been repaired.");
            Assert.True(searchPoint.IsRepaired, "Repair flag should have been set.");
        }
コード例 #2
0
        public void InvalidGenomeIsHandledCorrectly()
        {
            var positiveGenomeBuilder = new ConfigurableGenomeBuilder(
                this._parameterTree,
                g => (int)g.GetGeneValue("discrete").GetValue() != -4,
                mutationRate: 1);
            var genomeValues       = new[] { 0, 1.4, -4, 0 };
            var standardizedValues =
                BoundedSearchPoint.StandardizeValues(genomeValues, this._lowerBounds, this._upperBounds);
            var searchPoint = new ContinuizedGenomeSearchPoint(
                values: standardizedValues,
                parameterTree: this._parameterTree,
                genomeBuilder: positiveGenomeBuilder,
                lowerBounds: this._lowerBounds,
                upperBounds: this._upperBounds);

            var genome = searchPoint.Genome.CreateMutableGenome();

            Assert.True(
                -4 != (int)genome.GetGeneValue("discrete").GetValue(),
                "Genome should have been repaired.");
            Assert.Equal(standardizedValues, searchPoint.Values);
            Assert.True(searchPoint.IsRepaired, "Repair flag should have been set.");
        }