Free cookie consent management tool by TermsFeed Policy Generator

source: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problem.ProgramSynthesis.BenchmarkSuite/Example.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: 4.7 KB
Line 
1namespace HeuristicLab.BenchmarkSuite {
2
3  using HeuristicLab.Common;
4  using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
5
6  [StorableClass]
7  public class Example : DeepCloneable {
8    private static readonly long[] emptyIntegers = new long[0];
9    private static readonly double[] emptyFloats = new double[0];
10    private static readonly bool[] emptyBooleans = new bool[0];
11    private static readonly char[] emptyChars = new char[0];
12    private static readonly string[] emptyStrings = new string[0];
13    private static readonly long[][] emptyIntegerVectors = new long[0][];
14    private static readonly double[][] emptyFloatVectors = new double[0][];
15    private static readonly bool[][] emptyBooleanVectors = new bool[0][];
16    private static readonly string[][] emptyStringVectors = new string[0][];
17
18    public Example() {
19      InputArgs = emptyStrings;
20      OutputArgs = emptyStrings;
21
22      InputInteger = emptyIntegers;
23      InputFloat = emptyFloats;
24      InputBoolean = emptyBooleans;
25      InputChar = emptyChars;
26      InputString = emptyStrings;
27      InputIntegerVector = emptyIntegerVectors;
28      InputFloatVector = emptyFloatVectors;
29      InputBooleanVector = emptyBooleanVectors;
30      InputStringVector = emptyStringVectors;
31
32      OutputInteger = emptyIntegers;
33      OutputFloat = emptyFloats;
34      OutputBoolean = emptyBooleans;
35      OutputChar = emptyChars;
36      OutputString = emptyStrings;
37      OutputIntegerVector = emptyIntegerVectors;
38      OutputFloatVector = emptyFloatVectors;
39      OutputBooleanVector = emptyBooleanVectors;
40      OutputStringVector = emptyStringVectors;
41      OutputPrint = string.Empty;
42    }
43
44    public Example(Example origin, Cloner cloner) : base(origin, cloner) {
45      InputArgs = (string[])origin.InputArgs.Clone();
46      OutputArgs = (string[])origin.OutputArgs.Clone();
47
48      InputBoolean = (bool[])origin.InputBoolean.Clone();
49      InputInteger = (long[])origin.InputInteger.Clone();
50      InputFloat = (double[])origin.InputFloat.Clone();
51      InputChar = (char[])origin.InputChar.Clone();
52      InputString = (string[])origin.InputString.Clone();
53      InputIntegerVector = (long[][])origin.InputIntegerVector.Clone();
54      InputFloatVector = (double[][])origin.InputFloatVector.Clone();
55      InputBooleanVector = (bool[][])origin.InputBooleanVector.Clone();
56      InputStringVector = (string[][])origin.InputStringVector.Clone();
57
58      OutputBoolean = (bool[])origin.OutputBoolean.Clone();
59      OutputInteger = (long[])origin.OutputInteger.Clone();
60      OutputFloat = (double[])origin.OutputFloat.Clone();
61      OutputChar = (char[])origin.OutputChar.Clone();
62      OutputString = (string[])origin.OutputString.Clone();
63      OutputIntegerVector = (long[][])origin.OutputIntegerVector.Clone();
64      OutputFloatVector = (double[][])origin.OutputFloatVector.Clone();
65      OutputBooleanVector = (bool[][])origin.OutputBooleanVector.Clone();
66      OutputStringVector = (string[][])origin.OutputStringVector.Clone();
67      OutputPrint = origin.OutputPrint;
68      OutputPrintLineCount = origin.OutputPrintLineCount;
69    }
70
71    [StorableConstructor]
72    public Example(bool deserializing) { }
73
74    [Storable]
75    public string[] InputArgs { get; set; }
76    [Storable]
77    public string[] OutputArgs { get; set; }
78
79    [Storable]
80    public long[] InputInteger { get; set; }
81    [Storable]
82    public double[] InputFloat { get; set; }
83    [Storable]
84    public bool[] InputBoolean { get; set; }
85    [Storable]
86    public char[] InputChar { get; set; }
87    [Storable]
88    public string[] InputString { get; set; }
89    [Storable]
90    public long[][] InputIntegerVector { get; set; }
91    [Storable]
92    public double[][] InputFloatVector { get; set; }
93    [Storable]
94    public bool[][] InputBooleanVector { get; set; }
95    [Storable]
96    public string[][] InputStringVector { get; set; }
97
98    [Storable]
99    public long[] OutputInteger { get; set; }
100    [Storable]
101    public double[] OutputFloat { get; set; }
102    [Storable]
103    public bool[] OutputBoolean { get; set; }
104    [Storable]
105    public char[] OutputChar { get; set; }
106    [Storable]
107    public string[] OutputString { get; set; }
108    [Storable]
109    public long[][] OutputIntegerVector { get; set; }
110    [Storable]
111    public double[][] OutputFloatVector { get; set; }
112    [Storable]
113    public bool[][] OutputBooleanVector { get; set; }
114    [Storable]
115    public string[][] OutputStringVector { get; set; }
116    [Storable]
117    public string OutputPrint { get; set; }
118    [Storable]
119    public int OutputPrintLineCount { get; set; }
120
121    public override IDeepCloneable Clone(Cloner cloner) {
122      return new Example(this, cloner);
123    }
124  }
125}
Note: See TracBrowser for help on using the repository browser.