Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/10/17 21:36:03 (7 years ago)
Author:
pkimmesw
Message:

#2665 Fixed small issues, testet benchmark suite, added INX Expressions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Interpreter/Extensions.cs

    r15017 r15189  
    2525
    2626    public static Type GetStackEntryType(this StackTypes stackType) {
     27      if (StackProperties.ContainsKey(stackType) &&
     28          StackProperties[stackType].PropertyType.IsGenericType) {
     29        var genericTypeDef = StackProperties[stackType].PropertyType.GetGenericTypeDefinition();
     30        if (genericTypeDef == typeof(IPushStack<>))
     31          return genericTypeDef.GetGenericArguments()[0];
     32      }
     33
    2734      return StackProperties.ContainsKey(stackType)
    28         ? StackProperties[stackType].PropertyType.GetGenericArguments().Single()
     35        ? StackProperties[stackType]
     36            .PropertyType
     37            .GetInterfaces()
     38            .First(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IPushStack<>))
     39            .GetGenericArguments()
     40            .First()
    2941        : null;
    3042    }
    3143
    3244    public static void PrintStacks(this IPushInterpreter interpreter) {
    33       var stackTypesType = typeof(StackTypes);
    34 
    35       foreach (StackTypes type in Enum.GetValues(stackTypesType)) {
    36         if (!interpreter.Stacks.ContainsKey(type)) continue;
    37 
    38         var stackName = Enum.GetName(stackTypesType, type);
    39         var stack = interpreter.Stacks[type];
     45      foreach (var pair in interpreter.Stacks) {
     46        var stackName = pair.Key.ToString();
     47        var stack = interpreter.Stacks[pair.Key];
    4048
    4149        if (stack.IsEmpty || !stack.IsEnabled) continue;
    4250
    43         var stackString = string.Join(" ", interpreter.StringifyStack(type).Reverse());
     51        var stackString = string.Join(" ", interpreter.StringifyStack(pair.Key).Reverse());
    4452        Console.WriteLine("--------- {0} ---------\n{1}\n", stackName, stackString);
    4553      }
Note: See TracChangeset for help on using the changeset viewer.