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."); }
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."); }