Free cookie consent management tool by TermsFeed Policy Generator

source: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Views/ViewHelper.cs @ 14952

Last change on this file since 14952 was 14952, checked in by pkimmesw, 7 years ago

#2665 Added IsNoop to Expression, Made Expressions storable, Fixed Debugger, Fixed and improved problem data and result visualisation, Added custom ErcOption view, Added problem difficulty to problem data name

File size: 3.8 KB
Line 
1namespace HeuristicLab.BenchmarkSuite.Views {
2  using System;
3  using System.Collections.Generic;
4  using System.Globalization;
5  using System.Linq;
6
7  public static class ViewHelper {
8    public static string StringifyInput(ExampleArgumentType type, int offset, Example example, string valueSeparator) {
9      switch (type) {
10        case ExampleArgumentType.Integer: return example.InputInteger[offset].ToString();
11        case ExampleArgumentType.IntegerVector: return "[" + string.Join(", ", example.InputIntegerVector[offset]) + "]";
12
13        case ExampleArgumentType.Float: return example.InputFloat[offset].ToString(CultureInfo.CurrentUICulture);
14        case ExampleArgumentType.FloatVector: return "[" + string.Join(", ", example.InputFloatVector[offset]) + "]";
15
16        case ExampleArgumentType.Boolean: return example.InputBoolean[offset].ToString();
17        case ExampleArgumentType.Char: return example.InputChar[offset].ToString();
18
19        case ExampleArgumentType.String: return example.InputString[offset];
20        case ExampleArgumentType.StringVector: return "[" + string.Join(", ", example.InputStringVector[offset]) + "]";
21
22        default: return string.Empty;
23      }
24    }
25
26    public static string StringifyOutput(ExampleArgumentType type, int offset, Example example, string valueSeparator) {
27      switch (type) {
28        case ExampleArgumentType.Integer: return example.OutputInteger[offset].ToString();
29        case ExampleArgumentType.IntegerVector: return "[" + string.Join(", ", example.OutputIntegerVector[offset]) + "]";
30
31        case ExampleArgumentType.Float: return example.OutputFloat[offset].ToString(CultureInfo.CurrentUICulture);
32        case ExampleArgumentType.FloatVector: return "[" + string.Join(", ", example.OutputFloatVector[offset]) + "]";
33
34        case ExampleArgumentType.Boolean: return example.OutputBoolean[offset].ToString();
35        case ExampleArgumentType.Char: return example.OutputChar[offset].ToString();
36
37        case ExampleArgumentType.String: return example.OutputString[offset];
38        case ExampleArgumentType.Print: return example.OutputPrint;
39        case ExampleArgumentType.StringVector: return "[" + string.Join(", ", example.OutputStringVector[offset]) + "]";
40
41        default: return string.Empty;
42      }
43    }
44
45    private const string IntegerColumnHeader = "int";
46    private const string IntegersColumnHeader = "int[]";
47    private const string DoubleColumnHeader = "float";
48    private const string DoublesColumnHeader = "float[]";
49    private const string BooleanColumnHeader = "bool";
50    private const string CharColumnHeader = "char";
51    private const string StringColumnHeader = "string";
52    private const string PrintColumnHeader = "print";
53    private const string StringsColumnHeader = "string[]";
54    public static string GetHeaderTypeName(ExampleArgumentType type) {
55      switch (type) {
56        case ExampleArgumentType.Integer: return IntegerColumnHeader;
57        case ExampleArgumentType.Float: return DoubleColumnHeader;
58        case ExampleArgumentType.Boolean: return BooleanColumnHeader;
59        case ExampleArgumentType.Char: return CharColumnHeader;
60        case ExampleArgumentType.String: return StringColumnHeader;
61        case ExampleArgumentType.Print: return PrintColumnHeader;
62        case ExampleArgumentType.IntegerVector: return IntegersColumnHeader;
63        case ExampleArgumentType.FloatVector: return DoublesColumnHeader;
64        case ExampleArgumentType.StringVector: return StringsColumnHeader;
65        default: return string.Empty;
66      }
67    }
68
69    public static Dictionary<ExampleArgumentType, int> CreateArgumentCountDict() {
70      return Enum.GetValues(typeof(ExampleArgumentType)).Cast<ExampleArgumentType>().ToDictionary(type => type, _ => 0);
71    }
72  }
73}
Note: See TracBrowser for help on using the repository browser.