Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/28/17 22:52:08 (7 years ago)
Author:
pkimmesw
Message:

#2665 Dynamic ErcValues, Separate Push from BenchmarkSuite Push

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Views/DataEditorView.cs

    r14875 r14897  
    22
    33namespace HeuristicLab.BenchmarkSuite.Views {
     4  using System.Collections.Generic;
    45
    56  using HeuristicLab.BenchmarkSuite.Problems;
     
    5152    private Example ParseExample(string[] inputArgs, ExampleArgumentType[] inputArgTypes, string[] outputArgs, ExampleArgumentType[] outputArgTypes) {
    5253      var example = new Example();
     54      var booleanValues = new List<bool>();
     55      var integerValues = new List<long>();
     56      var floatValues = new List<double>();
     57      var charValues = new List<char>();
     58      var stringValues = new List<string>();
    5359
    54       example.InputArgs = new string[inputArgs.Length];
     60      example.InputArgs = inputArgs;
    5561      for (var i = 0; i < inputArgs.Length; i++) {
    5662        var arg = inputArgs[i];
     
    5965        switch (type) {
    6066          case ExampleArgumentType.Boolean:
    61             example.InputBoolean = new[] { ExampleArgumentConverter.ConvertBoolean(arg) };
    62             example.InputArgs[i] = arg;
     67            booleanValues.Add(ExampleArgumentConverter.ConvertBoolean(arg));
    6368            break;
    6469          case ExampleArgumentType.Integer:
    65             example.InputInteger = new[] { ExampleArgumentConverter.ConvertInteger(arg) };
    66             example.InputArgs[i] = arg;
    67             break;
    68           case ExampleArgumentType.IntegerVector:
    69             example.InputInteger = ExampleArgumentConverter.ConvertIntegers(arg);
    70             example.InputArgs[i] = string.Join(ValueSeparator, example.InputInteger);
     70            integerValues.Add(ExampleArgumentConverter.ConvertInteger(arg));
    7171            break;
    7272          case ExampleArgumentType.Float:
    73             example.InputFloat = new[] { ExampleArgumentConverter.ConvertDouble(arg) };
    74             example.InputArgs[i] = arg;
     73            floatValues.Add(ExampleArgumentConverter.ConvertDouble(arg));
    7574            break;
    76           case ExampleArgumentType.FloatVector:
    77             example.InputFloat = ExampleArgumentConverter.ConvertDoubles(arg);
    78             example.InputArgs[i] = string.Join(ValueSeparator, example.InputFloat);
     75          case ExampleArgumentType.Char:
     76            charValues.Add(arg.Length == 1 ? arg[0] : default(char));
     77            break;
     78          case ExampleArgumentType.String:
     79            stringValues.Add(arg);
    7980            break;
    8081        }
    8182      }
    8283
    83       example.OutputArgs = new string[outputArgs.Length];
     84      example.InputBoolean = booleanValues.ToArray();
     85      example.InputInteger = integerValues.ToArray();
     86      example.InputFloat = floatValues.ToArray();
     87      example.InputChar = charValues.ToArray();
     88      example.InputString = stringValues.ToArray();
     89
     90      booleanValues.Clear();
     91      integerValues.Clear();
     92      floatValues.Clear();
     93      charValues.Clear();
     94      stringValues.Clear();
     95
     96      example.OutputArgs = outputArgs;
    8497      for (var i = 0; i < outputArgs.Length; i++) {
    8598        var arg = outputArgs[i];
     
    88101        switch (type) {
    89102          case ExampleArgumentType.Boolean:
    90             example.OutputBoolean = new[] { ExampleArgumentConverter.ConvertBoolean(arg) };
    91             example.OutputArgs[i] = arg;
     103            booleanValues.Add(ExampleArgumentConverter.ConvertBoolean(arg));
    92104            break;
    93105          case ExampleArgumentType.Integer:
    94             example.OutputInteger = new[] { ExampleArgumentConverter.ConvertInteger(arg) };
    95             example.OutputArgs[i] = arg;
    96             break;
    97           case ExampleArgumentType.IntegerVector:
    98             example.OutputInteger = ExampleArgumentConverter.ConvertIntegers(arg);
    99             example.OutputArgs[i] = string.Join(ValueSeparator, example.OutputInteger);
     106            integerValues.Add(ExampleArgumentConverter.ConvertInteger(arg));
    100107            break;
    101108          case ExampleArgumentType.Float:
    102             example.OutputFloat = new[] { ExampleArgumentConverter.ConvertDouble(arg) };
    103             example.OutputArgs[i] = arg;
     109            floatValues.Add(ExampleArgumentConverter.ConvertDouble(arg));
    104110            break;
    105           case ExampleArgumentType.FloatVector:
    106             example.OutputFloat = ExampleArgumentConverter.ConvertDoubles(arg);
    107             example.OutputArgs[i] = string.Join(ValueSeparator, example.OutputFloat);
     111          case ExampleArgumentType.Char:
     112            charValues.Add(arg.Length == 1 ? arg[0] : default(char));
     113            break;
     114          case ExampleArgumentType.String:
     115            stringValues.Add(arg);
    108116            break;
    109117        }
    110118      }
     119
     120      example.OutputBoolean = booleanValues.ToArray();
     121      example.OutputInteger = integerValues.ToArray();
     122      example.OutputFloat = floatValues.ToArray();
     123      example.OutputChar = charValues.ToArray();
     124      example.OutputString = stringValues.ToArray();
    111125
    112126      return example;
Note: See TracChangeset for help on using the changeset viewer.