Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/CloningConstructorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/CloningConstructorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/CloningConstructorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/CollectObjectGraphTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/CollectObjectGraphTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/CollectObjectGraphTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ContentViewTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ContentViewTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ContentViewTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -24,5 +24,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
 using HeuristicLab.PluginInfrastructure;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -38,4 +37,9 @@
       //get all non-generic and instantiable classes which implement IContentView
       foreach (Type viewType in ApplicationManager.Manager.GetTypes(typeof(IContentView))) {
+        // jkarder: skip this test for the SymbolicDataAnalysisModelMathView (and for views that derive from it)
+        // reason: our new build agent cannot create an instance of this view due to the use of System.Windows.Forms.WebBrowser
+        if (typeof(HeuristicLab.Problems.DataAnalysis.Symbolic.Views.SymbolicDataAnalysisModelMathView).IsAssignableFrom(viewType))
+          continue;
+
         //get all ContentAttributes on the instantiable view
         foreach (ContentAttribute attribute in viewType.GetCustomAttributes(typeof(ContentAttribute), false).Cast<ContentAttribute>()) {
@@ -48,6 +52,5 @@
         try {
           accessor.Invoke("OnContentChanged");
-        }
-        catch (Exception ex) {
+        } catch (Exception ex) {
           Assert.Fail(viewType.ToString() + Environment.NewLine + ex.Message);
         }
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/DeepCloneableCloningTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/DeepCloneableCloningTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/DeepCloneableCloningTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/GeneticAlgorithmTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/GeneticAlgorithmTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/GeneticAlgorithmTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/InstantiateCreatablesTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/InstantiateCreatablesTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/InstantiateCreatablesTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ParameterVisibilityTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ParameterVisibilityTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ParameterVisibilityTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/PluginDependenciesTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/PluginDependenciesTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/PluginDependenciesTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/PluginLoader.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/PluginLoader.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/PluginLoader.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/AlpsSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/AlpsSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/AlpsSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/EsGriewankSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/EsGriewankSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/EsGriewankSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GABppSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GABppSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GABppSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GAGroupingProblemSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GAGroupingProblemSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GAGroupingProblemSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GATspSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GATspSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GATspSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GAVrpSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GAVrpSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GAVrpSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPArtificialAntSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPArtificialAntSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPArtificialAntSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPLawnMowerSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPLawnMowerSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPLawnMowerSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPMultiplexerSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPMultiplexerSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPMultiplexerSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPRobocodeSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPRobocodeSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPRobocodeSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicClassificationSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicClassificationSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicClassificationSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleWithOSTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleWithOSTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPSymbolicRegressionSampleWithOSTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -67,10 +67,10 @@
         // been able to identify the real cause. Presumably, execution on a Xeon and a Core i7 processor 
         // leads to different results. 
-        Assert.AreEqual(0.90811178793448177, SamplesUtils.GetDoubleResult(osga, "BestQuality"), 1E-8, Environment.NewLine + "Best Quality differs.");
-        Assert.AreEqual(0.87264498853305739, SamplesUtils.GetDoubleResult(osga, "CurrentAverageQuality"), 1E-8, Environment.NewLine + "Current Average Quality differs.");
-        Assert.AreEqual(0.75425658608938817, SamplesUtils.GetDoubleResult(osga, "CurrentWorstQuality"), 1E-8, Environment.NewLine + "Current Worst Quality differs.");
-        Assert.AreEqual(8900, SamplesUtils.GetIntResult(osga, "EvaluatedSolutions"), Environment.NewLine + "Evaluated Solutions differ.");
-        Assert.AreEqual(0.90811178793448177, bestTrainingSolution.TrainingRSquared, 1E-8, Environment.NewLine + "Best Training Solution Training R² differs.");
-        // Assert.AreEqual(0.896290231994223, bestTrainingSolution.TestRSquared, 1E-8, Environment.NewLine + "Best Training Solution Test R² differs.");
+        Assert.AreEqual(0.99174959007940156, SamplesUtils.GetDoubleResult(osga, "BestQuality"), 1E-8, Environment.NewLine + "Best Quality differs.");
+        Assert.AreEqual(0.9836083751914968, SamplesUtils.GetDoubleResult(osga, "CurrentAverageQuality"), 1E-8, Environment.NewLine + "Current Average Quality differs.");
+        Assert.AreEqual(0.98298394717065463, SamplesUtils.GetDoubleResult(osga, "CurrentWorstQuality"), 1E-8, Environment.NewLine + "Current Worst Quality differs.");
+        Assert.AreEqual(10100, SamplesUtils.GetIntResult(osga, "EvaluatedSolutions"), Environment.NewLine + "Evaluated Solutions differ.");
+        Assert.AreEqual(0.99174959007940156, bestTrainingSolution.TrainingRSquared, 1E-8, Environment.NewLine + "Best Training Solution Training R² differs.");
+        Assert.AreEqual(0.8962902319942232, bestTrainingSolution.TestRSquared, 1E-8, Environment.NewLine + "Best Training Solution Test R² differs.");
       } else {
         Assert.AreEqual(0.9971536312165723, SamplesUtils.GetDoubleResult(osga, "BestQuality"), 1E-8, Environment.NewLine + "Best Qualitiy differs.");
@@ -104,4 +104,6 @@
       var squareroot = grammar.Symbols.OfType<SquareRoot>().Single();
       var root = grammar.Symbols.OfType<Root>().Single();
+      var cube = grammar.Symbols.OfType<Cube>().Single();
+      var cuberoot = grammar.Symbols.OfType<CubeRoot>().Single();
       var log = grammar.Symbols.OfType<Logarithm>().Single();
       var exp = grammar.Symbols.OfType<Exponential>().Single();
@@ -130,4 +132,6 @@
       grammar.AddAllowedChildSymbol(squareroot, variable);
 
+      cube.Enabled = false;
+      cuberoot.Enabled = false;
       root.Enabled = false;
 
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPTimeSeriesSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPTimeSeriesSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GPTimeSeriesSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GaussianProcessRegressionSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GaussianProcessRegressionSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GaussianProcessRegressionSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -50,6 +50,6 @@
       gpr.Seed = 1618551877;
       SamplesUtils.RunAlgorithm(gpr);
-      Assert.AreEqual(-940.60591737780555, SamplesUtils.GetDoubleResult(gpr, "NegativeLogLikelihood"));
-      Assert.AreEqual(0.99560909041069334, SamplesUtils.GetDoubleResult(gpr, "Training R²"));
+      Assert.AreEqual(-940.70700288855619, SamplesUtils.GetDoubleResult(gpr, "NegativeLogLikelihood"));
+      Assert.AreEqual(0.99563390794061979, SamplesUtils.GetDoubleResult(gpr, "Training R²"));
     }
 
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GeSymbolicRegressionSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GeSymbolicRegressionSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/GeSymbolicRegressionSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/IslandGaTspSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/IslandGaTspSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/IslandGaTspSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/LocalSearchKnapsackSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/LocalSearchKnapsackSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/LocalSearchKnapsackSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/OSESGriewankSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/OSESGriewankSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/OSESGriewankSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/PsoRastriginSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/PsoRastriginSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/PsoRastriginSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/RAPGASchedulingSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/RAPGASchedulingSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/RAPGASchedulingSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/ScatterSearchVRPSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/ScatterSearchVRPSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/ScatterSearchVRPSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/SimulatedAnnealingRastriginSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/SimulatedAnnealingRastriginSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/SimulatedAnnealingRastriginSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/TabuSearchTspSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/TabuSearchTspSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/TabuSearchTspSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/TabuSearchVRPSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/TabuSearchVRPSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/TabuSearchVRPSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/VnsOpSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/VnsOpSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/VnsOpSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/VnsTspSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/VnsTspSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/Samples/VnsTspSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/StorableTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/StorableTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/StorableTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,4 +25,5 @@
 using System.Reflection;
 using System.Text;
+using HEAL.Attic;
 using HeuristicLab.Common;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -41,11 +42,24 @@
 
       foreach (Type storableType in ApplicationManager.Manager.GetTypes(typeof(object))
-        .Where(StorableClassAttribute.IsStorableClass)) {
+        .Where(StorableTypeAttribute.IsStorableType)) {
         //test only types contained in HL plugin assemblies
+        if (!storableType.Namespace.StartsWith("HeuristicLab")) continue;
         if (storableType.Namespace.Contains(".Tests")) continue;
         if (!PluginLoader.Assemblies.Contains(storableType.Assembly)) continue;
 
+        if (storableType.IsEnum || storableType.IsInterface) continue;
+        var storableFields = storableType
+          .GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)
+          .Where(fi => StorableAttribute.IsStorable(fi));
+        var storableProps = storableType
+          .GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)
+          .Where(fi => StorableAttribute.IsStorable(fi));
+
+        // a storable constructor should be given but is not absolutely required.
+        // when there are no storable fields then a storable ctor has no real purpose.
+        if (!storableFields.Any() && !storableProps.Any()) continue;
+
         IEnumerable<ConstructorInfo> ctors = storableType.GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
-        ConstructorInfo storableConstructor = ctors.Where(c => c.GetParameters().Count() == 1 && c.GetParameters().First().ParameterType == typeof(bool)).FirstOrDefault();
+        ConstructorInfo storableConstructor = ctors.Where(c => c.GetParameters().Count() == 1 && c.GetParameters().First().ParameterType == typeof(HEAL.Attic.StorableConstructorFlag)).FirstOrDefault();
         if (storableConstructor == null) errorMessage.Append(Environment.NewLine + storableType.ToString() + ": No storable constructor is defined.");
         else {
@@ -68,5 +82,5 @@
       foreach (var type in ApplicationManager.Manager.GetTypes(typeof(object), onlyInstantiable: false, includeGenericTypeDefinitions: true)
         .Where(t => t.Namespace != null && !t.Namespace.Contains(".Tests"))
-        .Where(t => !StorableClassAttribute.IsStorableClass(t))) {
+        .Where(t => !StorableTypeAttribute.IsStorableType(t))) {
         var members = type.GetMembers(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.DeclaredOnly);
         var storableConstructor = members.SingleOrDefault(m => Attribute.IsDefined(m, typeof(StorableConstructorAttribute), inherit: false));
@@ -74,7 +88,7 @@
 
         if (storableConstructor != null) {
-          errorMessage.Append(Environment.NewLine + type.Namespace + "." + type.GetPrettyName() + ": Contains a storable constructor but is not a storable class.");
+          errorMessage.Append(Environment.NewLine + type.Namespace + "." + type.GetPrettyName() + ": Contains a storable constructor but is not a storable type.");
         } else if (storableMembers.Any()) {
-          errorMessage.Append(Environment.NewLine + type.Namespace + "." + type.GetPrettyName() + ": Contains at least one storable member but is not a storable class.");
+          errorMessage.Append(Environment.NewLine + type.Namespace + "." + type.GetPrettyName() + ": Contains at least one storable member but is not a storable type.");
         }
       }
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ThreadSafeLogTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ThreadSafeLogTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ThreadSafeLogTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ToStringTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ToStringTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab-3.3/ToStringTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/NcaAlgorithmTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/NcaAlgorithmTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/NcaAlgorithmTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/SupportVectorMachineTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/SupportVectorMachineTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/SupportVectorMachineTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/EnumerableBoolEqualityComparerTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/EnumerableBoolEqualityComparerTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/EnumerableBoolEqualityComparerTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/LinkageTreeTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/LinkageTreeTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/LinkageTreeTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/ParameterlessPopulationPyramidTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/ParameterlessPopulationPyramidTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3/ParameterlessPopulationPyramidTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/BonferroniHolmUnitTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/BonferroniHolmUnitTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/BonferroniHolmUnitTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/ConfidenceIntervalsTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/ConfidenceIntervalsTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/ConfidenceIntervalsTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/EffectSizeUnitTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/EffectSizeUnitTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/EffectSizeUnitTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/KruskalWallisUnitTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/KruskalWallisUnitTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/KruskalWallisUnitTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/MultidimensionalScalingTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/MultidimensionalScalingTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/MultidimensionalScalingTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalDictionaryTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalDictionaryTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalDictionaryTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalLookupTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalLookupTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalLookupTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/ObservableKeyedListTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/ObservableKeyedListTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Collections-3.3/ObservableKeyedListTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Common-3.3/EnumerableStatisticExtensions.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Common-3.3/EnumerableStatisticExtensions.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Common-3.3/EnumerableStatisticExtensions.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/Auxiliary.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/Auxiliary.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/Auxiliary.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/NPointCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/NPointCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/NPointCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/SinglePositionBitflipManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/SinglePositionBitflipManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/SinglePositionBitflipManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/SomePositionsBitflipManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/SomePositionsBitflipManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/SomePositionsBitflipManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/UniformCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/UniformCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.BinaryVectorEncoding-3.3/UniformCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/Auxiliary.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/Auxiliary.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/Auxiliary.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/DiscreteCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/DiscreteCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/DiscreteCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/SinglePointCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/SinglePointCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/SinglePointCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/UniformOnePositionManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/UniformOnePositionManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.IntegerVectorEncoding-3.3/UniformOnePositionManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/Auxiliary.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/Auxiliary.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/Auxiliary.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/ConversionsTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/ConversionsTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/ConversionsTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/GroupCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/GroupCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/GroupCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/MoveTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/MoveTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.LinearLinkageEncoding-3.4/MoveTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Auxiliary.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Auxiliary.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Auxiliary.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CosaCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CosaCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CosaCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CyclicCrossover2Test.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CyclicCrossover2Test.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CyclicCrossover2Test.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CyclicCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CyclicCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/CyclicCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/EdgeRecombinationCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/EdgeRecombinationCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/EdgeRecombinationCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/InsertionManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/InsertionManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/InsertionManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/InversionManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/InversionManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/InversionManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/MaximalPreservativeCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/MaximalPreservativeCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/MaximalPreservativeCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderBasedCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderBasedCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderBasedCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderCrossover2Test.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderCrossover2Test.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderCrossover2Test.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/OrderCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PartiallyMatchedCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PartiallyMatchedCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PartiallyMatchedCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PermutationEqualityComparerTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PermutationEqualityComparerTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PermutationEqualityComparerTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PermutationManipulationTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PermutationManipulationTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PermutationManipulationTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PositionBasedCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PositionBasedCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/PositionBasedCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/ScrambleManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/ScrambleManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/ScrambleManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Swap2ManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Swap2ManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Swap2ManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Swap3ManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Swap3ManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/Swap3ManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/TranslocationInversionManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/TranslocationInversionManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/TranslocationInversionManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/TranslocationManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/TranslocationManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/TranslocationManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/UniformLikeCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/UniformLikeCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.PermutationEncoding-3.3/UniformLikeCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/Auxiliary.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/Auxiliary.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/Auxiliary.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/BlendAlphaBetaCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/BlendAlphaBetaCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/BlendAlphaBetaCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/BlendAlphaCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/BlendAlphaCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/BlendAlphaCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/DiscreteCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/DiscreteCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/DiscreteCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/HeuristicCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/HeuristicCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/HeuristicCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/LocalCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/LocalCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/LocalCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/MichalewiczNonUniformAllPositionsManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/MichalewiczNonUniformAllPositionsManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/MichalewiczNonUniformAllPositionsManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/MichalewiczNonUniformOnePositionManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/MichalewiczNonUniformOnePositionManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/MichalewiczNonUniformOnePositionManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/PolynomialAllPositionManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/PolynomialAllPositionManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/PolynomialAllPositionManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/PolynomialOnePositionManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/PolynomialOnePositionManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/PolynomialOnePositionManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/RandomConvexCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/RandomConvexCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/RandomConvexCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/SimulatedBinaryCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/SimulatedBinaryCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/SimulatedBinaryCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/SinglePointCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/SinglePointCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/SinglePointCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/UniformOnePositionManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/UniformOnePositionManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.RealVectorEncoding-3.3/UniformOnePositionManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/DirectScheduleGTCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/DirectScheduleGTCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/DirectScheduleGTCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMJOXCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMJOXCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMJOXCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMSXXCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMSXXCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMSXXCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMShiftChangeManipulatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMShiftChangeManipulatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/JSMShiftChangeManipulatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/PWRGOXCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/PWRGOXCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/PWRGOXCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/PWRPPXCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/PWRPPXCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/PWRPPXCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/TestUtils.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/TestUtils.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.ScheduleEncoding-3.3/TestUtils.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/AllArchitectureAlteringOperatorsTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/AllArchitectureAlteringOperatorsTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/AllArchitectureAlteringOperatorsTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentCreaterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentCreaterTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentCreaterTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentDeleterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentDeleterTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentDeleterTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentDuplicaterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentDuplicaterTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ArgumentDuplicaterTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ChangeNodeTypeManipulationTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ChangeNodeTypeManipulationTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ChangeNodeTypeManipulationTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/FullTreeCreatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/FullTreeCreatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/FullTreeCreatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/Grammars.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/Grammars.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/Grammars.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/GrammarsTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/GrammarsTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/GrammarsTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/GrowTreeCreatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/GrowTreeCreatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/GrowTreeCreatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ProbabilisticTreeCreatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ProbabilisticTreeCreatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ProbabilisticTreeCreatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ReplaceBranchManipulationTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ReplaceBranchManipulationTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/ReplaceBranchManipulationTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineCreaterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineCreaterTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineCreaterTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineDeleterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineDeleterTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineDeleterTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineDuplicaterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineDuplicaterTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubroutineDuplicaterTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubtreeCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubtreeCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/SubtreeCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -46,4 +46,6 @@
           SubroutineCreater.CreateSubroutine(random, trees[i], 100, 10, 3, 3);
       }
