public void MutateRemove() { var genes = new List <Rule> { new DiagonalContentFilter(null, null) }; Assert.IsTrue(TicTacToeTests.MutateRemove(genes)); Assert.IsFalse(genes.Any()); }
public void DisplayTest() { var geneSet = TicTacToeTests.CreateGeneSet().ToList(); var fitness = new Fitness(1, 2, 3, 4); var candidate = new Chromosome <Rule, Fitness>(geneSet, fitness, Strategy.None); var watch = Stopwatch.StartNew(); TicTacToeTests.Display(candidate, watch); }
public void MutateSwapAdjacent() { var genes = new List <Rule> { new DiagonalContentFilter(null, null), new DiagonalOppositeFilter(null) }; Assert.IsTrue(TicTacToeTests.MutateSwapAdjacent(genes)); Assert.IsInstanceOfType(genes[0], typeof(DiagonalOppositeFilter)); Assert.IsInstanceOfType(genes[1], typeof(DiagonalContentFilter)); }
public void MutateAddTest() { var genes = new List <Rule>(); var geneSet = TicTacToeTests.CreateGeneSet(); Assert.IsTrue(TicTacToeTests.MutateAdd(genes, geneSet)); Assert.AreEqual(1, genes.Count); Assert.IsTrue(TicTacToeTests.MutateAdd(genes, geneSet)); Assert.AreEqual(2, genes.Count); }
public void MutateReplace() { var genes = new List <Rule> { new DiagonalContentFilter(null, null) }; var geneSet = new Rule[] { new DiagonalOppositeFilter(null) }; Assert.IsTrue(TicTacToeTests.MutateReplace(genes, geneSet)); Assert.AreEqual(1, genes.Count); Assert.IsInstanceOfType(genes[0], typeof(DiagonalOppositeFilter)); }
public void GetFitnessForAllGamesTest() { var geneSet = new[] { new RuleMetadata((expectedContent, count) => new CenterFilter()), }; var genes = geneSet.SelectMany(g => g.CreateRules()).ToList(); var fitness = TicTacToeTests.GetFitnessForAllGames(genes); Assert.AreEqual("100.0% Losses (65), 0.0% Ties (0), 0.0% Wins (0), 1 rules", fitness.ToString()); }
public void MutateMoveTest() { var save = new List <Rule> { new DiagonalContentFilter(null, null), new DiagonalOppositeFilter(null), new RowOppositeFilter(null) }; var genes = save.ToList(); Assert.IsTrue(TicTacToeTests.MutateMove(genes)); CollectionAssert.AreNotEqual(save, genes); }
public void GetMoveTest() { var geneSet = new[] { new RuleMetadata((expectedContent, count) => new CenterFilter()), }; var genes = geneSet.SelectMany(g => g.CreateRules()).ToList(); var board = Enumerable.Range(1, 9).ToDictionary(i => i, i => new Square(i)); var empties = board.Values.Where(v => v.Content == ContentType.Empty).ToArray(); var move = TicTacToeTests.GetMove(genes, board, empties); Assert.IsNotNull(move); Assert.AreEqual(5, (int)move); }
public void CreateGeneTest() { var genes = TicTacToeTests.CreateGeneSet(); Assert.AreEqual(35, genes.Length); }