Beispiel #1
0
        public void CreateFromGenomeExtractsCorrectValues()
        {
            var genome = this._genomeBuilder.CreateRandomGenome(age: 2);
            var point  = PartialGenomeSearchPoint.CreateFromGenome(
                genome,
                this._parameterTree,
                this._minimumDomainSize);

            var continuousIdentifiers = new[] { "continuous", "log", "quasi-continuous", "quasi-continuous-log" };

            Assert.True(
                continuousIdentifiers.Length == point.Values.Count,
                $"There should be four continuous parameters: {TestUtils.PrintList(continuousIdentifiers)}.");
            var values = BoundedSearchPoint.StandardizeValues(
                continuousIdentifiers.Select(id => Convert.ToDouble(genome.GetGeneValue(id).GetValue())).ToArray(),
                this._lowerBounds,
                this._upperBounds);

            for (int i = 0; i < continuousIdentifiers.Length; i++)
            {
                var identifier = continuousIdentifiers[i];
                Console.Out.WriteLine($"Checking value of parameter {identifier}...");
                Assert.Equal(
                    values[i],
                    point.Values[i]);
            }
        }
Beispiel #2
0
 public void CreateFromGenomeThrowsForMissingParameterTree()
 {
     Assert.Throws <ArgumentNullException>(
         () => PartialGenomeSearchPoint.CreateFromGenome(
             this._genomeBuilder.CreateRandomGenome(age: 1),
             parameterTree: null,
             minimumDomainSize: 5));
 }
Beispiel #3
0
 public void CreateFromGenomeThrowsForMissingGenome()
 {
     Assert.Throws <ArgumentNullException>(
         () => PartialGenomeSearchPoint.CreateFromGenome(
             genome: null,
             parameterTree: this._parameterTree,
             minimumDomainSize: 5));
 }
Beispiel #4
0
        public void GenomePropertyProducesIndependentGenome()
        {
            var genome = this._genomeBuilder.CreateRandomGenome(age: 0);
            var point  = PartialGenomeSearchPoint.CreateFromGenome(genome, this._parameterTree, this._minimumDomainSize);

            genome.SetGene("discrete", new Allele <double>(-6));

            var createdGenome = point.Genome.CreateMutableGenome();

            Assert.True(
                -6 != (int)createdGenome.GetGeneValue("discrete").GetValue(),
                "Created genome should be a different object than the one the point was initialized with.");
        }
Beispiel #5
0
        public void ConstructionIsConsistent()
        {
            // We do not care about age --> set it to default age.
            var genome = this._genomeBuilder.CreateRandomGenome(age: 0);

            genome.SetGene("quasi-continuous-log", new Allele <int>(3));
            var searchPoint = PartialGenomeSearchPoint.CreateFromGenome(
                genome,
                this._parameterTree,
                this._minimumDomainSize);
            var samePoint = new PartialGenomeSearchPoint(
                underlyingGenome: new ImmutableGenome(genome),
                values: searchPoint.Values,
                genomeSearchPointConverter: this._genomeSearchPointConverter,
                genomeBuilder: this._genomeBuilder,
                lowerBounds: this._lowerBounds,
                upperBounds: this._upperBounds);
            var genomeString    = genome.ToCappedDecimalString();
            var samePointString = samePoint.Genome.ToCappedDecimalString();

            genomeString.ShouldBe(samePointString, "Genome should stay the same if transformed into values and back.");

            var values = BoundedSearchPoint.StandardizeValues(new[] { 0, 0.2, 3, 2 }, this._lowerBounds, this._upperBounds);

            searchPoint = new PartialGenomeSearchPoint(
                underlyingGenome: new ImmutableGenome(genome),
                values: values,
                genomeSearchPointConverter: this._genomeSearchPointConverter,
                genomeBuilder: this._genomeBuilder,
                lowerBounds: this._lowerBounds,
                upperBounds: this._upperBounds);
            samePoint = PartialGenomeSearchPoint.CreateFromGenome(
                searchPoint.Genome.CreateMutableGenome(),
                this._parameterTree,
                this._minimumDomainSize);
            for (int i = 0; i < values.Count; i++)
            {
                Assert.Equal(
                    values[i],
                    samePoint.Values[i],
                    4);
            }
        }