Beispiel #1
0
        public void GenomesAreSetCorreclty()
        {
            // Set genomes in constructor.
            var genomes = new List <ImmutableGenome>()
            {
                new ImmutableGenome(new Genome())
            }.ToImmutableList();
            var message = new SelectionResultMessage <TestResult>(
                genomes,
                new Dictionary <ImmutableGenome, List <GenomeTournamentResult> >(),
                genomes[0],
                new[] { new TestResult(TimeSpan.FromMilliseconds(1)) });

            // Check message's genomes are equal to the original ones.
            Assert.True(
                genomes.SequenceEqual(message.CompetitiveParents),
                "Some genome has different gene values than the ones that have been provided in the constructor.");
        }
Beispiel #2
0
        public void GenomeCollectionIsImmutable()
        {
            // Create message.
            var originalGenomes = new List <ImmutableGenome>()
            {
                new ImmutableGenome(new Genome())
            };
            var message = new SelectionResultMessage <TestResult>(
                originalGenomes.ToImmutableList(),
                new Dictionary <ImmutableGenome, List <GenomeTournamentResult> >(),
                originalGenomes[0],
                new[] { new TestResult(TimeSpan.FromMilliseconds(1)) });

            // Precondition: Same genes.
            Assert.True(originalGenomes.SequenceEqual(message.CompetitiveParents));

            // Change original genomes.
            originalGenomes.RemoveAt(0);

            // Check genes are now different.
            Assert.False(
                originalGenomes.SequenceEqual(message.CompetitiveParents),
                "List of orderedGenomes was changed even if message is supposed to be immutable.");
        }