+      var children = new List<ISymbolicExpressionTree>(trees);
+
       Stopwatch stopwatch = new Stopwatch();
       stopwatch.Start();
@@ -52,6 +54,7 @@
           var par0 = (ISymbolicExpressionTree)trees.SampleRandom(random).Clone();
           var par1 = (ISymbolicExpressionTree)trees.SampleRandom(random).Clone();
-          SubtreeCrossover.Cross(random, par0, par1, 0.9, 100, 10);
+          children[i] = SubtreeCrossover.Cross(random, par0, par1, 0.9, 100, 10);
         }
+        trees = children;
       }
       stopwatch.Stop();
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/Util.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/Util.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4/Util.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphLayoutTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphLayoutTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphLayoutTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersGraphTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersGraphTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersGraphTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersMatrixTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersMatrixTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersMatrixTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersVectorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersVectorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.IGraph/IGraphWrappersVectorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/StorableAttributeTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/StorableAttributeTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/StorableAttributeTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -20,9 +20,9 @@
 #endregion
 
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Persistence.Tests {
 
-  [StorableClass]
+  [StorableType("EF55A82D-7D9B-486E-B811-4DCC389FDB05")]
   class DemoClass {
 
@@ -34,7 +34,13 @@
 
     public int y = 0;
+
+    [StorableConstructor]
+    protected DemoClass(StorableConstructorFlag _) {
+    }
+    public DemoClass() {
+    }
   }
 
-  [StorableClass]
+  [StorableType("31F18F9A-C25D-449D-900A-FEBF95D7CE39")]
   class Base {
     public string baseName;
@@ -44,7 +50,13 @@
       set { baseName = value; }
     }
+
+    [StorableConstructor]
+    protected Base(StorableConstructorFlag _) {
+    }
+    public Base() {
+    }
   }
 
-  [StorableClass]
+  [StorableType("DF26C284-08C4-4703-A1A4-AFE834079B85")]
   class Override : Base {
     [Storable]
@@ -53,11 +65,22 @@
       set { base.Name = value; }
     }
+
+    [StorableConstructor]
+    protected Override(StorableConstructorFlag _) : base(_) {
+    }
+    public Override() {
+    }
   }
 
-  [StorableClass]
+  [StorableType("6BFB1984-6670-4D5E-AEAC-3E77C627AF98")]
   class Intermediate : Override {
+    [StorableConstructor]
+    protected Intermediate(StorableConstructorFlag _) : base(_) {
+    }
+    public Intermediate() {
+    }
   }
 
-  [StorableClass]
+  [StorableType("856F9BDB-A20C-4B80-981B-5B4F5188FBCD")]
   class New : Intermediate {
     public string newName;
@@ -67,4 +90,10 @@
       set { newName = value; }
     }
+
+    [StorableConstructor]
+    protected New(StorableConstructorFlag _) : base(_) {
+    }
+    public New() {
+    }
   }
 }
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/UseCases.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/UseCases.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/UseCases.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -31,4 +31,5 @@
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
+using HEAL.Attic;
 using HeuristicLab.Algorithms.GeneticAlgorithm;
 using HeuristicLab.Persistence.Auxiliary;
@@ -43,8 +44,9 @@
 using HeuristicLab.Tests;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Serializer = HeuristicLab.Persistence.Core.Serializer;
 
 namespace HeuristicLab.Persistence.Tests {
 
-  [StorableClass]
+  [StorableType("25A94A36-F3AA-4207-A3C9-54260D2A1724")]
   public class NumberTest {
     [Storable]
@@ -93,20 +95,21 @@
         _ulong.GetHashCode();
     }
+
+    [StorableConstructor]
+    protected NumberTest(StorableConstructorFlag _) {
+    }
+    public NumberTest() {
+    }
   }
 
-  [StorableClass]
-  public class NonDefaultConstructorClass {
-    [Storable]
-    int value;
-    public NonDefaultConstructorClass(int value) {
-      this.value = value;
-    }
-  }
-
-  [StorableClass]
+  [StorableType("BE44EB33-C8B7-4CDA-A564-3165558FEBE7")]
   public class IntWrapper {
 
     [Storable]
     public int Value;
+
+    [StorableConstructor]
+    protected IntWrapper(StorableConstructorFlag _) {
+    }
 
     private IntWrapper() { }
@@ -127,5 +130,5 @@
   }
 
-  [StorableClass]
+  [StorableType("A7865A50-E5B7-4656-8648-F375FC678BA3")]
   public class PrimitivesTest : NumberTest {
     [Storable]
@@ -155,9 +158,16 @@
         o.GetHashCode();
     }
+
+    [StorableConstructor]
+    protected PrimitivesTest(StorableConstructorFlag _) : base(_) {
+    }
+    public PrimitivesTest() {
+    }
   }
 
-  public enum TestEnum { va1, va2, va3, va8 } ;
-
-  [StorableClass]
+  [StorableType("18245FB6-D650-4378-9197-CCE6BB678F66")]
+  public enum TestEnum { va1, va2, va3, va8 };
+
+  [StorableType("F5646F6C-DCD3-47D7-BBE5-2B33812B06D7")]
   public class RootBase {
     [Storable]
@@ -176,7 +186,13 @@
         myEnum.GetHashCode();
     }
+
+    [StorableConstructor]
+    protected RootBase(StorableConstructorFlag _) {
+    }
+    public RootBase() {
+    }
   }
 
-  [StorableClass]
+  [StorableType("A9F5AFC4-20D3-4898-A7B6-E78A2CCE343B")]
   public class Root : RootBase {
     [Storable]
@@ -206,4 +222,10 @@
     [Storable(DefaultValue = "default")]
     public string uninitialized;
+
+    [StorableConstructor]
+    protected Root(StorableConstructorFlag _) : base(_) {
+    }
+    public Root() {
+    }
   }
 
@@ -213,5 +235,5 @@
   public enum TrickyEnum { zero = 0, one = 1, two = 2 }
 
-  [StorableClass]
+  [StorableType("969350FD-1E94-4A6F-BA95-6D2D48014E73")]
   public class EnumTest {
     [Storable]
@@ -221,7 +243,13 @@
     [Storable]
     public TrickyEnum trickyEnum = (TrickyEnum)15;
+
+    [StorableConstructor]
+    protected EnumTest(StorableConstructorFlag _) {
+    }
+    public EnumTest() {
+    }
   }
 
-  [StorableClass]
+  [StorableType("03CC855E-1DCA-451E-9BFB-3B06E7F96CAA")]
   public class Custom {
     [Storable]
@@ -231,7 +259,15 @@
     [Storable]
     public string name = "<![CDATA[<![CDATA[Serial]]>]]>";
+
+    [StorableConstructor]
+    protected Custom(StorableConstructorFlag _) {
+    }
+
+    public Custom() {
+
+    }
   }
 
-  [StorableClass]
+  [StorableType("C3A632A5-F356-4E22-8659-BBE515638CDC")]
   public class Manager {
 
@@ -244,7 +280,13 @@
     [Storable]
     public double? dbl;
+
+    [StorableConstructor]
+    protected Manager(StorableConstructorFlag _) {
+    }
+    public Manager() {
+    }
   }
 
-  [StorableClass]
+  [StorableType("D694E112-47AF-47DF-8A89-F12F95FF43AB")]
   public class C {
     [Storable]
@@ -252,4 +294,10 @@
     [Storable]
     public KeyValuePair<List<C>, C> kvpList;
+
+    [StorableConstructor]
+    protected C(StorableConstructorFlag _) {
+    }
+    public C() {
+    }
   }
 
@@ -486,5 +534,5 @@
     }
 
-    [StorableClass]
+    [StorableType("8EA1D97E-91CD-4643-80B2-D66724E3ED4C")]
     public class NestedType {
       [Storable]
@@ -498,4 +546,10 @@
       public override int GetHashCode() {
         return value.GetHashCode();
+      }
+
+      [StorableConstructor]
+      protected NestedType(StorableConstructorFlag _) {
+      }
+      public NestedType() {
       }
     }
@@ -589,5 +643,5 @@
         new Configuration(new XmlFormat(),
           new List<IPrimitiveSerializer> { new String2XmlSerializer() },
-          new List<ICompositeSerializer> { 
+          new List<ICompositeSerializer> {
             new StorableSerializer(),
             new Number2StringSerializer() }));
@@ -629,16 +683,4 @@
       Assert.AreEqual(newInts[0], newInts[1]);
       Assert.AreNotSame(newInts[0], newInts[1]);
-    }
-
-    [TestMethod]
-    [TestCategory("Persistence")]
-    [TestProperty("Time", "short")]
-    public void NonDefaultConstructorTest() {
-      NonDefaultConstructorClass c = new NonDefaultConstructorClass(1);
-      try {
-        XmlGenerator.Serialize(c, tempFile);
-        Assert.Fail("Exception not thrown");
-      } catch (PersistenceException) {
-      }
     }
 
@@ -753,20 +795,38 @@
     }
 
-    [StorableClass]
+    [StorableType("B7140365-BA53-4E12-A095-86A3AAF5D159")]
     class Child {
       [Storable]
       public GrandParent grandParent;
-    }
-
-    [StorableClass]
+
+      [StorableConstructor]
+      protected Child(StorableConstructorFlag _) {
+      }
+      public Child() {
+      }
+    }
+
+    [StorableType("45FAEF81-D8CD-47DB-B8DD-BBFE81F37181")]
     class Parent {
       [Storable]
       public Child child;
-    }
-
-    [StorableClass]
+
+      [StorableConstructor]
+      protected Parent(StorableConstructorFlag _) {
+      }
+      public Parent() {
+      }
+    }
+
+    [StorableType("0668DB55-89ED-4943-B0AB-245AB3167348")]
     class GrandParent {
       [Storable]
       public Parent parent;
+
+      [StorableConstructor]
+      protected GrandParent(StorableConstructorFlag _) {
+      }
+      public GrandParent() {
+      }
     }
 
@@ -843,5 +903,5 @@
     }
 
-    [StorableClass]
+    [StorableType("92DD18D7-A43C-4DEE-9354-81196F4DC96D")]
     private class PersistenceHooks {
       [Storable]
@@ -858,4 +918,10 @@
       void PostDeserializationHook() {
         sum = a + b;
+      }
+
+      [StorableConstructor]
+      protected PersistenceHooks(StorableConstructorFlag _) {
+      }
+      public PersistenceHooks() {
       }
     }
@@ -880,5 +946,5 @@
     }
 
-    [StorableClass]
+    [StorableType("3E9A9875-875F-41DD-AEEC-2924643C8E45")]
     private class CustomConstructor {
       public string Value = "none";
@@ -887,6 +953,5 @@
       }
       [StorableConstructor]
-      private CustomConstructor(bool deserializing) {
-        Assert.IsTrue(deserializing);
+      private CustomConstructor(StorableConstructorFlag _) {
         Value = "persistence";
       }
@@ -902,27 +967,4 @@
       CustomConstructor newCC = (CustomConstructor)XmlParser.Deserialize(tempFile);
       Assert.AreEqual(newCC.Value, "persistence");
-    }
-
-    [StorableClass]
-    public class ExplodingDefaultConstructor {
-      public ExplodingDefaultConstructor() {
-        throw new Exception("this constructor will always fail");
-      }
-      public ExplodingDefaultConstructor(string password) {
-      }
-    }
-
-    [TestMethod]
-    [TestCategory("Persistence")]
-    [TestProperty("Time", "short")]
-    public void TestConstructorExceptionUnwrapping() {
-      ExplodingDefaultConstructor x = new ExplodingDefaultConstructor("password");
-      XmlGenerator.Serialize(x, tempFile);
-      try {
-        ExplodingDefaultConstructor newX = (ExplodingDefaultConstructor)XmlParser.Deserialize(tempFile);
-        Assert.Fail("Exception expected");
-      } catch (PersistenceException pe) {
-        Assert.AreEqual(pe.InnerException.Message, "this constructor will always fail");
-      }
     }
 
@@ -954,5 +996,5 @@
     }
 
-    [StorableClass]
+    [StorableType("BC0996AA-6544-4D0F-8CBD-1FCCF08F4637")]
     public class HookInheritanceTestBase {
       [Storable]
@@ -963,7 +1005,13 @@
         link = a;
       }
-    }
-
-    [StorableClass]
+
+      [StorableConstructor]
+      protected HookInheritanceTestBase(StorableConstructorFlag _) {
+      }
+      public HookInheritanceTestBase() {
+      }
+    }
+
+    [StorableType("E0CABA1E-EA8E-4B50-9840-1F80D23E8DC7")]
     public class HookInheritanceTestDerivedClass : HookInheritanceTestBase {
       [Storable]
@@ -974,4 +1022,10 @@
         link = b;
       }
+
+      [StorableConstructor]
+      protected HookInheritanceTestDerivedClass(StorableConstructorFlag _) : base(_) {
+      }
+      public HookInheritanceTestDerivedClass() {
+      }
     }
 
@@ -987,5 +1041,5 @@
     }
 
