Changeset 3360 for trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/SubroutineCreaterTest.cs
- Timestamp:
- 04/15/10 19:58:42 (14 years ago)
- Location:
- trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests
- Property svn:ignore
-
old new 1 1 bin 2 2 obj 3 *.user
-
- Property svn:ignore
-
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Tests/SubroutineCreaterTest.cs
r3338 r3360 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using System; 2 23 using System.Text; 3 24 using System.Collections.Generic; … … 8 29 using System.Diagnostics; 9 30 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureAlteringOperators; 10 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.GeneralSymbols;11 31 12 32 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding_3._3.Tests { 13 33 [TestClass] 14 34 public class SubroutineCreaterTest { 15 private static ISymbolicExpressionGrammar grammar; 16 private static List<SymbolicExpressionTree> subroutineTrees; 17 private static int failedEvents; 18 35 private const int POPULATION_SIZE = 1000; 36 private const int MAX_TREE_SIZE = 100; 37 private const int MAX_TREE_HEIGHT = 10; 19 38 private TestContext testContextInstance; 20 39 … … 32 51 } 33 52 34 [ ClassInitialize()]35 public static void SubroutineCreaterTestInitialize(TestContext testContext) {36 var randomTrees = new List<SymbolicExpressionTree>();37 subroutineTrees = new List<SymbolicExpressionTree>();38 int populationSize = 1000;39 failedEvents = 0;40 grammar = Grammars.CreateArithmeticAndAdfGrammar();41 var random = new MersenneTwister();42 for (int i = 0; i < populationSize; i++) {43 var randTree = ProbabilisticTreeCreator.Create(random, grammar, 100, 10);44 // PTC create is tested separately45 randomTrees.Add(randTree);53 [TestMethod()] 54 public void SubroutineCreaterDistributionsTest() { 55 var trees = new List<SymbolicExpressionTree>(); 56 var grammar = Grammars.CreateArithmeticAndAdfGrammar(); 57 var random = new MersenneTwister(31415); 58 int failedEvents = 0; 59 for (int i = 0; i < POPULATION_SIZE; i++) { 60 var tree = ProbabilisticTreeCreator.Create(random, grammar, MAX_TREE_SIZE, MAX_TREE_HEIGHT, 3, 3); 61 if (!SubroutineCreater.CreateSubroutine(random, tree, grammar, MAX_TREE_SIZE, MAX_TREE_HEIGHT, 3, 3)) 62 failedEvents++; 63 Util.IsValid(tree); 64 trees.Add(tree); 46 65 } 47 var newPopulation = new List<SymbolicExpressionTree>(); 48 for (int i = 0; i < populationSize; i++) { 49 var par0 = (SymbolicExpressionTree)randomTrees[random.Next(populationSize)].Clone(); 50 bool success = SubroutineCreater.CreateSubroutine(random, par0, grammar, 100, 10, 3, 3); 51 if (!success) failedEvents++; 52 subroutineTrees.Add(par0); 53 } 54 } 55 56 57 [TestMethod()] 58 public void SubroutineCreaterCreateTest() { 59 foreach (var tree in subroutineTrees) 60 Assert.IsTrue(grammar.IsValidExpression(tree)); 61 } 62 63 [TestMethod()] 64 public void SubroutineCreaterSizeDistributionTest() { 65 Assert.Inconclusive("SubroutineCreater: " + Util.GetSizeDistributionString(subroutineTrees, 105, 5)); 66 } 67 68 [TestMethod()] 69 public void SubroutineCreaterFunctionDistributionTest() { 70 Assert.Inconclusive("SubroutineCreater: " + Util.GetFunctionDistributionString(subroutineTrees)); 71 } 72 73 [TestMethod()] 74 public void SubroutineCreaterNumberOfSubTreesDistributionTest() { 75 Assert.Inconclusive("SubroutineCreater: " + Util.GetNumberOfSubTreesDistributionString(subroutineTrees)); 76 } 77 78 79 [TestMethod()] 80 public void SubroutineCreaterTerminalDistributionTest() { 81 Assert.Inconclusive("SubroutineCreater: " + Util.GetTerminalDistributionString(subroutineTrees)); 66 Assert.Inconclusive("SubroutineCreator: " + Environment.NewLine + 67 "Failed events: " + failedEvents / (double)POPULATION_SIZE * 100 + " %" + Environment.NewLine + 68 Util.GetSizeDistributionString(trees, 105, 5) + Environment.NewLine + 69 Util.GetFunctionDistributionString(trees) + Environment.NewLine + 70 Util.GetNumberOfSubTreesDistributionString(trees) + Environment.NewLine + 71 Util.GetTerminalDistributionString(trees) + Environment.NewLine 72 ); 82 73 } 83 74 }
Note: See TracChangeset
for help on using the changeset viewer.