- Timestamp:
- 10/13/11 15:31:27 (13 years ago)
- Location:
- trunk/sources
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/ArchitectureManipulators/ArgumentCreater.cs
r5809 r6918 180 180 foreach (var symb in subtree.Grammar.Symbols) { 181 181 if (symb is StartSymbol || symb is ProgramRootSymbol) continue; 182 if (symb.Name == matchingSymbol.Name) continue; //don't allow invoke as child of invoke 182 183 if (subtree.Grammar.IsAllowedChildSymbol(selectedCutPoint.Parent.Symbol, symb, selectedCutPoint.ChildIndex)) 183 184 subtree.Grammar.AddAllowedChildSymbol(matchingSymbol, symb, newArgumentNode.Symbol.ArgumentIndex); -
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/ArchitectureManipulators/GrammarModifier.cs
r5809 r6918 38 38 //set allowed child symbols of invoke symbol 39 39 foreach (ISymbol child in grammar.Symbols) { 40 if (child.Name == invokeSym.Name) continue; 40 41 int i = 0; 41 42 foreach (CutPoint argumentCutPoint in argumentCutPoints) { -
trunk/sources/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/Util.cs
r6911 r6918 137 137 Assert.IsTrue(otherRootNode.Grammar.GetMinimumSubtreeCount(invoke) == arity); 138 138 Assert.IsTrue(otherRootNode.Grammar.GetMaximumSubtreeCount(invoke) == arity); 139 Assert.IsFalse(otherRootNode.Grammar.IsAllowedChildSymbol(invoke, invoke)); 140 for (int i = 0; i < arity; i++) { 141 Assert.IsFalse(otherRootNode.Grammar.IsAllowedChildSymbol(invoke, invoke, i)); 142 } 139 143 } 140 144 } … … 161 165 162 166 foreach (var symbol in grammar.ModifyableSymbols) { 163 //check if ever symbol has at least on 167 //check if ever symbol has at least one allowed child 164 168 for (int i = 0; i < grammar.GetMaximumSubtreeCount(symbol); i++) 165 169 Assert.IsTrue(grammar.GetAllowedChildSymbols(symbol, i).Any());
Note: See TracChangeset
for help on using the changeset viewer.