Changeset 15273 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Configuration/PushConfigurationBase.cs
- Timestamp:
- 07/19/17 12:55:58 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Configuration/PushConfigurationBase.cs
r15189 r15273 12 12 13 13 [StorableClass] 14 public abstract class PushConfigurationBase : NamedItem, IE nabledExpressionsConfiguration {14 public abstract class PushConfigurationBase : NamedItem, IExpressionsConfiguration { 15 15 16 16 protected PushConfigurationBase() { … … 28 28 enabledExpressions = origin.EnabledExpressions.ToList(); 29 29 expressionsPerStackCount = origin.expressionsPerStackCount.ToDictionary(x => x.Key, x => x.Value); 30 } 30 InExpressionCount = origin.InExpressionCount; 31 Seed = origin.Seed; 32 } 33 34 [Storable] 35 public int Seed { get; set; } 36 37 [Storable] 38 public int InExpressionCount { get; private set; } 31 39 32 40 [Storable] 33 41 private readonly Dictionary<StackTypes, int> expressionsPerStackCount; 42 43 public IReadOnlyDictionary<StackTypes, int> ExpressionsPerStackCount { get { return expressionsPerStackCount; } } 34 44 35 45 public event EventHandler<EnabledExpressionsChangedEventArgs> EnabledExpressionsChanged; … … 112 122 113 123 private void EnableExpressions(IEnumerable<string> expressionNames) { 114 foreach (var expressionName in expressionNames.Except(EnabledExpressions)) 124 var addedExpressions = expressionNames as IList<string> ?? expressionNames.ToList(); 125 126 foreach (var expressionName in addedExpressions.Except(EnabledExpressions)) 115 127 EnableExpression(expressionName, false); 116 128 117 129 if (EnabledExpressionsChanged != null) { 118 EnabledExpressionsChanged(this, new EnabledExpressionsChangedEventArgs( expressionNames, new string[0]));130 EnabledExpressionsChanged(this, new EnabledExpressionsChangedEventArgs(addedExpressions, new string[0])); 119 131 } 120 132 } … … 133 145 134 146 private void DisableExpressions(IEnumerable<string> expressionNames) { 135 foreach (var expressionName in expressionNames.Intersect(EnabledExpressions)) 147 var removedExpressions = expressionNames as IList<string> ?? expressionNames.ToList(); 148 149 foreach (var expressionName in removedExpressions.Intersect(EnabledExpressions)) 136 150 DisableExpression(expressionName, false); 137 151 138 152 if (EnabledExpressionsChanged != null) { 139 EnabledExpressionsChanged(this, new EnabledExpressionsChangedEventArgs(new string[0], expressionNames));153 EnabledExpressionsChanged(this, new EnabledExpressionsChangedEventArgs(new string[0], removedExpressions)); 140 154 } 141 155 } … … 229 243 else DisableStack(type, setDependencies); 230 244 } 245 246 public void InitInExpressions(int totalInputArgumentCount) { 247 InExpressionCount = totalInputArgumentCount; 248 249 for (var i = 0; i < ExpressionTable.InExpressionTable.Count; i++) { 250 var expression = ExpressionTable.InExpressionTable[i]; 251 var expressionName = ExpressionTable.TypeToNameTable[expression.GetType()]; 252 253 DisableExpression(expressionName); 254 } 255 256 if (totalInputArgumentCount > ExpressionTable.InExpressionTable.Count) 257 throw new InvalidOperationException("More input arguments defined as InExpression types"); 258 259 for (var i = 0; i < totalInputArgumentCount; i++) { 260 var expression = ExpressionTable.InExpressionTable[i]; 261 var expressionName = ExpressionTable.TypeToNameTable[expression.GetType()]; 262 263 EnableExpression(expressionName); 264 } 265 } 231 266 } 232 267 }
Note: See TracChangeset
for help on using the changeset viewer.