-    [StorableClass(StorableClassType.AllFields)]
+    [StorableType(StorableMemberSelection.AllFields, "45B11367-791E-4967-86AA-D6B83EC3CDAE")]
     public class AllFieldsStorable {
       public int Value1 = 1;
@@ -995,11 +1049,10 @@
       public int Value4 { get; private set; }
       [StorableConstructor]
-      public AllFieldsStorable(bool isDeserializing) {
-        if (!isDeserializing) {
-          Value1 = 12;
-          Value2 = 23;
-          Value3 = 34;
-          Value4 = 56;
-        }
+      protected AllFieldsStorable(StorableConstructorFlag _) { }
+      public AllFieldsStorable() {
+        Value1 = 12;
+        Value2 = 23;
+        Value3 = 34;
+        Value4 = 56;
       }
     }
@@ -1009,5 +1062,5 @@
     [TestProperty("Time", "short")]
     public void TestStorableClassDiscoveryAllFields() {
-      AllFieldsStorable afs = new AllFieldsStorable(false);
+      AllFieldsStorable afs = new AllFieldsStorable();
       XmlGenerator.Serialize(afs, tempFile);
       AllFieldsStorable newAfs = (AllFieldsStorable)XmlParser.Deserialize(tempFile);
@@ -1018,5 +1071,5 @@
     }
 
-    [StorableClass(StorableClassType.AllProperties)]
+    [StorableType(StorableMemberSelection.AllProperties, "BB7931E4-2900-430C-80FA-1CF3C41BA2C9")]
     public class AllPropertiesStorable {
       public int Value1 = 1;
@@ -1026,11 +1079,10 @@
       public int Value4 { get; private set; }
       [StorableConstructor]
-      public AllPropertiesStorable(bool isDeserializing) {
-        if (!isDeserializing) {
-          Value1 = 12;
-          Value2 = 23;
-          Value3 = 34;
-          Value4 = 56;
-        }
+      protected AllPropertiesStorable(StorableConstructorFlag _) { }
+      public AllPropertiesStorable() {
+        Value1 = 12;
+        Value2 = 23;
+        Value3 = 34;
+        Value4 = 56;
       }
     }
@@ -1040,5 +1092,5 @@
     [TestProperty("Time", "short")]
     public void TestStorableClassDiscoveryAllProperties() {
-      AllPropertiesStorable afs = new AllPropertiesStorable(false);
+      AllPropertiesStorable afs = new AllPropertiesStorable();
       XmlGenerator.Serialize(afs, tempFile);
       AllPropertiesStorable newAfs = (AllPropertiesStorable)XmlParser.Deserialize(tempFile);
@@ -1050,5 +1102,5 @@
     }
 
-    [StorableClass(StorableClassType.AllFieldsAndAllProperties)]
+    [StorableType(StorableMemberSelection.AllFieldsAndAllProperties, "D81160A5-BCF9-409A-9082-EFB803C882BF")]
     public class AllFieldsAndAllPropertiesStorable {
       public int Value1 = 1;
@@ -1058,11 +1110,10 @@
       public int Value4 { get; private set; }
       [StorableConstructor]
-      public AllFieldsAndAllPropertiesStorable(bool isDeserializing) {
-        if (!isDeserializing) {
-          Value1 = 12;
-          Value2 = 23;
-          Value3 = 34;
-          Value4 = 56;
-        }
+      protected AllFieldsAndAllPropertiesStorable(StorableConstructorFlag _) { }
+      public AllFieldsAndAllPropertiesStorable() {
+        Value1 = 12;
+        Value2 = 23;
+        Value3 = 34;
+        Value4 = 56;
       }
     }
@@ -1072,5 +1123,5 @@
     [TestProperty("Time", "short")]
     public void TestStorableClassDiscoveryAllFieldsAndAllProperties() {
-      AllFieldsAndAllPropertiesStorable afs = new AllFieldsAndAllPropertiesStorable(false);
+      AllFieldsAndAllPropertiesStorable afs = new AllFieldsAndAllPropertiesStorable();
       XmlGenerator.Serialize(afs, tempFile);
       AllFieldsAndAllPropertiesStorable newAfs = (AllFieldsAndAllPropertiesStorable)XmlParser.Deserialize(tempFile);
@@ -1081,5 +1132,5 @@
     }
 
-    [StorableClass(StorableClassType.MarkedOnly)]
+    [StorableType(StorableMemberSelection.MarkedOnly, "979BEF0C-D150-4809-9EF4-467B7CCB9665")]
     public class MarkedOnlyStorable {
       public int Value1 = 1;
@@ -1089,11 +1140,10 @@
       public int Value4 { get; private set; }
       [StorableConstructor]
-      public MarkedOnlyStorable(bool isDeserializing) {
-        if (!isDeserializing) {
-          Value1 = 12;
-          Value2 = 23;
-          Value3 = 34;
-          Value4 = 56;
-        }
+      protected MarkedOnlyStorable(StorableConstructorFlag _) { }
+      public MarkedOnlyStorable() {
+        Value1 = 12;
+        Value2 = 23;
+        Value3 = 34;
+        Value4 = 56;
       }
     }
@@ -1103,5 +1153,5 @@
     [TestProperty("Time", "short")]
     public void TestStorableClassDiscoveryMarkedOnly() {
-      MarkedOnlyStorable afs = new MarkedOnlyStorable(false);
+      MarkedOnlyStorable afs = new MarkedOnlyStorable();
       XmlGenerator.Serialize(afs, tempFile);
       MarkedOnlyStorable newAfs = (MarkedOnlyStorable)XmlParser.Deserialize(tempFile);
@@ -1241,9 +1291,15 @@
     }
 
-    [StorableClass]
+    [StorableType("5F96AAB5-F68E-4A41-BA66-E56069822719")]
     public class ReadOnlyFail {
       [Storable]
       public string ReadOnly {
         get { return "fail"; }
+      }
+
+      [StorableConstructor]
+      protected ReadOnlyFail(StorableConstructorFlag _) {
+      }
+      public ReadOnlyFail() {
       }
     }
@@ -1263,9 +1319,15 @@
 
 
-    [StorableClass]
+    [StorableType("9809F12C-B787-4BB5-9930-705673964D45")]
     public class WriteOnlyFail {
       [Storable]
       public string WriteOnly {
         set { throw new InvalidOperationException("this property should never be set."); }
+      }
+
+      [StorableConstructor]
+      protected WriteOnlyFail(StorableConstructorFlag _) {
+      }
+      public WriteOnlyFail() {
       }
     }
@@ -1284,6 +1346,10 @@
     }
 
-    [StorableClass]
+    [StorableType("749C5247-ABB8-4286-8208-058CC7B9C781")]
     public class OneWayTest {
+      [StorableConstructor]
+      protected OneWayTest(StorableConstructorFlag _) {
+      }
+
       public OneWayTest() { this.value = "default"; }
       public string value;
@@ -1309,5 +1375,5 @@
       Assert.AreEqual("ReadOnly", ((PrimitiveToken)it.Current).Name); it.MoveNext();
       Assert.AreEqual("ROOT", ((EndToken)it.Current).Name); it.MoveNext();
-      var deserializer = new Deserializer(new[] { 
+      var deserializer = new Deserializer(new[] {
         new TypeMapping(0, typeof(OneWayTest).AssemblyQualifiedName, typeof(StorableSerializer).AssemblyQualifiedName),
         new TypeMapping(1, typeof(string).AssemblyQualifiedName, typeof(String2XmlSerializer).AssemblyQualifiedName) });
@@ -1461,5 +1527,5 @@
       b[2] = byte.MaxValue;
       XmlGenerator.Serialize(b, tempFile);
-      var newB = (byte[]) XmlParser.Deserialize(tempFile);
+      var newB = (byte[])XmlParser.Deserialize(tempFile);
       CollectionAssert.AreEqual(b, newB);
     }
@@ -1469,7 +1535,7 @@
     [TestProperty("Time", "short")]
     public void TestOptionalNumberEnumerable() {
-      var values = new List<double?> {0, null, double.NaN, double.PositiveInfinity, double.MaxValue, 1};
+      var values = new List<double?> { 0, null, double.NaN, double.PositiveInfinity, double.MaxValue, 1 };
       XmlGenerator.Serialize(values, tempFile);
-      var newValues = (List<double?>) XmlParser.Deserialize(tempFile);
+      var newValues = (List<double?>)XmlParser.Deserialize(tempFile);
       CollectionAssert.AreEqual(values, newValues);
     }
@@ -1482,5 +1548,5 @@
         DateTime.ParseExact("10.09.2014 12:21", "dd.MM.yyyy hh:mm", CultureInfo.InvariantCulture), DateTime.MaxValue};
       XmlGenerator.Serialize(values, tempFile);
-      var newValues = (List<DateTime?>) XmlParser.Deserialize(tempFile);
+      var newValues = (List<DateTime?>)XmlParser.Deserialize(tempFile);
       CollectionAssert.AreEqual(values, newValues);
     }
@@ -1490,7 +1556,7 @@
     [TestProperty("Time", "short")]
     public void TestStringEnumerable() {
-      var values = new List<string> {"", null, "s", "string", string.Empty, "123", "<![CDATA[nice]]>", "<![CDATA[nasty unterminated"};
+      var values = new List<string> { "", null, "s", "string", string.Empty, "123", "<![CDATA[nice]]>", "<![CDATA[nasty unterminated" };
       XmlGenerator.Serialize(values, tempFile);
-      var newValues = (List<String>) XmlParser.Deserialize(tempFile);
+      var newValues = (List<String>)XmlParser.Deserialize(tempFile);
       CollectionAssert.AreEqual(values, newValues);
     }
@@ -1500,5 +1566,5 @@
     [TestProperty("Time", "short")]
     public void TestUnicodeCharArray() {
-      var s = Encoding.UTF8.GetChars(new byte[] {0, 1, 2, 03, 04, 05, 06, 07, 08, 09, 0xa, 0xb});
+      var s = Encoding.UTF8.GetChars(new byte[] { 0, 1, 2, 03, 04, 05, 06, 07, 08, 09, 0xa, 0xb });
       XmlGenerator.Serialize(s, tempFile);
       var newS = (char[])XmlParser.Deserialize(tempFile);
@@ -1510,5 +1576,5 @@
     [TestProperty("Time", "short")]
     public void TestUnicode() {
-      var s = Encoding.UTF8.GetString(new byte[] {0, 1, 2, 03, 04, 05, 06, 07, 08, 09, 0xa, 0xb});
+      var s = Encoding.UTF8.GetString(new byte[] { 0, 1, 2, 03, 04, 05, 06, 07, 08, 09, 0xa, 0xb });
       XmlGenerator.Serialize(s, tempFile);
       var newS = XmlParser.Deserialize(tempFile);
@@ -1520,5 +1586,5 @@
     [TestProperty("Time", "short")]
     public void TestQueue() {
-      var q = new Queue<int>(new[] {1, 2, 3, 4, 0});
+      var q = new Queue<int>(new[] { 1, 2, 3, 4, 0 });
       XmlGenerator.Serialize(q, tempFile);
       var newQ = (Queue<int>)XmlParser.Deserialize(tempFile);
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence.Attic/StorableAttributeTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence.Attic/StorableAttributeTests.cs	(revision 16711)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence.Attic/StorableAttributeTests.cs	(revision 16711)
@@ -0,0 +1,99 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HEAL.Attic;
+
+namespace HeuristicLab.Persistence.Attic.Tests {
+
+  [StorableType("E0862640-FD57-4F1B-929D-03E38D8EA5D3")]
+  class DemoClass {
+
+    [Storable(Name = "TestProperty", DefaultValue = 12)]
+    public object o = null;
+
+    [Storable]
+    public int x = 2;
+
+    public int y = 0;
+
+    [StorableConstructor]
+    protected DemoClass(StorableConstructorFlag _) {
+    }
+    public DemoClass() {
+    }
+  }
+
+  [StorableType("7C5431ED-9754-44B9-870D-F62E822A74CE")]
+  class Base {
+    public string baseName;
+    [Storable]
+    public virtual string Name {
+      get { return "Base"; }
+      set { baseName = value; }
+    }
+
+    [StorableConstructor]
+    protected Base(StorableConstructorFlag _) {
+    }
+    public Base() {
+    }
+  }
+
+  [StorableType("39BC0BDD-C5F4-4FAA-B227-558909E7AE6C")]
+  class Override : Base {
+    [Storable]
+    public override string Name {
+      get { return "Override"; }
+      set { base.Name = value; }
+    }
+
+    [StorableConstructor]
+    protected Override(StorableConstructorFlag _) : base(_) {
+    }
+    public Override() {
+    }
+  }
+
+  [StorableType("50E13067-A343-4059-B44B-54511ED813AE")]
+  class Intermediate : Override {
+    [StorableConstructor]
+    protected Intermediate(StorableConstructorFlag _) : base(_) {
+    }
+    public Intermediate() {
+    }
+  }
+
+  [StorableType("DA7868B2-81CC-48AC-AEC3-2E3AD2E0A34E")]
+  class New : Intermediate {
+    public string newName;
+    [Storable]
+    public new string Name {
+      get { return "New"; }
+      set { newName = value; }
+    }
+
+    [StorableConstructor]
+    protected New(StorableConstructorFlag _) : base(_) {
+    }
+    public New() {
+    }
+  }
+}
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence.Attic/UseCases.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence.Attic/UseCases.cs	(revision 16711)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Persistence.Attic/UseCases.cs	(revision 16711)
@@ -0,0 +1,435 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Drawing;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Reflection;
+using System.Threading.Tasks;
+using HEAL.Attic;
+using HeuristicLab.Algorithms.GeneticAlgorithm;
+using HeuristicLab.Analysis;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Core;
+using HeuristicLab.Persistence.Default.Xml;
+using HeuristicLab.Persistence.Interfaces;
+using HeuristicLab.Tests;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Persistence.Attic.Tests {
+  [TestClass]
+  public class UseCases {
+
+    private string tempFile;
+
+    [TestInitialize()]
+    public void CreateTempFile() {
+      tempFile = Path.GetTempFileName();
+    }
+
+    [TestCleanup()]
+    public void ClearTempFile() {
+      StreamReader reader = new StreamReader(tempFile);
+      string s = reader.ReadToEnd();
+      reader.Close();
+      File.Delete(tempFile);
+    }
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "short")]
+    public void BitmapTest() {
+      Icon icon = System.Drawing.SystemIcons.Hand;
+      Bitmap bitmap = icon.ToBitmap();
+      new ProtoBufSerializer().Serialize(bitmap, tempFile);
+      Bitmap newBitmap = (Bitmap)new ProtoBufSerializer().Deserialize(tempFile);
+
+      Assert.AreEqual(bitmap.Size, newBitmap.Size);
+      for (int i = 0; i < bitmap.Size.Width; i++)
+        for (int j = 0; j < bitmap.Size.Height; j++)
+          Assert.AreEqual(bitmap.GetPixel(i, j), newBitmap.GetPixel(i, j));
+    }
+
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "short")]
+    public void FontTest() {
+      List<Font> fonts = new List<Font>() {
+        new Font(FontFamily.GenericSansSerif, 12),
+        new Font("Times New Roman", 21, FontStyle.Bold, GraphicsUnit.Pixel),
+        new Font("Courier New", 10, FontStyle.Underline, GraphicsUnit.Document),
+        new Font("Helvetica", 21, FontStyle.Strikeout, GraphicsUnit.Inch, 0, true),
+      };
+      new ProtoBufSerializer().Serialize(fonts, tempFile);
+      var newFonts = (List<Font>)new ProtoBufSerializer().Deserialize(tempFile);
+      Assert.AreEqual(fonts[0], newFonts[0]);
+      Assert.AreEqual(fonts[1], newFonts[1]);
+      Assert.AreEqual(fonts[2], newFonts[2]);
+      Assert.AreEqual(fonts[3], newFonts[3]);
+    }
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "medium")]
+    public void ConcurrencyTest() {
+      int n = 20;
+      Task[] tasks = new Task[n];
+      for (int i = 0; i < n; i++) {
+        tasks[i] = Task.Factory.StartNew((idx) => {
+          byte[] data;
+          using (var stream = new MemoryStream()) {
+            new ProtoBufSerializer().Serialize(new GeneticAlgorithm(), stream);
+            data = stream.ToArray();
+          }
+        }, i);
+      }
+      Task.WaitAll(tasks);
+    }
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "medium")]
+    public void ConcurrentBitmapTest() {
+      Bitmap b = new Bitmap(300, 300);
+      System.Random r = new System.Random();
+      for (int x = 0; x < b.Height; x++) {
+        for (int y = 0; y < b.Width; y++) {
+          b.SetPixel(x, y, Color.FromArgb(r.Next()));
+        }
+      }
+      Task[] tasks = new Task[20];
+      byte[][] datas = new byte[tasks.Length][];
+      for (int i = 0; i < tasks.Length; i++) {
+        tasks[i] = Task.Factory.StartNew((idx) => {
+          using (var stream = new MemoryStream()) {
+            new ProtoBufSerializer().Serialize(b, stream);
+            datas[(int)idx] = stream.ToArray();
+          }
+        }, i);
+      }
+      Task.WaitAll(tasks);
+    }
+
+    private void CreateAllSamples() {
+      var asm = this.GetType().Assembly;
+      foreach (var t in asm.GetTypes()) {
+        var attrs = t.GetCustomAttributes<TestClassAttribute>();
+        if (attrs.Any()) {
+          try {
+            var testObj = Activator.CreateInstance(t);
+            foreach (var mi in t.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)) {
+              var mAttrs = mi.GetCustomAttributes<TestCategoryAttribute>();
+              var testCategories = mAttrs.SelectMany(mattr => mattr.TestCategories);
+              if (testCategories.Any(tc => tc == "Samples.Create")) {
+                mi.Invoke(testObj, new object[0]);
+              }
+            }
+          } catch (Exception) { }
+        }
+      }
+    }
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "long")]
+    public void ProfileSamples() {
+      // CreateAllSamples();
+      var path = SamplesUtils.SamplesDirectory;
+      foreach (var fileName in Directory.EnumerateFiles(path, "*.hl")) {
+        //ProfilePersistenceToMemory(fileName);
+        ProfilePersistenceToDisk(fileName);
+      }
+    }
+
+    private void ProfilePersistenceToMemory(string fileName) {
+      var REPS = 5;
+      var oldDeserStopwatch = new Stopwatch();
+      var oldSerStopwatch = new Stopwatch();
+      var newDeserStopwatch = new Stopwatch();
+      var newSerStopwatch = new Stopwatch();
+      long oldSize = 0, newSize = 0;
+      var config = ConfigurationService.Instance.GetConfiguration(new XmlFormat());
+      int[] oldCollections = new int[3];
+      int[] newCollections = new int[3];
+
+      for (int i = 0; i < REPS; i++) {
+        var original = XmlParser.Deserialize(fileName);
+        object deserializedObject1 = null;
+        object deserializedObject2 = null;
+        byte[] buf;
+        System.GC.Collect();
+        var collection0 = System.GC.CollectionCount(0);
+        var collection1 = System.GC.CollectionCount(1);
+        var collection2 = System.GC.CollectionCount(2);
+        using (var s = new MemoryStream()) {
+
+          oldSerStopwatch.Start();
+          // serialize manually so that the stream won't be closed
+          var serializer = new Core.Serializer(original, config);
+          serializer.InterleaveTypeInformation = true;
+          using (StreamWriter writer = new StreamWriter(new GZipStream(s, CompressionMode.Compress))) {
+            XmlGenerator generator = new XmlGenerator();
+            foreach (ISerializationToken token in serializer) {
+              writer.Write(generator.Format(token));
+            }
+            writer.Flush();
+            oldSize += s.Length;
+          }
+
+          oldSerStopwatch.Stop();
+          buf = s.GetBuffer();
+        }
+        using (var s = new MemoryStream(buf)) {
+          oldDeserStopwatch.Start();
+          deserializedObject1 = XmlParser.Deserialize(s);
+          oldDeserStopwatch.Stop();
+        }
+
+        System.GC.Collect();
+        oldCollections[0] += System.GC.CollectionCount(0) - collection0;
+        oldCollections[1] += System.GC.CollectionCount(1) - collection1;
+        oldCollections[2] += System.GC.CollectionCount(2) - collection2;
+
+        collection0 = System.GC.CollectionCount(0);
+        collection1 = System.GC.CollectionCount(1);
+        collection2 = System.GC.CollectionCount(2);
+
+        // Protobuf only uses Deflate
+        using (var m = new MemoryStream()) {
+          //         using (var s = new GZipStream(m, CompressionMode.Compress)) { // same as old persistence
+          using (var s = new DeflateStream(m, CompressionMode.Compress)) { // new format
+            newSerStopwatch.Start();
+            (new ProtoBufSerializer()).Serialize(original, s, false);
+            s.Flush();
+            newSerStopwatch.Stop();
+            newSize += m.Length;
+          }
+          buf = m.GetBuffer();
+        }
+        using (var m = new MemoryStream(buf)) {
+          // using (var s = new GZipStream(m, CompressionMode.Decompress)) { // same as old persistence
+          using (var s = new DeflateStream(m, CompressionMode.Decompress)) { // new format
+            newDeserStopwatch.Start();
+            deserializedObject2 = (new ProtoBufSerializer()).Deserialize(s);
+            newDeserStopwatch.Stop();
+          }
+        }
+        //Assert.AreEqual(deserializedObject1.GetObjectGraphObjects().Count(), deserializedObject2.GetObjectGraphObjects().Count());
+
+        System.GC.Collect();
+        newCollections[0] += System.GC.CollectionCount(0) - collection0;
+        newCollections[1] += System.GC.CollectionCount(1) - collection1;
+        newCollections[2] += System.GC.CollectionCount(2) - collection2;
+      }
+
+      Console.WriteLine($"{fileName} " +
+        $"{oldSize / (double)REPS} " +
+        $"{newSize / (double)REPS} " +
+        $"{oldSerStopwatch.ElapsedMilliseconds / (double)REPS} " +
+        $"{newSerStopwatch.ElapsedMilliseconds / (double)REPS} " +
+        $"{oldDeserStopwatch.ElapsedMilliseconds / (double)REPS} " +
+        $"{newDeserStopwatch.ElapsedMilliseconds / (double)REPS} " +
+        $"{oldCollections[0] / (double)REPS} " +
+        $"{newCollections[0] / (double)REPS} " +
+        $"{oldCollections[1] / (double)REPS} " +
+        $"{newCollections[1] / (double)REPS} " +
+        $"{oldCollections[2] / (double)REPS} " +
+        $"{newCollections[2] / (double)REPS} " +
+        $"");
+    }
+
+    private void ProfilePersistenceToDisk(string fileName) {
+      var REPS = 5;
+      var oldDeserStopwatch = new Stopwatch();
+      var oldSerStopwatch = new Stopwatch();
+      var newDeserStopwatch = new Stopwatch();
+      var newSerStopwatch = new Stopwatch();
+      long oldSize = 0, newSize = 0;
+      int[] oldCollections = new int[3];
+      int[] newCollections = new int[3];
+
+      for (int i = 0; i < REPS; i++) {
+        var original = XmlParser.Deserialize(fileName);
+        byte[] buf;
+        System.GC.Collect();
+        var collection0 = System.GC.CollectionCount(0);
+        var collection1 = System.GC.CollectionCount(1);
+        var collection2 = System.GC.CollectionCount(2);
+
+        oldSerStopwatch.Start();
+        XmlGenerator.Serialize(original, tempFile);
+        oldSerStopwatch.Stop();
+
+        oldSize += new FileInfo(tempFile).Length;
+        oldDeserStopwatch.Start();
+        var clone = XmlParser.Deserialize(tempFile);
+        oldDeserStopwatch.Stop();
+        System.GC.Collect();
+        oldCollections[0] += System.GC.CollectionCount(0) - collection0;
+        oldCollections[1] += System.GC.CollectionCount(1) - collection1;
+        oldCollections[2] += System.GC.CollectionCount(2) - collection2;
+
+        collection0 = System.GC.CollectionCount(0);
+        collection1 = System.GC.CollectionCount(1);
+        collection2 = System.GC.CollectionCount(2);
+
+        newSerStopwatch.Start();
+        (new ProtoBufSerializer()).Serialize(original, tempFile);
+        newSerStopwatch.Stop();
+        newSize += new FileInfo(tempFile).Length;
+        newDeserStopwatch.Start();
+        var newClone = (new ProtoBufSerializer()).Deserialize(tempFile);
+        newDeserStopwatch.Stop();
+        System.GC.Collect();
+        newCollections[0] += System.GC.CollectionCount(0) - collection0;
+        newCollections[1] += System.GC.CollectionCount(1) - collection1;
+        newCollections[2] += System.GC.CollectionCount(2) - collection2;
+      }
+      Console.WriteLine($"{fileName} " +
+        $"{oldSize / (double)REPS} " +
+        $"{newSize / (double)REPS} " +
+        $"{oldSerStopwatch.ElapsedMilliseconds / (double)REPS} " +
+        $"{newSerStopwatch.ElapsedMilliseconds / (double)REPS} " +
+        $"{oldDeserStopwatch.ElapsedMilliseconds / (double)REPS} " +
+        $"{newDeserStopwatch.ElapsedMilliseconds / (double)REPS} " +
+        $"{oldCollections[0] / (double)REPS} " +
+        $"{newCollections[0] / (double)REPS} " +
+        $"{oldCollections[1] / (double)REPS} " +
+        $"{newCollections[1] / (double)REPS} " +
+        $"{oldCollections[2] / (double)REPS} " +
+        $"{newCollections[2] / (double)REPS} " +
+        $"");
+    }
+
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "long")]
+    public void TestLoadingSamples() {
+      CreateAllSamples();
+      var path = SamplesUtils.SamplesDirectory;
+      var serializer = new ProtoBufSerializer();
+      foreach (var fileName in Directory.EnumerateFiles(path, "*.hl")) {
+        var original = XmlParser.Deserialize(fileName);
+        var ok = true;
+        foreach (var t in original.GetObjectGraphObjects().Select(o => o.GetType())) {
+          if (
+            t.GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)
+              .Any(ctor => StorableConstructorAttribute.IsStorableConstructor(ctor))) {
+            try {
+              if (t.IsGenericType) {
+                var g = Mapper.StaticCache.GetGuid(t.GetGenericTypeDefinition());
+              } else {
+                var g = Mapper.StaticCache.GetGuid(t);
+              }
+            } catch (Exception e) {
+              Console.WriteLine($"type {t.FullName} in {fileName} is not registered with a GUID in HEAL.Attic");
+              ok = false;
+            }
+          }
+        }
+        if (ok) {
+          serializer.Serialize(original, fileName + ".proto");
+          var newVersion = serializer.Deserialize(fileName + ".proto");
+          Console.WriteLine("File: " + fileName);
+          File.Delete(fileName + ".proto");
+        }
+      }
+    }
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "long")]
+    public void TestLoadingRunAndStoreSamples() {
+      CreateAllSamples();
+      var path = SamplesUtils.SamplesDirectory;
+      var serializer = new ProtoBufSerializer();
+      foreach (var fileName in Directory.EnumerateFiles(path, "*.hl")) {
+        var original = XmlParser.Deserialize(fileName);
+
+        var exec = original as IExecutable;
+        if (exec != null) {
+          exec.Paused += (sender, e) => {
+            serializer.Serialize(exec, fileName + "_paused.proto");
+            Console.WriteLine("Serialized paused file: " + fileName);
+            File.Delete(fileName + "_paused.proto");
+          };
+          exec.Stopped += (sender, e) => {
+            serializer.Serialize(exec, fileName + "_stopped.proto");
+            Console.WriteLine("Serialized stopped file: " + fileName);
+            File.Delete(fileName + "_stopped.proto");
+          };
+          var t = exec.StartAsync();
+          System.Threading.Thread.Sleep(20000); // wait 20 secs
+          if (exec.ExecutionState == ExecutionState.Started) { // only if not already stopped
+            exec.Pause();
+          }
+        }
+      }
+    }
+
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "short")]
+    public void TestIndexedDataTable() {
+      var dt = new IndexedDataTable<int>("test", "test description");
+      var dr = new IndexedDataRow<int>("test row");
+      dr.Values.Add(Tuple.Create(1, 1.0));
+      dr.Values.Add(Tuple.Create(2, 2.0));
+      dr.Values.Add(Tuple.Create(3, 3.0));
+      dt.Rows.Add(dr);
+      var ser = new ProtoBufSerializer();
+      ser.Serialize(dt, tempFile);
+      var dt2 = (IndexedDataTable<int>)ser.Deserialize(tempFile);
+      Assert.AreEqual(dt.Rows["test row"].Values[0], dt2.Rows["test row"].Values[0]);
+      Assert.AreEqual(dt.Rows["test row"].Values[1], dt2.Rows["test row"].Values[1]);
+      Assert.AreEqual(dt.Rows["test row"].Values[2], dt2.Rows["test row"].Values[2]);
+    }
+
+    [TestMethod]
+    [TestCategory("Persistence.Attic")]
+    [TestProperty("Time", "short")]
+    public void TestPoint2d() {
+      var tag = new IntValue(10);
+      var p = new Point2D<double>(1.0, 2.0, tag);
+      var ser = new ProtoBufSerializer();
+      ser.Serialize(p, tempFile);
+      var p2 = (Point2D<double>)ser.Deserialize(tempFile);
+      Assert.AreEqual(p.X, p2.X);
+      Assert.AreEqual(p.Y, p2.Y);
+      var tag2 = (IntValue)p2.Tag;
+      Assert.AreEqual(tag.Value, tag2.Value);
+    }
+
+    [ClassInitialize]
+    public static void Initialize(TestContext testContext) {
+      ConfigurationService.Instance.Reset();
+    }
+  }
+}
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.PluginInfraStructure-3.3/TypeExtensionsTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.PluginInfraStructure-3.3/TypeExtensionsTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.PluginInfraStructure-3.3/TypeExtensionsTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ClassificationVariableImpactCalculationTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ClassificationVariableImpactCalculationTest.cs	(revision 16711)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ClassificationVariableImpactCalculationTest.cs	(revision 16711)
@@ -0,0 +1,269 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Common;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Classification;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+using HeuristicLab.Random;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Problems.DataAnalysis.Tests {
+
+  [TestClass()]
+  public class ClassificationVariableImpactCalculationTest {
+    private TestContext testContextInstance;
+    /// <summary>
+    ///Gets or sets the test context which provides
+    ///information about and functionality for the current test run.
+    ///</summary>
+    public TestContext TestContext {
+      get { return testContextInstance; }
+      set { testContextInstance = value; }
+    }
+
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void ConstantModelVariableImpactTest() {
+      IClassificationProblemData problemData = LoadIrisProblem();
+      IClassificationModel model = new ConstantModel(5, "y");
+      IClassificationSolution solution = new ClassificationSolution(model, problemData);
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForConstantModel();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void KNNIrisVariableImpactTest() {
+      IClassificationProblemData problemData = LoadIrisProblem();
+      IClassificationSolution solution = NearestNeighbourClassification.CreateNearestNeighbourClassificationSolution(problemData, 3);
+      ClassificationSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForIrisKNNModel();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void LDAIrisVariableImpactTest() {
+      IClassificationProblemData problemData = LoadIrisProblem();
+      IClassificationSolution solution = LinearDiscriminantAnalysis.CreateLinearDiscriminantAnalysisSolution(problemData);
+      ClassificationSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForIrisLDAModel();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void CustomModelVariableImpactTest() {
+      IClassificationProblemData problemData = CreateDefaultProblem();
+      ISymbolicExpressionTree tree = CreateCustomExpressionTree();
+      var model = new SymbolicNearestNeighbourClassificationModel(problemData.TargetVariable, 3, tree, new SymbolicDataAnalysisExpressionTreeInterpreter());
+      model.RecalculateModelParameters(problemData, problemData.TrainingIndices);
+      IClassificationSolution solution = new ClassificationSolution(model, (IClassificationProblemData)problemData.Clone());
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForCustomProblem();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void CustomModelVariableImpactNoInfluenceTest() {
+      IClassificationProblemData problemData = CreateDefaultProblem();
+      ISymbolicExpressionTree tree = CreateCustomExpressionTreeNoInfluenceX1();
+      var model = new SymbolicNearestNeighbourClassificationModel(problemData.TargetVariable, 3, tree, new SymbolicDataAnalysisExpressionTreeInterpreter());
+      model.RecalculateModelParameters(problemData, problemData.TrainingIndices);
+      IClassificationSolution solution = new ClassificationSolution(model, (IClassificationProblemData)problemData.Clone());
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForCustomProblemNoInfluence();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    [ExpectedException(typeof(ArgumentException))]
+    public void WrongDataSetVariableImpactClassificationTest() {
+      IClassificationProblemData problemData = LoadIrisProblem();
+      IClassificationSolution solution = NearestNeighbourClassification.CreateNearestNeighbourClassificationSolution(problemData, 3);
+      ClassificationSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForIrisKNNModel();
+
+      solution.ProblemData = LoadMammographyProblem();
+      ClassificationSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+    }
+
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "medium")]
+    public void PerformanceVariableImpactClassificationTest() {
+      int rows = 1500;
+      int columns = 77;
+      IClassificationProblemData problemData = CreateDefaultProblem(rows, columns);
+      IClassificationSolution solution = NearestNeighbourClassification.CreateNearestNeighbourClassificationSolution(problemData, 3);
+
+      Stopwatch watch = new Stopwatch();
+      watch.Start();
+      var results = ClassificationSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+      watch.Stop();
+
+      TestContext.WriteLine("");
+      TestContext.WriteLine("Calculated cells per millisecond: {0}.", rows * columns / watch.ElapsedMilliseconds);
+    }
+
+    #region Load ClassificationProblemData
+    private IClassificationProblemData LoadIrisProblem() {
+      UCIInstanceProvider provider = new UCIInstanceProvider();
+      var instance = provider.GetDataDescriptors().Where(x => x.Name.Equals("Iris, M. Marshall, 1988")).Single();
+      return provider.LoadData(instance);
+    }
+    private IClassificationProblemData LoadMammographyProblem() {
+      UCIInstanceProvider provider = new UCIInstanceProvider();
+      var instance = provider.GetDataDescriptors().Where(x => x.Name.Equals("Mammography, M. Elter, 2007")).Single();
+      return provider.LoadData(instance);
+    }
+    private IClassificationProblemData CreateDefaultProblem() {
+      List<string> allowedInputVariables = new List<string>() { "x1", "x2", "x3", "x4", "x5" };
+      string targetVariable = "y";
+      var variableNames = allowedInputVariables.Union(targetVariable.ToEnumerable());
+      double[,] variableValues = new double[100, variableNames.Count()];
+
+      FastRandom random = new FastRandom(12345);
+      int len0 = variableValues.GetLength(0);
+      int len1 = variableValues.GetLength(1);
+      for (int i = 0; i < len0; i++) {
+        for (int j = 0; j < len1; j++) {
+          if (j == len1 - 1) {
+            variableValues[i, j] = (j + i) % 2;
+          } else {
+            variableValues[i, j] = random.Next(1, 100);
+          }
+        }
+      }
+
+      Dataset dataset = new Dataset(variableNames, variableValues);
+      var ret = new ClassificationProblemData(dataset, allowedInputVariables, targetVariable);
+
+      ret.SetClassName(0, "NOK");
+      ret.SetClassName(1, "OK");
+      return ret;
+    }
+
+    private IClassificationProblemData CreateDefaultProblem(int rows, int columns) {
+      List<string> allowedInputVariables = Enumerable.Range(0, columns - 1).Select(x => "x" + x.ToString()).ToList();
+      string targetVariable = "y";
+      var variableNames = allowedInputVariables.Union(targetVariable.ToEnumerable());
+      double[,] variableValues = new double[rows, columns];
+
+      FastRandom random = new FastRandom(12345);
+      int len0 = variableValues.GetLength(0);
+      int len1 = variableValues.GetLength(1);
+      for (int i = 0; i < len0; i++) {
+        for (int j = 0; j < len1; j++) {
+          if (j == len1 - 1) {
+            variableValues[i, j] = (j + i) % 2;
+          } else {
+            variableValues[i, j] = random.Next(1, 100);
+          }
+        }
+      }
+
+      Dataset dataset = new Dataset(variableNames, variableValues);
+      var ret = new ClassificationProblemData(dataset, allowedInputVariables, targetVariable);
+
+      ret.SetClassName(0, "NOK");
+      ret.SetClassName(1, "OK");
+      return ret;
+    }
+
+    #endregion
+
+    #region Create SymbolicExpressionTree
+    private ISymbolicExpressionTree CreateCustomExpressionTree() {
+      return new InfixExpressionParser().Parse("x1*x2 - x2*x2 + x3*x3 + x4*x4 - x5*x5 + 14/12");
+    }
+    private ISymbolicExpressionTree CreateCustomExpressionTreeNoInfluenceX1() {
+      return new InfixExpressionParser().Parse("x1/x1*x2 - x2*x2 + x3*x3 + x4*x4 - x5*x5 + 14/12");
+    }
+    #endregion
+
+    #region Get Expected Values      
+    private Dictionary<string, double> GetExpectedValuesForConstantModel() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("petal_length", 0);
+      expectedImpacts.Add("petal_width", 0);
+      expectedImpacts.Add("sepal_length", 0);
+      expectedImpacts.Add("sepal_width", 0);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForIrisKNNModel() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("petal_length", 0.21);
+      expectedImpacts.Add("petal_width", 0.25);
+      expectedImpacts.Add("sepal_length", 0.05);
+      expectedImpacts.Add("sepal_width", 0.05);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForCustomProblem() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("x1", 0.04);
+      expectedImpacts.Add("x2", 0.22);
+      expectedImpacts.Add("x3", 0.26);
+      expectedImpacts.Add("x4", 0.24);
+      expectedImpacts.Add("x5", 0.2);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForCustomProblemNoInfluence() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("x1", 0);
+      expectedImpacts.Add("x2", 0.22);
+      expectedImpacts.Add("x3", 0.14);
+      expectedImpacts.Add("x4", 0.3);
+      expectedImpacts.Add("x5", 0.44);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForIrisLDAModel() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("sepal_width", 0.01);
+      expectedImpacts.Add("sepal_length", 0.03);
+      expectedImpacts.Add("petal_width", 0.2);
+      expectedImpacts.Add("petal_length", 0.5);
+
+      return expectedImpacts;
+    }
+    #endregion
+
+    private void CheckDefaultAsserts(IClassificationSolution solution, Dictionary<string, double> expectedImpacts) {
+      IClassificationProblemData problemData = solution.ProblemData;
+      IEnumerable<double> estimatedValues = solution.GetEstimatedClassValues(solution.ProblemData.TrainingIndices);
+
+      var solutionImpacts = ClassificationSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+      var modelImpacts = ClassificationSolutionVariableImpactsCalculator.CalculateImpacts(solution.Model, problemData, estimatedValues, problemData.TrainingIndices);
+
+      //Both ways should return equal results
+      Assert.IsTrue(solutionImpacts.SequenceEqual(modelImpacts));
+
+      //Check if impacts are as expected
+      Assert.AreEqual(modelImpacts.Count(), expectedImpacts.Count);
+      Assert.IsTrue(modelImpacts.All(v => v.Item2.IsAlmost(expectedImpacts[v.Item1])));
+    }
+  }
+}
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/IntervalTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/IntervalTest.cs	(revision 16711)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/IntervalTest.cs	(revision 16711)
@@ -0,0 +1,164 @@
+﻿using System;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Problems.DataAnalysis.Tests {
+  [TestClass]
+  public class IntervalTest {
+    private readonly Interval a = new Interval(-1, 1);
+    private readonly Interval b = new Interval(-2, 2);
+    private readonly Interval c = new Interval(0, 3);
+    private readonly Interval d = new Interval(1, 3);
+    private readonly Interval e = new Interval(4, 6);
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalAddOperation() {
+      //add        [x1,x2] + [y1,y2] = [x1 + y1,x2 + y2]
+
+      // [-1,1] + [-2,2] = [-3,3]
+      Assert.AreEqual(Interval.Add(a, b), new Interval(-3, 3));
+      //([-1, 1] + [-2, 2]) + [0, 3] = [-3, 6]
+      Assert.AreEqual(Interval.Add(Interval.Add(a, b), c), new Interval(-3, 6));
+      //([-1, 1] + [0, 3]) + [-2, 2] = [-3, 6]
+      Assert.AreEqual(Interval.Add(Interval.Add(a, c), b), new Interval(-3, 6));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalSubOperation() {
+      //subtract   [x1,x2] − [y1,y2] = [x1 − y2,x2 − y1]
+
+      //[-1, 1] - [-2, 2] = [-3, 3]
+      Assert.AreEqual<Interval>(Interval.Subtract(a, b), new Interval(-3, 3));
+      //([-1, 1] - [-2, 2]) - [0, 3] = [-6, 3]
+      Assert.AreEqual<Interval>(Interval.Subtract(Interval.Subtract(a, b), c), new Interval(-6, 3));
+      //([-1, 1] - [0, 3]) - [-2, 2] = [-6, 3]
+      Assert.AreEqual<Interval>(Interval.Subtract(Interval.Subtract(a, c), b), new Interval(-6, 3));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalMutlipyOperation() {
+      //multiply   [x1,x2] * [y1,y2] = [min(x1*y1,x1*y2,x2*y1,x2*y2),max(x1*y1,x1*y2,x2*y1,x2*y2)]
+
+      //[-1, 1] * [-2, 2] = [-2, 2]
+      Assert.AreEqual<Interval>(Interval.Multiply(a, b), new Interval(-2, 2));
+      //([-1, 1] * [-2, 2]) * [0, 3] = [-6, 6]
+      Assert.AreEqual<Interval>(Interval.Multiply(Interval.Multiply(a, b), c), new Interval(-6, 6));
+      //([-1, 1] * [0, 3]) * [-2, 2] = [-6, 6]
+      Assert.AreEqual<Interval>(Interval.Multiply(Interval.Multiply(a, c), b), new Interval(-6, 6));
+
+      // [-2, 0] * [-2, 0]  = [0, 4]
+      Assert.AreEqual<Interval>(new Interval(0, 4), Interval.Multiply(new Interval(-2, 0), new Interval(-2, 0)));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalDivideOperation() {
+      //divide  [x1, x2] / [y1, y2] = [x1, x2] * (1/[y1, y2]), where 1 / [y1,y2] = [1 / y2,1 / y1] if 0 not in [y_1, y_2].
+
+      //[4, 6] / [1, 3] = [4/3, 6]
+      Assert.AreEqual<Interval>(Interval.Divide(e, d), new Interval(4.0 / 3.0, 6));
+      //([4, 6] / [1, 3]) / [1, 3] = [4/9, 6]
+      Assert.AreEqual<Interval>(Interval.Divide(Interval.Divide(e, d), d), new Interval(4.0 / 9.0, 6));
+      //[4, 6] / [0, 3] = [4/3, +Inf]
+      Assert.AreEqual<Interval>(Interval.Divide(e, c), new Interval(4.0 / 3.0, double.PositiveInfinity));
+      //[-1, 1] / [0, 3] = [+Inf, -Inf]
+      Assert.AreEqual<Interval>(Interval.Divide(a, c), new Interval(double.NegativeInfinity, double.PositiveInfinity));
+      //Devision by 0 ==> IsInfiniteOrUndefined == true
+      Assert.IsTrue(Interval.Divide(e, c).IsInfiniteOrUndefined);
+      //Devision by 0 ==> IsInfiniteOrUndefined == true
+      Assert.IsTrue(Interval.Divide(a, c).IsInfiniteOrUndefined);
+      Assert.AreEqual<Interval>(Interval.Divide(d, b), new Interval(double.NegativeInfinity, double.PositiveInfinity));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalSineOperator() {
+      //sine depends on interval
+      //sin([0, 2*pi]) = [-1, 1]
+      Assert.AreEqual<Interval>(Interval.Sine(new Interval(0, 2 * Math.PI)), new Interval(-1, 1));
+      //sin([-pi/2, pi/2]) = [sin(-pi/2), sin(pi/2)]
+      Assert.AreEqual<Interval>(Interval.Sine(new Interval(-1 * Math.PI / 2, Math.PI / 2)), new Interval(-1, 1));
+      //sin([0, pi/2]) = [sin(0), sin(pi/2)]
+      Assert.AreEqual<Interval>(Interval.Sine(new Interval(0, Math.PI / 2)), new Interval(0, 1));
+      //sin([pi, 3*pi/2]) = [sin(pi), sin(3*pi/2)]
+      Assert.AreEqual<Interval>(Interval.Sine(new Interval(Math.PI, 3 * Math.PI / 2)), new Interval(-1, 0));
+      Assert.AreEqual<Interval>(Interval.Sine(new Interval(1, 2)), new Interval(Math.Min(Math.Sin(1), Math.Sin(2)), 1));
+      Assert.AreEqual<Interval>(Interval.Sine(new Interval(1, 3)), new Interval(Math.Min(Math.Sin(1), Math.Sin(3)), 1));
+      Assert.AreEqual<Interval>(Interval.Sine(new Interval(Math.PI, 5 * Math.PI / 2)), new Interval(-1, 1));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalCosineOperator() {
+      //Cosine uses sine Interval.Sine(Interval.Subtract(a, new Interval(Math.PI / 2, Math.PI / 2)));
+      Assert.AreEqual<Interval>(Interval.Cosine(new Interval(0, 2 * Math.PI)), new Interval(-1, 1));
+      Assert.AreEqual<Interval>(new Interval(-1, 1), Interval.Cosine(new Interval(Math.PI, 4 * Math.PI / 2)));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalLogOperator() {
+      //Log([3, 5]) = [log(3), log(5)]
+      Assert.AreEqual<Interval>(new Interval(Math.Log(3), Math.Log(5)), Interval.Logarithm(new Interval(3, 5)));
+      //Log([0.5, 1]) = [log(0.5), log(1)]
+      Assert.AreEqual<Interval>(new Interval(Math.Log(0.5), 0), Interval.Logarithm(new Interval(0.5, 1)));
+      //Log([-1, 5]) = [NaN, log(5)]
+      var result = Interval.Logarithm(new Interval(-1, 5));
+      Assert.AreEqual<Interval>(new Interval(double.NaN, Math.Log(5)),result);
+      Assert.IsTrue(result.IsInfiniteOrUndefined);
+    }
+
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalExpOperator() {
+      //Exp([0, 1]) = [exp(0), exp(1)]
+      Assert.AreEqual<Interval>(new Interval(1, Math.Exp(1)), Interval.Exponential(new Interval(0, 1)));
+    }
+
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalSqrOperator() {
+      Assert.AreEqual<Interval>(new Interval(1, 4), Interval.Square(new Interval(1, 2)));
+      Assert.AreEqual<Interval>(new Interval(1, 4), Interval.Square(new Interval(-2, -1)));
+      Assert.AreEqual<Interval>(new Interval(0, 4), Interval.Square(new Interval(-2, 2)));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalSqrtOperator() {
+      Assert.AreEqual<Interval>(new Interval(1, 2), Interval.SquareRoot(new Interval(1, 4)));
+      Assert.AreEqual<Interval>(new Interval(double.NaN, double.NaN), Interval.SquareRoot(new Interval(-4, -1)));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalCubeOperator() {
+      Assert.AreEqual<Interval>(new Interval(1, 8), Interval.Cube(new Interval(1, 2)));
+      Assert.AreEqual<Interval>(new Interval(-8, -1), Interval.Cube(new Interval(-2, -1)));
+      Assert.AreEqual<Interval>(new Interval(-8, 8), Interval.Cube(new Interval(-2, 2)));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalCbrtOperator() {
+      Assert.AreEqual<Interval>(new Interval(1, 2), Interval.CubicRoot(new Interval(1, 8)));
+      Assert.AreEqual<Interval>(new Interval(double.NaN, double.NaN), Interval.CubicRoot(new Interval(-8, -1)));
+    }
+  }
+}
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/OnlineCalculatorPerformanceTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/OnlineCalculatorPerformanceTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/OnlineCalculatorPerformanceTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/RegressionVariableImpactCalculationTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/RegressionVariableImpactCalculationTest.cs	(revision 16711)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/RegressionVariableImpactCalculationTest.cs	(revision 16711)
@@ -0,0 +1,338 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Common;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+using HeuristicLab.Random;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Problems.DataAnalysis.Tests {
+
+  [TestClass()]
+  public class RegressionVariableImpactCalculationTest {
+    private TestContext testContextInstance;
+    /// <summary>
+    ///Gets or sets the test context which provides
+    ///information about and functionality for the current test run.
+    ///</summary>
+    public TestContext TestContext {
+      get { return testContextInstance; }
+      set { testContextInstance = value; }
+    }
+
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void ConstantModelVariableImpactTest() {
+      IRegressionProblemData problemData = LoadDefaultTowerProblem();
+      IRegressionModel model = new ConstantModel(5, "y");
+      IRegressionSolution solution = new RegressionSolution(model, problemData);
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForConstantModel();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void LinearRegressionModelVariableImpactTowerTest() {
+      IRegressionProblemData problemData = LoadDefaultTowerProblem();
+      double rmsError;
+      double cvRmsError;
+      var solution = LinearRegression.CreateSolution(problemData, out rmsError, out cvRmsError);
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForLRTower();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void LinearRegressionModelVariableImpactMibaTest() {
+      IRegressionProblemData problemData = LoadDefaultMibaProblem();
+      double rmsError;
+      double cvRmsError;
+      var solution = LinearRegression.CreateSolution(problemData, out rmsError, out cvRmsError);
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForLRMiba();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void RandomForestModelVariableImpactTowerTest() {
+      IRegressionProblemData problemData = LoadDefaultTowerProblem();
+      double rmsError;
+      double avgRelError;
+      double outOfBagRmsError;
+      double outofBagAvgRelError;
+      var solution = RandomForestRegression.CreateRandomForestRegressionSolution(problemData, 50, 0.2, 0.5, 1234, out rmsError, out avgRelError, out outOfBagRmsError, out outofBagAvgRelError);
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForRFTower();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void CustomModelVariableImpactTest() {
+      IRegressionProblemData problemData = CreateDefaultProblem();
+      ISymbolicExpressionTree tree = CreateCustomExpressionTree();
+      IRegressionModel model = new SymbolicRegressionModel(problemData.TargetVariable, tree, new SymbolicDataAnalysisExpressionTreeInterpreter());
+      IRegressionSolution solution = new RegressionSolution(model, (IRegressionProblemData)problemData.Clone());
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForCustomProblem();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    public void CustomModelVariableImpactNoInfluenceTest() {
+      IRegressionProblemData problemData = CreateDefaultProblem();
+      ISymbolicExpressionTree tree = CreateCustomExpressionTreeNoInfluenceX1();
+      IRegressionModel model = new SymbolicRegressionModel(problemData.TargetVariable, tree, new SymbolicDataAnalysisExpressionTreeInterpreter());
+      IRegressionSolution solution = new RegressionSolution(model, (IRegressionProblemData)problemData.Clone());
+      Dictionary<string, double> expectedImpacts = GetExpectedValuesForCustomProblemNoInfluence();
+
+      CheckDefaultAsserts(solution, expectedImpacts);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "short")]
+    [ExpectedException(typeof(ArgumentException))]
+    public void WrongDataSetVariableImpactRegressionTest() {
+      IRegressionProblemData problemData = LoadDefaultTowerProblem();
+      double rmsError;
+      double cvRmsError;
+      var solution = LinearRegression.CreateSolution(problemData, out rmsError, out cvRmsError);
+      solution.ProblemData = LoadDefaultMibaProblem();
+      RegressionSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis")]
+    [TestProperty("Time", "medium")]
+    public void PerformanceVariableImpactRegressionTest() {
+      int rows = 20000;
+      int columns = 77;
+      var dataSet = OnlineCalculatorPerformanceTest.CreateRandomDataset(new MersenneTwister(1234), rows, columns);
+      IRegressionProblemData problemData = new RegressionProblemData(dataSet, dataSet.VariableNames.Except("y".ToEnumerable()), "y");
+      double rmsError;
+      double cvRmsError;
+      var solution = LinearRegression.CreateSolution(problemData, out rmsError, out cvRmsError);
+
+      Stopwatch watch = new Stopwatch();
+      watch.Start();
+      var results = RegressionSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+      watch.Stop();
+
+      TestContext.WriteLine("");
+      TestContext.WriteLine("Calculated cells per millisecond: {0}.", rows * columns / watch.ElapsedMilliseconds);
+
+    }
+
+    #region Load RegressionProblemData
+    private IRegressionProblemData LoadDefaultTowerProblem() {
+      RegressionRealWorldInstanceProvider provider = new RegressionRealWorldInstanceProvider();
+      var tower = new HeuristicLab.Problems.Instances.DataAnalysis.Tower();
+      return provider.LoadData(tower);
+    }
+    private IRegressionProblemData LoadDefaultMibaProblem() {
+      MibaFrictionRegressionInstanceProvider provider = new MibaFrictionRegressionInstanceProvider();
+      var cf1 = new HeuristicLab.Problems.Instances.DataAnalysis.CF1();
+      return provider.LoadData(cf1);
+    }
+    private IRegressionProblemData CreateDefaultProblem() {
+      List<string> allowedInputVariables = new List<string>() { "x1", "x2", "x3", "x4", "x5" };
+      string targetVariable = "y";
+      var variableNames = allowedInputVariables.Union(targetVariable.ToEnumerable());
+      double[,] variableValues = new double[100, variableNames.Count()];
+
+      FastRandom random = new FastRandom(12345);
+      for (int i = 0; i < variableValues.GetLength(0); i++) {
+        for (int j = 0; j < variableValues.GetLength(1); j++) {
+          variableValues[i, j] = random.Next(1, 100);
+        }
+      }
+
+      Dataset dataset = new Dataset(variableNames, variableValues);
+      return new RegressionProblemData(dataset, allowedInputVariables, targetVariable);
+    }
+    #endregion
+
+    #region Create SymbolicExpressionTree
+
+    private ISymbolicExpressionTree CreateCustomExpressionTree() {
+      return new InfixExpressionParser().Parse("x1*x2 - x2*x2 + x3*x3 + x4*x4 - x5*x5 + 14/12");
+    }
+    private ISymbolicExpressionTree CreateCustomExpressionTreeNoInfluenceX1() {
+      return new InfixExpressionParser().Parse("x1/x1*x2 - x2*x2 + x3*x3 + x4*x4 - x5*x5 + 14/12");
+    }
+    #endregion
+
+    #region Get Expected Values
+    private Dictionary<string, double> GetExpectedValuesForConstantModel() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("x1", 0);
+      expectedImpacts.Add("x10", 0);
+      expectedImpacts.Add("x11", 0);
+      expectedImpacts.Add("x12", 0);
+      expectedImpacts.Add("x13", 0);
+      expectedImpacts.Add("x14", 0);
+      expectedImpacts.Add("x15", 0);
+      expectedImpacts.Add("x16", 0);
+      expectedImpacts.Add("x17", 0);
+      expectedImpacts.Add("x18", 0);
+      expectedImpacts.Add("x19", 0);
+      expectedImpacts.Add("x2", 0);
+      expectedImpacts.Add("x20", 0);
+      expectedImpacts.Add("x21", 0);
+      expectedImpacts.Add("x22", 0);
+      expectedImpacts.Add("x23", 0);
+      expectedImpacts.Add("x24", 0);
+      expectedImpacts.Add("x25", 0);
+      expectedImpacts.Add("x3", 0);
+      expectedImpacts.Add("x4", 0);
+      expectedImpacts.Add("x5", 0);
+      expectedImpacts.Add("x6", 0);
+      expectedImpacts.Add("x7", 0);
+      expectedImpacts.Add("x8", 0);
+      expectedImpacts.Add("x9", 0);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForLRTower() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("x1", 0.639933657675427);
+      expectedImpacts.Add("x10", 0.0127006885259798);
+      expectedImpacts.Add("x11", 0.648236047877475);
+      expectedImpacts.Add("x12", 0.248350173524562);
+      expectedImpacts.Add("x13", 0.550889987109547);
+      expectedImpacts.Add("x14", 0.0882824237877192);
+      expectedImpacts.Add("x15", 0.0391276799061169);
+      expectedImpacts.Add("x16", 0.743632451088798);
+      expectedImpacts.Add("x17", 0.00254276857715308);
+      expectedImpacts.Add("x18", 0.0021548147614302);
+      expectedImpacts.Add("x19", 0.00513473927463037);
+      expectedImpacts.Add("x2", 0.0107583487931443);
+      expectedImpacts.Add("x20", 0.18085069746933);
+      expectedImpacts.Add("x21", 0.138053600700762);
+      expectedImpacts.Add("x22", 0.000339539790460086);
+      expectedImpacts.Add("x23", 0.362111965467117);
+      expectedImpacts.Add("x24", 0.0320167935572304);
+      expectedImpacts.Add("x25", 0.57460423230969);
+      expectedImpacts.Add("x3", 0.688142635515862);
+      expectedImpacts.Add("x4", 0.000176632348454664);
+      expectedImpacts.Add("x5", 0.0213915503114581);
+      expectedImpacts.Add("x6", 0.807976486909701);
+      expectedImpacts.Add("x7", 0.716217843319252);
+      expectedImpacts.Add("x8", 0.772701841392564);
+      expectedImpacts.Add("x9", 0.178418730050997);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForLRMiba() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("Grooving", 0.0380558091030508);
+      expectedImpacts.Add("Material", 0.02195836766156);
+      expectedImpacts.Add("Material_Cat", 0.000338687689067418);
+      expectedImpacts.Add("Oil", 0.363464994447857);
+      expectedImpacts.Add("x10", 0.0015309669014415);
+      expectedImpacts.Add("x11", -3.60432578908609E-05);
+      expectedImpacts.Add("x12", 0.00118953859087612);
+      expectedImpacts.Add("x13", 0.00164240977191832);
+      expectedImpacts.Add("x14", 0.000688363685380056);
+      expectedImpacts.Add("x15", -4.75067203969948E-05);
+      expectedImpacts.Add("x16", 0.00130388206125076);
+      expectedImpacts.Add("x17", 0.132351838646134);
+      expectedImpacts.Add("x2", -2.47981401556574E-05);
+      expectedImpacts.Add("x20", 0.716541716605016);
+      expectedImpacts.Add("x22", 0.174959377282835);
+      expectedImpacts.Add("x3", -2.65979754026091E-05);
+      expectedImpacts.Add("x4", -1.24764212947603E-05);
+      expectedImpacts.Add("x5", 0.001184959455798);
+      expectedImpacts.Add("x6", 0.000743336665237626);
+      expectedImpacts.Add("x7", 0.00188965927889773);
+      expectedImpacts.Add("x8", 0.00415201581536351);
+      expectedImpacts.Add("x9", 0.00365653880518491);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForRFTower() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("x5", 0.00138095702433039);
+      expectedImpacts.Add("x19", 0.00220739387855795);
+      expectedImpacts.Add("x14", 0.00225120540266954);
+      expectedImpacts.Add("x18", 0.00311857736968479);
+      expectedImpacts.Add("x9", 0.00313474690023097);
+      expectedImpacts.Add("x20", 0.00321781251408282);
+      expectedImpacts.Add("x21", 0.00397483365571383);
+      expectedImpacts.Add("x16", 0.00433280262892111);
+      expectedImpacts.Add("x15", 0.00529918809786456);
+      expectedImpacts.Add("x3", 0.00658791244929757);
+      expectedImpacts.Add("x24", 0.0078645281886035);
+      expectedImpacts.Add("x4", 0.00907314110749047);
+      expectedImpacts.Add("x13", 0.0102943761648944);
+      expectedImpacts.Add("x22", 0.0107132858548163);
+      expectedImpacts.Add("x12", 0.0157078677788507);
+      expectedImpacts.Add("x23", 0.0235857534562318);
+      expectedImpacts.Add("x7", 0.0304143401617055);
+      expectedImpacts.Add("x11", 0.0310773441767309);
+      expectedImpacts.Add("x25", 0.0328308945873665);
+      expectedImpacts.Add("x17", 0.0428771226844575);
+      expectedImpacts.Add("x10", 0.0456335367972532);
+      expectedImpacts.Add("x8", 0.049849257881126);
+      expectedImpacts.Add("x1", 0.0663686086323108);
+      expectedImpacts.Add("x2", 0.0799083890750926);
+      expectedImpacts.Add("x6", 0.196557814244287);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForCustomProblem() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("x1", -0.000573340275115796);
+      expectedImpacts.Add("x2", 0.000781819784095592);
+      expectedImpacts.Add("x3", -0.000390473234921058);
+      expectedImpacts.Add("x4", -0.00116083274627995);
+      expectedImpacts.Add("x5", -0.00036161186207545);
+
+      return expectedImpacts;
+    }
+    private Dictionary<string, double> GetExpectedValuesForCustomProblemNoInfluence() {
+      Dictionary<string, double> expectedImpacts = new Dictionary<string, double>();
+      expectedImpacts.Add("x1", 0);
+      expectedImpacts.Add("x2", 0.00263393690342982);
+      expectedImpacts.Add("x3", -0.00053248037514929);
+      expectedImpacts.Add("x4", 0.00450365819257568);
+      expectedImpacts.Add("x5", -0.000550911612888904);
+
+      return expectedImpacts;
+    }
+    #endregion
+
+    private void CheckDefaultAsserts(IRegressionSolution solution, Dictionary<string, double> expectedImpacts) {
+      IRegressionProblemData problemData = solution.ProblemData;
+      IEnumerable<double> estimatedValues = solution.GetEstimatedValues(solution.ProblemData.TrainingIndices);
+
+      var solutionImpacts = RegressionSolutionVariableImpactsCalculator.CalculateImpacts(solution);
+      var modelImpacts = RegressionSolutionVariableImpactsCalculator.CalculateImpacts(solution.Model, problemData, estimatedValues, problemData.TrainingIndices);
+
+      //Both ways should return equal results
+      Assert.IsTrue(solutionImpacts.SequenceEqual(modelImpacts));
+
+      //Check if impacts are as expected
+      Assert.AreEqual(modelImpacts.Count(), expectedImpacts.Count);
+      Assert.IsTrue(modelImpacts.All(v => v.Item2.IsAlmost(expectedImpacts[v.Item1])));
+    }
+  }
+}
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/StatisticCalculatorsTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/StatisticCalculatorsTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/StatisticCalculatorsTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ThresholdCalculatorsTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ThresholdCalculatorsTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/ThresholdCalculatorsTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: anches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/VariableImpactCalculationTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/VariableImpactCalculationTest.cs	(revision 16710)
+++ 	(revision )
@@ -1,238 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Algorithms.ALPS;
-using HeuristicLab.Algorithms.DataAnalysis;
-using HeuristicLab.Data;
-using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
-using HeuristicLab.Problems.DataAnalysis.Symbolic;
-using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
-using HeuristicLab.Problems.Instances.DataAnalysis;
-using HeuristicLab.Selection;
-using HeuristicLab.Tests;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace HeuristicLab.Problems.DataAnalysis.Tests {
-
-  [TestClass()]
-  public class VariableImpactCalculationTest {
-    [TestMethod]
-    [TestCategory("Problems.DataAnalysis")]
-    [TestProperty("Time", "medium")]
-    public void RunAlpsSymRegFactoryVariableMibaC1Test() {
-      var alpsGA = CreateAlpsGaSymRegMibaC1Sample();
-      alpsGA.Start();
-      var ers = alpsGA.Results.FirstOrDefault(v => v.Name == "Variable impacts").Value as DoubleMatrix;
-      Assert.IsNotNull(ers);
-      Assert.IsTrue(ers.Rows == 22);
-      List<string> expectedVariableOrder = new List<string> { "Oil", "Grooving", "Material_Cat", "x20", "Material", "x14", "x12", "x3", "x7", "x2", "x16", "x15", "x8", "x10", "x11", "x22", "x4", "x5", "x6", "x9", "x17", "x13" };
-      List<double> expectedVariableImpacts = new List<double> { 0.206, 0.179, 0.136, 0.099, 0.092, 0.07, 0.048, 0.033, 0.029, 0.026, 0.017, 0.01, 0.007, 0.007, 0.007, 0.006, 0.005, 0.005, 0.005, 0.005, 0.005, 0.003 };
-      Assert.IsTrue(ers.RowNames.SequenceEqual(expectedVariableOrder));
-      Assert.IsTrue(ers.SequenceEqual(expectedVariableImpacts));
-    }
-
-    [TestMethod]
-    [TestCategory("Problems.DataAnalysis")]
-    [TestProperty("Time", "medium")]
-    public void RunAlpsSymRegFactoryVariableMibaWear1Test() {
-      var alpsGA = CreateAlpsGaSymRegMibaWear1Sample();
-      alpsGA.Start();
-      var ers = alpsGA.Results.FirstOrDefault(v => v.Name == "Variable impacts").Value as DoubleMatrix;
-      Assert.IsNotNull(ers);
-      Assert.IsTrue(ers.Rows == 27);
-      List<string> expectedVariableOrder = new List<string> { "Oil", "Material_Cat", "Material", "Grooving", "x8", "x1", "x14", "x11", "x19", "x10", "x5", "x9", "x17", "x6", "x18", "x7", "Source1", "x2", "x3", "x4", "x16", "x20", "x12", "x13", "x15", "x22", "x21" };
-      List<double> expectedVariableImpacts = new List<double> { 0.194, 0.184, 0.163, 0.155, 0.022, 0.019, 0.019, 0.018, 0.017, 0.016, 0.015, 0.015, 0.015, 0.014, 0.014, 0.013, 0.012, 0.011, 0.011, 0.011, 0.011, 0.011, 0.01, 0.009, 0.009, 0.008, 0.006 };
-      Assert.IsTrue(ers.RowNames.SequenceEqual(expectedVariableOrder));
-      Assert.IsTrue(ers.SequenceEqual(expectedVariableImpacts));
-    }
-
-    [TestMethod]
-    [TestCategory("Problems.DataAnalysis")]
-    [TestProperty("Time", "medium")]
-    public void RunAlpsSymRegFactoryVariableRealworldTowerTest() {
-      var alpsGA = CreateAlpsGaSymReRealworldTowerSample();
-      alpsGA.Start();
-      var ers = alpsGA.Results.FirstOrDefault(v => v.Name == "Variable impacts").Value as DoubleMatrix;
-      Assert.IsNotNull(ers);
-      Assert.IsTrue(ers.Rows == 25);
-      List<string> expectedVariableOrder = new List<string> { "x5", "x4", "x21", "x22", "x13", "x3", "x9", "x19", "x1", "x12", "x8", "x10", "x25", "x11", "x23", "x7", "x24", "x6", "x14", "x15", "x20", "x2", "x16", "x18", "x17" };
-      List<double> expectedVariableImpacts = new List<double> { 0.057, 0.051, 0.047, 0.047, 0.046, 0.045, 0.044, 0.044, 0.043, 0.043, 0.041, 0.04, 0.04, 0.038, 0.038, 0.037, 0.037, 0.036, 0.036, 0.034, 0.033, 0.031, 0.031, 0.031, 0.03 };
-      Assert.IsTrue(ers.RowNames.SequenceEqual(expectedVariableOrder));
-      Assert.IsTrue(ers.SequenceEqual(expectedVariableImpacts));
-    }
-
-    [TestMethod]
-    [TestCategory("Problems.DataAnalysis")]
-    [TestProperty("Time", "short")]
-    public void RunRandomForestPolyTenTest() {
-      var randomForestRegression = new RandomForestRegression() {
-        M = 0.4,
-        R = 0.3,
-        NumberOfTrees = 50,
-        SetSeedRandomly = false,
-        Seed = 42
-      };
-
-      var symbRegProblem = new SymbolicRegressionSingleObjectiveProblem();
-      symbRegProblem.ProblemData = new PolyTen(555000).GenerateRegressionData();
-      randomForestRegression.Problem = symbRegProblem;
-      randomForestRegression.Start();
-
-      var rfs = randomForestRegression.Results.FirstOrDefault(v => v.Name == "Random forest regression solution").Value as RandomForestRegressionSolution;
-      Assert.IsNotNull(rfs);
-      var result = new RegressionSolutionVariableImpactsCalculator().Calculate(rfs);
-
-      //Set expected impacts
-      List<Tuple<string, double>> aux = new List<Tuple<string, double>>();
-      aux.Add(new Tuple<string, double>("X6", 0.14984398650032071));
-      aux.Add(new Tuple<string, double>("X5", 0.14361275357221248));
-      aux.Add(new Tuple<string, double>("X1", 0.10607502238071009));
-      aux.Add(new Tuple<string, double>("X3", 0.1056849194554953));
-      aux.Add(new Tuple<string, double>("X4", 0.0906750779077492));
-      aux.Add(new Tuple<string, double>("X2", 0.089817766590950532));
-      aux.Add(new Tuple<string, double>("X8", 0.042797597332305481));
-      aux.Add(new Tuple<string, double>("X9", 0.038609311722408446));
-      aux.Add(new Tuple<string, double>("X10", 0.036202503161574362));
-      aux.Add(new Tuple<string, double>("X7", 0.033539038256832465));
-      Assert.IsTrue(result.SequenceEqual(aux));
-    }
-
-    [TestMethod]
-    [TestCategory("Problems.DataAnalysis")]
-    [TestProperty("Time", "short")]
-    public void RunLinearRegressionBreimanITest() {
-      LinearRegression lr = new LinearRegression();
-      var symbRegProblem = new SymbolicRegressionSingleObjectiveProblem();
-      symbRegProblem.ProblemData = new BreimanOne(1234).GenerateRegressionData();
-
-      lr.Problem = symbRegProblem;
-      lr.Start();
-
-      var lrs = lr.Results.FirstOrDefault(v => v.Name == "Linear regression solution").Value as SymbolicRegressionSolution;
-      Assert.IsNotNull(lrs);
-      var result = new RegressionSolutionVariableImpactsCalculator().Calculate(lrs);
-
-      //Set expected impacts
-      List<Tuple<string, double>> aux = new List<Tuple<string, double>>();
-      aux.Add(new Tuple<string, double>("X1", 0.43328518823918716));
-      aux.Add(new Tuple<string, double>("X2", 0.073284548674773631));
-      aux.Add(new Tuple<string, double>("X5", 0.070306657566311159));
-      aux.Add(new Tuple<string, double>("X3", 0.035352205426012917));
-      aux.Add(new Tuple<string, double>("X6", 0.031710492680145475));
-      aux.Add(new Tuple<string, double>("X4", 0.0081659530036176653));
-      aux.Add(new Tuple<string, double>("X7", 0.0070869550705255913));
-      aux.Add(new Tuple<string, double>("X9", 8.0546619615096127E-05));
-      aux.Add(new Tuple<string, double>("X8", 6.2072921147349192E-05));
-      aux.Add(new Tuple<string, double>("X10", 1.9113559758254794E-06));
-
-      Assert.IsTrue(result.SequenceEqual(aux));
-    }
-
-    private AlpsGeneticAlgorithm CreateAlpsGaSymRegMibaC1Sample() {
-      AlpsGeneticAlgorithm alpsGa = new AlpsGeneticAlgorithm();
-      #region Problem Configuration
-      var provider = new MibaFrictionRegressionInstanceProvider();
-      var instance = provider.GetDataDescriptors().Single(x => x.Name.StartsWith("CF1"));
-      var symbRegProblem = new SymbolicRegressionSingleObjectiveProblem();
-      symbRegProblem.Load(provider.LoadData(instance));
-
-      symbRegProblem.MaximumSymbolicExpressionTreeDepth.Value = 35;
-      symbRegProblem.MaximumSymbolicExpressionTreeLength.Value = 35;
-
-      var grammar = (TypeCoherentExpressionGrammar)symbRegProblem.SymbolicExpressionTreeGrammar;
-      grammar.Symbols.OfType<Exponential>().Single().Enabled = false;
-      grammar.Symbols.OfType<Logarithm>().Single().Enabled = false;
-
-      #endregion
-      #region Algorithm Configuration
-      alpsGa.Name = "ALPS Genetic Programming - Symbolic Regression";
-      alpsGa.Description = "An ALPS-GP to solve a symbolic regression problem";
-      alpsGa.Problem = symbRegProblem;
-      SamplesUtils.ConfigureAlpsGeneticAlgorithmParameters<GeneralizedRankSelector, SubtreeCrossover, MultiSymbolicExpressionTreeManipulator>(alpsGa,
-        numberOfLayers: 1000,
-        popSize: 100,
-        mutationRate: 0.25,
-        elites: 1,
-        plusSelection: false,
-        agingScheme: AgingScheme.Polynomial,
-        ageGap: 15,
-        ageInheritance: 1.0,
-        maxGens: 10);
-
-      alpsGa.SetSeedRandomly.Value = false;
-      alpsGa.Seed.Value = 1234;
-      #endregion
-      return alpsGa;
-    }
-    private AlpsGeneticAlgorithm CreateAlpsGaSymRegMibaWear1Sample() {
-      AlpsGeneticAlgorithm alpsGa = new AlpsGeneticAlgorithm();
-      #region Problem Configuration
-      var provider = new MibaFrictionRegressionInstanceProvider();
-      var instance = provider.GetDataDescriptors().Single(x => x.Name.StartsWith("Wear1"));
-      var symbRegProblem = new SymbolicRegressionSingleObjectiveProblem();
-      symbRegProblem.Load(provider.LoadData(instance));
-
-      symbRegProblem.MaximumSymbolicExpressionTreeDepth.Value = 77;
-      symbRegProblem.MaximumSymbolicExpressionTreeLength.Value = 77;
-
-      var grammar = (TypeCoherentExpressionGrammar)symbRegProblem.SymbolicExpressionTreeGrammar;
-
-      #endregion
-      #region Algorithm Configuration
-      alpsGa.Name = "ALPS Genetic Programming - Symbolic Regression";
-      alpsGa.Description = "An ALPS-GP to solve a symbolic regression problem";
-      alpsGa.Problem = symbRegProblem;
-      SamplesUtils.ConfigureAlpsGeneticAlgorithmParameters<RandomSelector, SubtreeCrossover, MultiSymbolicExpressionTreeManipulator>(alpsGa,
-        numberOfLayers: 1000,
-        popSize: 200,
-        mutationRate: 0.25,
-        elites: 1,
-        plusSelection: false,
-        agingScheme: AgingScheme.Polynomial,
-        ageGap: 15,
-        ageInheritance: 1.0,
-        maxGens: 10);
-
-      alpsGa.SetSeedRandomly.Value = false;
-      alpsGa.Seed.Value = 11121314;
-      #endregion
-      return alpsGa;
-    }
-    private AlpsGeneticAlgorithm CreateAlpsGaSymReRealworldTowerSample() {
-      AlpsGeneticAlgorithm alpsGa = new AlpsGeneticAlgorithm();
-      #region Problem Configuration
-      var provider = new RegressionRealWorldInstanceProvider();
-      var instance = provider.GetDataDescriptors().Single(x => x.Name.StartsWith("Tower"));
-      var symbRegProblem = new SymbolicRegressionSingleObjectiveProblem();
-      symbRegProblem.Load(provider.LoadData(instance));
-
-      symbRegProblem.MaximumSymbolicExpressionTreeDepth.Value = 77;
-      symbRegProblem.MaximumSymbolicExpressionTreeLength.Value = 77;
-
-      var grammar = (TypeCoherentExpressionGrammar)symbRegProblem.SymbolicExpressionTreeGrammar;
-
-      #endregion
-      #region Algorithm Configuration
-      alpsGa.Name = "ALPS Genetic Programming - Symbolic Regression";
-      alpsGa.Description = "An ALPS-GP to solve a symbolic regression problem";
-      alpsGa.Problem = symbRegProblem;
-      SamplesUtils.ConfigureAlpsGeneticAlgorithmParameters<RandomSelector, SubtreeCrossover, MultiSymbolicExpressionTreeManipulator>(alpsGa,
-        numberOfLayers: 1000,
-        popSize: 200,
-        mutationRate: 0.25,
-        elites: 1,
-        plusSelection: false,
-        agingScheme: AgingScheme.Polynomial,
-        ageGap: 15,
-        ageInheritance: 1.0,
-        maxGens: 10);
-
-      alpsGa.SetSeedRandomly.Value = false;
-      alpsGa.Seed.Value = 1111;
-      #endregion
-      return alpsGa;
-    }
-
-    //TODO: Add Function-Tests once the Branch of #2904 is done
-  }
-}
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/DeriveTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/DeriveTest.cs	(revision 16711)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/DeriveTest.cs	(revision 16711)
@@ -0,0 +1,142 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+
+using System;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Tests {
+
+
+  [TestClass]
+  public class DerivativeTest {
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void DeriveExpressions() {
+      var formatter = new InfixExpressionFormatter();
+      var parser = new InfixExpressionParser();
+      Assert.AreEqual("0", Derive("3", "x"));
+      Assert.AreEqual("1", Derive("x", "x"));
+      Assert.AreEqual("10", Derive("10*x", "x"));
+      Assert.AreEqual("10", Derive("x*10", "x"));
+      Assert.AreEqual("(2*'x')", Derive("x*x", "x"));
+      Assert.AreEqual("((('x' * 'x') * 2) + ('x' * 'x'))", Derive("x*x*x", "x")); // simplifier does not merge (x*x)*2 + x*x  to 3*x*x
+      Assert.AreEqual("0", Derive("10*x", "y"));
+      Assert.AreEqual("20", Derive("10*x+20*y", "y"));
+      Assert.AreEqual("6", Derive("2*3*x", "x"));
+      Assert.AreEqual("(10*'y')", Derive("10*x*y+20*y", "x"));
+      Assert.AreEqual("(1 / (SQR('x') * (-1)))", Derive("1/x", "x"));
+      Assert.AreEqual("('y' / (SQR('x') * (-1)))", Derive("y/x", "x"));
+      Assert.AreEqual("((((-2*'x') + (-1)) * ('a' + 'b')) / SQR(('x' + ('x' * 'x'))))",
+        Derive("(a+b)/(x+x*x)", "x"));
+      Assert.AreEqual("((((-2*'x') + (-1)) * ('a' + 'b')) / SQR(('x' + SQR('x'))))", Derive("(a+b)/(x+SQR(x))", "x"));
+      Assert.AreEqual("EXP('x')", Derive("exp(x)", "x"));
+      Assert.AreEqual("(EXP((3*'x')) * 3)", Derive("exp(3*x)", "x"));
+      Assert.AreEqual("(1 / 'x')", Derive("log(x)", "x"));
+      Assert.AreEqual("(1 / 'x')", Derive("log(3*x)", "x"));   // 3 * 1/(3*x)
+      Assert.AreEqual("(1 / ('x' + (0.333333333333333*'y')))", Derive("log(3*x+y)", "x"));  // simplifier does not try to keep fractions
+      Assert.AreEqual("(1 / (SQRT(((3*'x') + 'y')) * 0.666666666666667))", Derive("sqrt(3*x+y)", "x"));   // 3 / (2 * sqrt(3*x+y)) = 1 / ((2/3) * sqrt(3*x+y)) 
+      Assert.AreEqual("(COS((3*'x')) * 3)", Derive("sin(3*x)", "x"));
+      Assert.AreEqual("(SIN((3*'x')) * (-3))", Derive("cos(3*x)", "x"));
+      Assert.AreEqual("(1 / (SQR(COS((3*'x'))) * 0.333333333333333))", Derive("tan(3*x)", "x")); // diff(tan(f(x)), x) = 1.0 / cos²(f(x)), simplifier puts constant factor into the denominator
+
+      Assert.AreEqual("((9*'x') / ABS((3*'x')))", Derive("abs(3*x)", "x"));
+      Assert.AreEqual("(SQR('x') * 3)", Derive("cube(x)", "x"));
+      Assert.AreEqual("(1 / (SQR(CUBEROOT('x')) * 3))", Derive("cuberoot(x)", "x"));
+
+      Assert.AreEqual("0", Derive("(a+b)/(x+SQR(x))", "y")); // df(a,b,x) / dy = 0
+
+      {
+        // special case: Inv(x) using only one argument to the division symbol
+        // f(x) = 1/x
+        var root = new ProgramRootSymbol().CreateTreeNode();
+        var start = new StartSymbol().CreateTreeNode();
+        var div = new Division().CreateTreeNode();
+        var varNode = (VariableTreeNode)(new Variable().CreateTreeNode());
+        varNode.Weight = 1.0;
+        varNode.VariableName = "x";
+        div.AddSubtree(varNode);
+        start.AddSubtree(div);
+        root.AddSubtree(start);
+        var t = new SymbolicExpressionTree(root);
+        Assert.AreEqual("(1 / (SQR('x') * (-1)))",
+          formatter.Format(DerivativeCalculator.Derive(t, "x")));
+      }
+
+      {
+        // special case: multiplication with only one argument
+        var root = new ProgramRootSymbol().CreateTreeNode();
+        var start = new StartSymbol().CreateTreeNode();
+        var mul = new Multiplication().CreateTreeNode();
+        var varNode = (VariableTreeNode)(new Variable().CreateTreeNode());
+        varNode.Weight = 3.0;
+        varNode.VariableName = "x";
+        mul.AddSubtree(varNode);
+        start.AddSubtree(mul);
+        root.AddSubtree(start);
+        var t = new SymbolicExpressionTree(root);
+        Assert.AreEqual("3",
+          formatter.Format(DerivativeCalculator.Derive(t, "x")));
+      }
+
+      {
+        // division with multiple arguments
+        // div(x, y, z) is interpreted as (x / y) / z
+        var root = new ProgramRootSymbol().CreateTreeNode();
+        var start = new StartSymbol().CreateTreeNode();
+        var div = new Division().CreateTreeNode();
+        var varNode1 = (VariableTreeNode)(new Variable().CreateTreeNode());
+        varNode1.Weight = 3.0;
+        varNode1.VariableName = "x";
+        var varNode2 = (VariableTreeNode)(new Variable().CreateTreeNode());
+        varNode2.Weight = 4.0;
+        varNode2.VariableName = "y";
+        var varNode3 = (VariableTreeNode)(new Variable().CreateTreeNode());
+        varNode3.Weight = 5.0;
+        varNode3.VariableName = "z";
+        div.AddSubtree(varNode1); div.AddSubtree(varNode2); div.AddSubtree(varNode3);
+        start.AddSubtree(div);
+        root.AddSubtree(start);
+        var t = new SymbolicExpressionTree(root);
+
+        Assert.AreEqual("(('y' * 'z' * 60) / (SQR('y') * SQR('z') * 400))", // actually 3 / (4y  5z) but simplifier is not smart enough to cancel numerator and denominator
+                                                                            // 60 y z / y² z² 20² == 6 / y z 40 == 3 / y z 20
+          formatter.Format(DerivativeCalculator.Derive(t, "x")));
+        Assert.AreEqual("(('x' * 'z' * (-60)) / (SQR('y') * SQR('z') * 400))", // actually 3x * -(4 5 z) / (4y 5z)² = -3x / (20 y² z)
+                                                                               // -3 4 5 x z / 4² y² 5² z² = -60 x z / 20² z² y² ==    -60 x z / y² z² 20² 
+          formatter.Format(DerivativeCalculator.Derive(t, "y")));
+        Assert.AreEqual("(('x' * 'y' * (-60)) / (SQR('y') * SQR('z') * 400))",
+          formatter.Format(DerivativeCalculator.Derive(t, "z")));
+      }
+    }
+
+    private string Derive(string expr, string variable) {
+      var parser = new InfixExpressionParser();
+      var formatter = new InfixExpressionFormatter();
+
+      var t = parser.Parse(expr);
+      var tPrime = DerivativeCalculator.Derive(t, variable);
+
+      return formatter.Format(tPrime);
+    }
+  }
+}
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/InfixExpressionParserTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/InfixExpressionParserTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/InfixExpressionParserTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -61,15 +61,15 @@
 
       Console.WriteLine(formatter.Format(parser.Parse("log(3)")));
-      Console.WriteLine(formatter.Format(parser.Parse("log(-3)")));
+      Console.WriteLine(formatter.Format(parser.Parse("log(-3)")));   // should produce log(-3) as output
       Console.WriteLine(formatter.Format(parser.Parse("exp(3)")));
-      Console.WriteLine(formatter.Format(parser.Parse("exp(-3)")));
+      Console.WriteLine(formatter.Format(parser.Parse("exp(-3)")));  // should produce exp(-3) as output
       Console.WriteLine(formatter.Format(parser.Parse("sqrt(3)")));
 
-      Console.WriteLine(formatter.Format(parser.Parse("sqr((-3))")));
+      Console.WriteLine(formatter.Format(parser.Parse("sqr((-3))")));  // should produce sqr((-3)) as output
 
-      Console.WriteLine(formatter.Format(parser.Parse("3/3+2/2+1/1")));
-      Console.WriteLine(formatter.Format(parser.Parse("-3+30-2+20-1+10")));
+      Console.WriteLine(formatter.Format(parser.Parse("3/3+2/2+1/1"))); // ((3 * 1 / 3) + (2 * 1 / 2) + (1 * 1 / 1))
+      Console.WriteLine(formatter.Format(parser.Parse("-3+30-2+20-1+10")));   //  not (30 + 20 + 10 + ((-1) * (3 + 2 + 1)))
       // round trip
-      Console.WriteLine(formatter.Format(parser.Parse(formatter.Format(parser.Parse("-3+30-2+20-1+10")))));
+      Console.WriteLine(formatter.Format(parser.Parse(formatter.Format(parser.Parse("-3+30-2+20-1+10")))));   // not (30 + 20 + 10 + ((-(1)) * (3 + 2 + 1)))
 
       Console.WriteLine(formatter.Format(parser.Parse("\"x1\"")));
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/IntervalInterpreterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/IntervalInterpreterTest.cs	(revision 16711)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/IntervalInterpreterTest.cs	(revision 16711)
@@ -0,0 +1,115 @@
+﻿using System;
+using System.Collections.Generic;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Tests {
+  [TestClass]
+  public class IntervalInterpreterTest {
+    private IRegressionProblemData problemData;
+    private Dictionary<string, Interval> variableRanges;
+
+    [TestInitialize]
+    public void InitTest() {
+      double[,] arr = new double[4, 3];
+
+      arr[0, 0] = 3;
+      arr[0, 1] = 6;
+      arr[0, 2] = 2;
+      arr[1, 0] = 5;
+      arr[1, 1] = 2;
+      arr[1, 2] = 1;
+      arr[2, 0] = 8;
+      arr[2, 1] = 5;
+      arr[2, 2] = 0;
+      arr[3, 0] = 3;
+      arr[3, 1] = 4;
+      arr[3, 2] = 2;
+
+      var ds = new Dataset(new string[] { "x1", "x2", "y" }, arr);
+      problemData = (IRegressionProblemData)new RegressionProblemData(ds, new string[] { "x1", "x2" }, "y");
+
+      variableRanges = new Dictionary<string, Interval>();
+      variableRanges.Add("x1", new Interval(1, 10));
+      variableRanges.Add("x2", new Interval(4, 6));
+    }
+
+    private void EvaluateTest(string expression, Interval expectedResult, Dictionary<string, Interval> variableRanges = null) {
+      var parser = new InfixExpressionParser();
+      var tree = parser.Parse(expression);
+      var interpreter = new IntervalInterpreter();
+      Interval result;
+      if (variableRanges == null)
+        result = interpreter.GetSymbolicExressionTreeInterval(tree, problemData.Dataset, problemData.AllIndices);
+      else
+        result = interpreter.GetSymbolicExressionTreeInterval(tree, variableRanges);
+
+      Assert.AreEqual(expectedResult, result);
+    }
+
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalInterpreterAdd() {
+      EvaluateTest("x1 + x2", new Interval(5, 14));
+      EvaluateTest("x1 + x2", new Interval(5, 16), variableRanges);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalInterpreterLogAdd() {
+      EvaluateTest("log(x1 + x2)", new Interval(Math.Log(5), Math.Log(14)));
+      EvaluateTest("log(x1 + x2)", new Interval(Math.Log(5), Math.Log(16)), variableRanges);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalInterpreterLogAddMul() {
+      EvaluateTest("log(3*x1 + x2)", new Interval(Math.Log(11), Math.Log(30)));
+      EvaluateTest("log(3*x1 + x2)", new Interval(Math.Log(7), Math.Log(36)), variableRanges);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalInterpreterSin() {
+      EvaluateTest("sin(x1+x2)", new Interval(-1, 1));
+      EvaluateTest("sin(x1+x2)", new Interval(-1, 1), variableRanges);
+      EvaluateTest("sin(1+2)", new Interval(Math.Sin(3), Math.Sin(3)));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalInterpreterCos() {
+      EvaluateTest("cos(x1+x2)", new Interval(-1, 1));
+      EvaluateTest("cos(x1+x2)", new Interval(-1, 1), variableRanges);
+      EvaluateTest("cos(1+2)", new Interval(Math.Sin(3 - Math.PI / 2), Math.Sin(3 - Math.PI / 2)));
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalInterpreterExp() {
+      EvaluateTest("exp(x1-x2)", new Interval(Math.Exp(-3), Math.Exp(6)));
+      EvaluateTest("exp(x1-x2)", new Interval(Math.Exp(-5), Math.Exp(6)), variableRanges);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalInterpreterExpRoot() {
+      EvaluateTest("exp(root(x1*x2, 2))", new Interval(Math.Exp(Math.Sqrt(6)), Math.Exp(Math.Sqrt(48))));
+      EvaluateTest("exp(root(x1*x2, 2))", new Interval(Math.Exp(Math.Sqrt(4)), Math.Exp(Math.Sqrt(60))), variableRanges);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "short")]
+    public void TestIntervalInterpreterPower() {
+      EvaluateTest("pow(x1, 2)", new Interval(Math.Pow(3, 1), Math.Pow(8, 3)));
+    }
+  }
+}
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionCrossoverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionCrossoverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionCrossoverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -119,4 +119,17 @@
     public void LinearInterpreterTestArithmeticGrammarPerformance() {
       TestArithmeticGrammarPerformance(new SymbolicDataAnalysisExpressionTreeLinearInterpreter(), 12.5e6);
+    }
+
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "long")]
+    public void BatchInterpreterTestTypeCoherentGrammarPerformance() {
+      TestTypeCoherentGrammarPerformance(new SymbolicDataAnalysisExpressionTreeBatchInterpreter(), 12.5e6);
+    }
+    [TestMethod]
+    [TestCategory("Problems.DataAnalysis.Symbolic")]
+    [TestProperty("Time", "long")]
+    public void BatchInterpreterTestArithmeticGrammarPerformance() {
+      TestArithmeticGrammarPerformance(new SymbolicDataAnalysisExpressionTreeBatchInterpreter(), 12.5e6);
     }
 
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeSimplifierTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeSimplifierTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeSimplifierTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -228,4 +228,45 @@
       AssertEqualAfterSimplification("(- (factor a 2.0 3.0) (binfactor a x0 2.0))", "(factor a 0.0 3.0)");
       #endregion
+
+      #region abs
+      AssertEqualAfterSimplification("(abs 2.0)", "2.0");
+      AssertEqualAfterSimplification("(abs -2.0)", "2.0"); // constant folding
+      AssertEqualAfterSimplification("(abs (exp (variable 2.0 x)))", "(exp (variable 2.0 x)))"); // exp is always positive
+      AssertEqualAfterSimplification("(abs (exp (variable 2.0 x)))", "(exp (variable 2.0 x)))"); // exp is always positive
+      AssertEqualAfterSimplification("(abs (sqr (variable 2.0 a)))", "(sqr (variable 2.0 a))"); // sqr is always positive
+      AssertEqualAfterSimplification("(abs (sqrt (variable 2.0 a)))", "(sqrt (variable 2.0 a))"); // sqrt is always positive (for our cases)
+      AssertEqualAfterSimplification("(abs (cuberoot (variable 2.0 a)))", "(cuberoot (variable 2.0 a))"); // cuberoot is always positive (for our cases)
+
+      AssertEqualAfterSimplification("(* (abs (variable 2.0 x)) 2.0)", "(abs (variable 4.0 x))");  // can multiply positive constants into abs
+      AssertEqualAfterSimplification("(* (abs (variable 2.0 x)) -2.0)", "(* (abs (variable 4.0 x)) -1.0)"); // for negative constants keep the sign
+
+      AssertEqualAfterSimplification("(abs (* (variable 1.0 a) (variable 2.0 b)))", "(* (abs (variable 1.0 a)) (abs (variable 1.0 b)) 2.0))");
+      AssertEqualAfterSimplification("(abs (/ (variable 1.0 a) (variable 2.0 b)))", "(/ (abs (variable 1.0 a)) (abs (variable 2.0 b))))");
+      #endregion
+
+      #region square and sqrt
+      AssertEqualAfterSimplification("(sqr (sqrt (variable 2.0 x)))", "(variable 2.0 x)");
+      AssertEqualAfterSimplification("(sqrt (sqr (variable 2.0 x)))", "(variable 2.0 x)");
+      AssertEqualAfterSimplification("(sqr (abs (variable 2.0 a)))", "(sqr (variable 2.0 a))");
+      AssertEqualAfterSimplification("(sqr (exp (variable 2.0 x)))", "(exp (variable 4.0 x))");
+
+      AssertEqualAfterSimplification("(sqr (* (variable 2.0 a) (variable 3.0 b) (variable 4.0 c)))",
+        "(* (sqr (variable 1.0 a)) (sqr (variable 1.0 b)) (sqr (variable 1.0 c)) 576)"); // 2²*3²*4²
+      #endregion
+
+      #region cube and cuberoot
+      AssertEqualAfterSimplification("(cube (cuberoot (variable 2.0 x)))", "(variable 2.0 x)");
+      AssertEqualAfterSimplification("(cuberoot (cube (variable 2.0 x)))", "(variable 2.0 x)");
+      AssertEqualAfterSimplification("(cube (exp (variable 2.0 x)))", "(exp (variable 6.0 x))");
+
+      AssertEqualAfterSimplification("(sqr (cube (variable 2.0 x)))", "(pow (variable 2.0 x) 6)");
+      AssertEqualAfterSimplification("(cube (sqr (variable 2.0 x)))", "(pow (variable 2.0 x) 6)");
+      #endregion
+
+      #region AQ
+      AssertEqualAfterSimplification("(* (aq (variable 1.0 x) (variable 1.0 y)) 2.0)", "(aq (variable 2.0 x) (variable 1.0 y))");
+      AssertEqualAfterSimplification("(/ (aq (variable 1.0 x) (variable 1.0 y)) 2.0)", "(aq (variable 0.5 x) (variable 1.0 y))");
+
+      #endregion
     }
 
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicExpressionTreeBottomUpSimilarityCalculatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicExpressionTreeBottomUpSimilarityCalculatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicExpressionTreeBottomUpSimilarityCalculatorTest.cs	(revision 16711)
@@ -7,14 +7,13 @@
   [TestClass]
   public class BottomUpSimilarityCalculatorTest {
-    private readonly SymbolicExpressionTreeBottomUpSimilarityCalculator busCalculator;
-    private readonly SymbolicExpressionImporter importer;
+    private readonly SymbolicExpressionTreeBottomUpSimilarityCalculator similarityCalculator = new SymbolicExpressionTreeBottomUpSimilarityCalculator() { MatchConstantValues = false, MatchVariableWeights = false };
+    private readonly SymbolicExpressionImporter importer = new SymbolicExpressionImporter();
 
-    private const int N = 150;
+    private const int N = 1000;
     private const int Rows = 1;
     private const int Columns = 10;
 
     public BottomUpSimilarityCalculatorTest() {
-      busCalculator = new SymbolicExpressionTreeBottomUpSimilarityCalculator();
-      importer = new SymbolicExpressionImporter();
+      var parser = new InfixExpressionParser();
     }
 
@@ -23,39 +22,24 @@
     [TestProperty("Time", "short")]
     public void BottomUpTreeSimilarityCalculatorTestMapping() {
-      TestMatchedNodes("(+ 1 2)", "(+ 2 1)", 5);
-      TestMatchedNodes("(- 2 1)", "(- 1 2)", 2);
-      TestMatchedNodes("(* (variable 1 X1) (variable 1 X2))", "(* (+ (variable 1 X1) 1) (+ (variable 1 X2) 1))", 2);
+      TestMatchedNodes("(+ 1 1)", "(+ 2 2)", 0, strict: true);
+      TestMatchedNodes("(+ 1 1)", "(+ 2 2)", 3, strict: false);
+      TestMatchedNodes("(+ 1 1)", "(+ 1 2)", 1, strict: true);
+      TestMatchedNodes("(+ 2 1)", "(+ 1 2)", 3, strict: true);
 
-      TestMatchedNodes("(* (variable 1 X1) (variable 1 X2))", "(* (+ (variable 1 X1) 1) (variable 1 X2))", 2);
+      TestMatchedNodes("(- 1 1)", "(- 2 2)", 0, strict: true);
+      TestMatchedNodes("(- 1 1)", "(- 2 2)", 3, strict: false);
 
-      TestMatchedNodes("(+ (variable 1 a) (variable 1 b))", "(+ (variable 1 a) (variable 1 a))", 1);
-      TestMatchedNodes("(+ (+ (variable 1 a) (variable 1 b)) (variable 1 b))", "(+ (* (+ (variable 1 a) (variable 1 b)) (variable 1 b)) (+ (+ (variable 1 a) (variable 1 b)) (variable 1 b)))", 5);
-
-      TestMatchedNodes(
-        "(* (+ 2.84 (exp (+ (log (/ (variable 2.0539 X5) (variable -9.2452e-1 X6))) (/ (variable 2.0539 X5) (variable -9.2452e-1 X6))))) 2.9081)",
-        "(* (- (variable 9.581e-1 X6) (+ (- (variable 5.1491e-1 X5) 1.614e+1) (+ (/ (variable 2.0539 X5) (variable -9.2452e-1 X6)) (log (/ (variable 2.0539 X5) (variable -9.2452e-1 X6)))))) 2.9081)",
-        9);
-
-      TestMatchedNodes("(* (* (* (variable 1.68 x) (* (variable 1.68 x) (variable 2.55 x))) (variable 1.68 x)) (* (* (variable 1.68 x) (* (variable 1.68 x) (* (variable 1.68 x) (variable 2.55 x)))) (variable 2.55 x)))", "(* (variable 2.55 x) (* (variable 1.68 x) (* (variable 1.68 x) (* (variable 1.68 x) (variable 2.55 x)))))", 9);
-
-      TestMatchedNodes("(+ (exp 2.1033) (/ -4.3072 (variable 2.4691 X7)))", "(/ 1 (+ (/ -4.3072 (variable 2.4691 X7)) (exp 2.1033)))", 6);
-      TestMatchedNodes("(+ (exp 2.1033) (/ -4.3072 (variable 2.4691 X7)))", "(/ 1 (+ (/ (variable 2.4691 X7) -4.3072) (exp 2.1033)))", 4);
-
-      const string expr1 = "(* (- 1.2175e+1 (+ (/ (exp -1.4134e+1) (exp 9.2013)) (exp (log (exp (/ (exp (- (* -4.2461 (variable 2.2634 X5)) (- -9.6267e-1 3.3243))) (- (/ (/ (variable 1.0883 X1) (variable 6.9620e-1 X2)) (log 1.3011e+1)) (variable -4.3098e-1 X7)))))))) (log 1.3011e+1))";
-      const string expr2 = "(* (- 1.2175e+1 (+ (/ (/ (+ (variable 3.0140 X9) (variable 1.3430 X8)) -1.0864e+1) (exp 9.2013)) (exp (log (exp (/ (exp (- (* -4.2461 (variable 2.2634 X5)) (- -9.6267e-1 3.3243))) (- (/ (/ (variable 1.0883 X1) (variable 6.9620e-1 X2)) (log 1.3011e+1)) (variable -4.3098e-1 X7)))))))) (exp (variable 4.0899e-1 X7)))";
-
-      TestMatchedNodes(expr1, expr2, 23);
-
+      TestMatchedNodes("(- 2 1)", "(- 1 2)", 2, strict: true);
+      TestMatchedNodes("(- 2 1)", "(- 1 2)", 3, strict: false);
     }
 
-    private void TestMatchedNodes(string expr1, string expr2, int expected) {
+    private void TestMatchedNodes(string expr1, string expr2, int expected, bool strict) {
       var t1 = importer.Import(expr1);
       var t2 = importer.Import(expr2);
 
-      var mapping = busCalculator.ComputeBottomUpMapping(t1.Root, t2.Root);
-      var c = mapping.Count;
+      var map = SymbolicExpressionTreeBottomUpSimilarityCalculator.ComputeBottomUpMapping(t1, t2, strict);
 
-      if (c != expected) {
-        throw new Exception("Match count " + c + " is different than expected value " + expected);
+      if (map.Count != expected) {
+        throw new Exception($"Match count {map.Count} is different than expected value {expected} for expressions:\n{expr1} and {expr2} (strict = {strict})");
       }
     }
@@ -77,5 +61,5 @@
       for (int i = 0; i < trees.Length - 1; ++i) {
         for (int j = i + 1; j < trees.Length; ++j) {
-          s += busCalculator.CalculateSimilarity(trees[i], trees[j]);
+          s += similarityCalculator.CalculateSimilarity(trees[i], trees[j]);
         }
       }
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/Util.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/Util.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/Util.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4/Util.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4/Util.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4/Util.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/CordeauGQAPInstanceProviderTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/CordeauGQAPInstanceProviderTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/CordeauGQAPInstanceProviderTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/DIMACSGcolInstanceProviderTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/DIMACSGcolInstanceProviderTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/DIMACSGcolInstanceProviderTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/ElloumiCTAPInstanceProviderTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/ElloumiCTAPInstanceProviderTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/ElloumiCTAPInstanceProviderTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/QAPLIBInstanceProviderTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/QAPLIBInstanceProviderTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/QAPLIBInstanceProviderTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/TSPLIBInstanceProviderTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/TSPLIBInstanceProviderTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances-3.3/TSPLIBInstanceProviderTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/ClassificationInstanceProviderTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/ClassificationInstanceProviderTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/ClassificationInstanceProviderTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/RegressionInstanceProviderTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/RegressionInstanceProviderTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/RegressionInstanceProviderTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/TableFileParserTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/TableFileParserTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.Instances.DataAnalysis-3.3/TableFileParserTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.LinearAssignment-3.3/LinearAssignmentProblemSolverTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.LinearAssignment-3.3/LinearAssignmentProblemSolverTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.LinearAssignment-3.3/LinearAssignmentProblemSolverTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.PTSP-3.3/PTSPMoveEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.PTSP-3.3/PTSPMoveEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.PTSP-3.3/PTSPMoveEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.QuadraticAssignment-3.3/QAPLIBInstancesTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.QuadraticAssignment-3.3/QAPLIBInstancesTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.QuadraticAssignment-3.3/QAPLIBInstancesTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.QuadraticAssignment-3.3/QAPMoveEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.QuadraticAssignment-3.3/QAPMoveEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.QuadraticAssignment-3.3/QAPMoveEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/AckleyEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/AckleyEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/AckleyEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/BealeEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/BealeEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/BealeEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/BoothEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/BoothEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/BoothEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/GriewankEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/GriewankEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/GriewankEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/LevyEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/LevyEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/LevyEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/MatyasEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/MatyasEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/MatyasEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/RastriginEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/RastriginEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/RastriginEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/RosenbrockEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/RosenbrockEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/RosenbrockEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/SphereEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/SphereEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/SphereEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/SumSquaresEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/SumSquaresEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/SumSquaresEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/ZakharovEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/ZakharovEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions-3.3/ZakharovEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/CrowdingTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/CrowdingTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/CrowdingTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/FastHyperVolumeTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/FastHyperVolumeTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/FastHyperVolumeTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/GenerationalDistanceTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/GenerationalDistanceTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/GenerationalDistanceTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/HyperVolumeTests.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/HyperVolumeTests.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/HyperVolumeTests.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/InvertedGenerationalDistanceTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/InvertedGenerationalDistanceTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/InvertedGenerationalDistanceTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/SpacingTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/SpacingTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3/SpacingTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TravelingSalesman-3.3/TSPMoveEvaluatorTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TravelingSalesman-3.3/TSPMoveEvaluatorTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.TravelingSalesman-3.3/TSPMoveEvaluatorTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.VehicleRouting-3.4/VRPInstancesTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.VehicleRouting-3.4/VRPInstancesTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Problems.VehicleRouting-3.4/VRPInstancesTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Random-3.3/RandomEnumerableSampleTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Random-3.3/RandomEnumerableSampleTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Random-3.3/RandomEnumerableSampleTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GAQAPScriptTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GAQAPScriptTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GAQAPScriptTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GUIAutomationScriptTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GUIAutomationScriptTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GUIAutomationScriptTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFClassificationScriptTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFClassificationScriptTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFClassificationScriptTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFRegressionScriptTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFRegressionScriptTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchRFRegressionScriptTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchSVMClassificationScriptTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchSVMClassificationScriptTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchSVMClassificationScriptTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchSVMRegressionScriptTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchSVMRegressionScriptTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/GridSearchSVMRegressionScriptTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/OSGARastriginScriptTest.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/OSGARastriginScriptTest.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/OSGARastriginScriptTest.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/ScriptingUtils.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/ScriptingUtils.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Scripting-3.3/ScriptingUtils.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Tests.csproj
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 16711)
@@ -12,5 +12,5 @@
     <RootNamespace>HeuristicLab.Tests</RootNamespace>
     <AssemblyName>HeuristicLab.Tests</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
@@ -295,4 +295,9 @@
     <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4">
       <HintPath>..\..\..\trunk\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.dll</HintPath>
       <Private>False</Private>
     </Reference>
@@ -582,10 +587,16 @@
     <Compile Include="HeuristicLab.Persistence-3.3\StorableAttributeTests.cs" />
     <Compile Include="HeuristicLab.Persistence-3.3\UseCases.cs" />
+    <Compile Include="HeuristicLab.Persistence.Attic\StorableAttributeTests.cs" />
+    <Compile Include="HeuristicLab.Persistence.Attic\UseCases.cs" />
     <Compile Include="HeuristicLab.PluginInfraStructure-3.3\TypeExtensionsTest.cs" />
+    <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\ClassificationVariableImpactCalculationTest.cs" />
+    <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\IntervalTest.cs" />
+    <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\RegressionVariableImpactCalculationTest.cs" />
     <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\ThresholdCalculatorsTest.cs" />
     <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\OnlineCalculatorPerformanceTest.cs" />
     <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\StatisticCalculatorsTest.cs" />
-    <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\VariableImpactCalculationTest.cs" />
+    <Compile Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4\DeriveTest.cs" />
     <Compile Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4\InfixExpressionParserTest.cs" />
+    <Compile Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4\IntervalInterpreterTest.cs" />
     <Compile Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4\SymbolicExpressionTreeBottomUpSimilarityCalculatorTest.cs" />
     <Compile Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4\SymbolicExpressionTreeMaxCommonSubtreeSimilarityCalculatorTest.cs" />
@@ -670,5 +681,4 @@
   </ItemGroup>
   <ItemGroup>
-    <None Include="app.config" />
     <None Include="Builder.testsettings">
       <SubType>Designer</SubType>
@@ -704,4 +714,11 @@
   </ItemGroup>
   <ItemGroup>
+    <Reference Include="HEAL.Attic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\bin\HEAL.Attic.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
     <ProjectReference Include="..\HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms\3.3\HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms-3.3.csproj">
       <Project>{577239ec-7d7f-4505-a0a4-572e34010dba}</Project>
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/Properties/AssemblyInfo.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/Properties/AssemblyInfo.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/Properties/AssemblyInfo.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: /branches/2936_GQAPIntegration/HeuristicLab.Tests/TestRandom.cs
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/TestRandom.cs	(revision 16710)
+++ /branches/2936_GQAPIntegration/HeuristicLab.Tests/TestRandom.cs	(revision 16711)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: anches/2936_GQAPIntegration/HeuristicLab.Tests/app.config
===================================================================
--- /branches/2936_GQAPIntegration/HeuristicLab.Tests/app.config	(revision 16710)
+++ 	(revision )
@@ -1,6 +1,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <startup>
-    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
-  </startup>
-</configuration>
