Changeset 5686 for branches/DataAnalysis Refactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Tests/Util.cs
- Timestamp:
- 03/15/11 13:34:38 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DataAnalysis Refactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Tests/Util.cs
r5549 r5686 120 120 foreach (var defunTreeNode in tree.Root.SubTrees.OfType<DefunTreeNode>()) { 121 121 int arity = defunTreeNode.NumberOfArguments; 122 123 foreach (var argTreenode in defunTreeNode.IterateNodesPrefix().OfType<ArgumentTreeNode>()) { 124 Assert.IsTrue(argTreenode.SubtreesCount == 0); 125 Assert.IsTrue(((Argument)argTreenode.Symbol).ArgumentIndex < arity); 126 } 127 128 foreach (var argSymbol in Enumerable.Range(0, defunTreeNode.NumberOfArguments).Select(x => new Argument(x))) { 129 Assert.IsTrue(defunTreeNode.Grammar.ContainsSymbol(argSymbol)); 130 Assert.IsTrue(defunTreeNode.Grammar.GetMaximumSubtreeCount(argSymbol) == 0); 131 Assert.IsTrue(defunTreeNode.Grammar.GetMinimumSubtreeCount(argSymbol) == 0); 132 } 133 122 134 var invoke = new InvokeFunction(defunTreeNode.FunctionName); 123 135 foreach (var otherRootNode in tree.Root.SubTrees) { 124 136 if (otherRootNode.Grammar.ContainsSymbol(invoke)) { 125 Assert.IsTrue(otherRootNode.Grammar.GetMin SubtreeCount(invoke) == arity);126 Assert.IsTrue(otherRootNode.Grammar.GetMax SubtreeCount(invoke) == arity);137 Assert.IsTrue(otherRootNode.Grammar.GetMinimumSubtreeCount(invoke) == arity); 138 Assert.IsTrue(otherRootNode.Grammar.GetMaximumSubtreeCount(invoke) == arity); 127 139 } 128 140 } 141 129 142 } 130 //Assert.AreEqual(tree.Root.Symbol, tree.Root.Grammar.StartSymbol); 131 foreach (var subtree in tree.Root.SubTrees) 143 foreach (var subtree in tree.Root.SubTrees) { 132 144 Assert.AreNotSame(subtree.Grammar, tree.Root.Grammar); 145 IsValid(subtree.Grammar); 146 } 147 148 IsValid(tree.Root.Grammar); 133 149 IsValid(tree.Root); 150 } 151 152 public static void IsValid(ISymbolicExpressionTreeGrammar grammar) { 153 Assert.IsTrue(grammar.Symbols.Count() == grammar.Symbols.Distinct().Count()); 154 foreach (ISymbol symbol in grammar.Symbols) { 155 Assert.IsTrue(grammar.GetMinimumSubtreeCount(symbol) <= grammar.GetMaximumExpressionLength(symbol)); 156 Assert.IsTrue(grammar.GetAllowedChildSymbols(symbol).Count() == grammar.GetAllowedChildSymbols(symbol).Distinct().Count()); 157 for (int i = 0; i < grammar.GetMaximumSubtreeCount(symbol); i++) { 158 Assert.IsTrue(grammar.GetAllowedChildSymbols(symbol, i).Count() == grammar.GetAllowedChildSymbols(symbol, i).Distinct().Count()); 159 } 160 } 134 161 } 135 162 … … 138 165 where symb.Name == treeNode.Symbol.Name 139 166 select symb).SingleOrDefault(); 140 Assert.IsTrue(treeNode.SubTrees.Count() >= treeNode.Grammar.GetMin SubtreeCount(matchingSymbol));141 Assert.IsTrue(treeNode.SubTrees.Count() <= treeNode.Grammar.GetMax SubtreeCount(matchingSymbol));167 Assert.IsTrue(treeNode.SubTrees.Count() >= treeNode.Grammar.GetMinimumSubtreeCount(matchingSymbol)); 168 Assert.IsTrue(treeNode.SubTrees.Count() <= treeNode.Grammar.GetMaximumSubtreeCount(matchingSymbol)); 142 169 Assert.AreNotEqual(0.0, matchingSymbol.InitialFrequency); // check that no deactivated symbols occur in the tree 143 170 for (int i = 0; i < treeNode.SubTrees.Count(); i++) { 144 Assert.IsTrue(treeNode.Grammar.GetAllowed Symbols(treeNode.Symbol, i).Select(x => x.Name).Contains(treeNode.GetSubTree(i).Symbol.Name));171 Assert.IsTrue(treeNode.Grammar.GetAllowedChildSymbols(treeNode.Symbol, i).Select(x => x.Name).Contains(treeNode.GetSubTree(i).Symbol.Name)); 145 172 IsValid(treeNode.GetSubTree(i)); 146 173 }
Note: See TracChangeset
for help on using the changeset viewer.