Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/Samples/AlpsSampleTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/Samples/AlpsSampleTest.cs	(revision 13260)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/Samples/AlpsSampleTest.cs	(revision 13260)
@@ -0,0 +1,149 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.IO;
+using System.Linq;
+using HeuristicLab.Algorithms.ALPS;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Persistence.Default.Xml;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
+using HeuristicLab.Problems.Instances.DataAnalysis;
+using HeuristicLab.Problems.Instances.TSPLIB;
+using HeuristicLab.Problems.TravelingSalesman;
+using HeuristicLab.Selection;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Tests {
+  [TestClass]
+  public class AlpsTspSampleTest {
+    private const string TspSampleFileName = "ALPSGA_TSP";
+    private const string SymRegSampleFileName = "ALPSGP_SymReg";
+
+    [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
+    public void CreateAlpsGaTspSampleTest() {
+      var alpsGa = CreateAlpsGaTspSample();
+      string path = Path.Combine(SamplesUtils.SamplesDirectory, TspSampleFileName + SamplesUtils.SampleFileExtension);
+      XmlGenerator.Serialize(alpsGa, path);
+    }
+
+    [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
+    public void CreateAlpsGaSymRegSampleTest() {
+      var alpsGa = CreateAlpsGaSymRegSample();
+      string path = Path.Combine(SamplesUtils.SamplesDirectory, SymRegSampleFileName + SamplesUtils.SampleFileExtension);
+      XmlGenerator.Serialize(alpsGa, path);
+    }
+
+    [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
+    public void RunAlpsGaTspSampleTest() {
+      var alpsGa = CreateAlpsGaTspSample();
+      alpsGa.SetSeedRandomly.Value = false;
+      SamplesUtils.RunAlgorithm(alpsGa);
+      Assert.AreEqual(7967, SamplesUtils.GetDoubleResult(alpsGa, "BestQuality"));
+      Assert.AreEqual(17565.174444444445, SamplesUtils.GetDoubleResult(alpsGa, "CurrentAverageQuality"));
+      Assert.AreEqual(50295, SamplesUtils.GetDoubleResult(alpsGa, "CurrentWorstQuality"));
+      Assert.AreEqual(621900, SamplesUtils.GetIntResult(alpsGa, "EvaluatedSolutions"));
+    }
+
+    [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
+    public void RunAlpsGaSymRegSampleTest() {
+      var alpsGa = CreateAlpsGaSymRegSample();
+      alpsGa.SetSeedRandomly.Value = false;
+      SamplesUtils.RunAlgorithm(alpsGa);
+      Assert.AreEqual(265855, SamplesUtils.GetIntResult(alpsGa, "EvaluatedSolutions"));
+    }
+
+    private AlpsGeneticAlgorithm CreateAlpsGaTspSample() {
+      AlpsGeneticAlgorithm alpsGa = new AlpsGeneticAlgorithm();
+      #region Problem Configuration
+      var provider = new TSPLIBTSPInstanceProvider();
+      var instance = provider.GetDataDescriptors().Single(x => x.Name == "ch130");
+      TravelingSalesmanProblem tspProblem = new TravelingSalesmanProblem();
+      tspProblem.Load(provider.LoadData(instance));
+      tspProblem.UseDistanceMatrix.Value = true;
+      #endregion
+      #region Algorithm Configuration
+      alpsGa.Name = "ALPS Genetic Algorithm - TSP";
+      alpsGa.Description = "An age-layered population structure genetic algorithm which solves the \"ch130\" traveling salesman problem (imported from TSPLIB)";
+      alpsGa.Problem = tspProblem;
+      SamplesUtils.ConfigureAlpsGeneticAlgorithmParameters<GeneralizedRankSelector, MultiPermutationCrossover, InversionManipulator>(alpsGa,
+        numberOfLayers: 1000,
+        popSize: 100,
+        mutationRate: 0.05,
+        elites: 1,
+        plusSelection: true,
+        agingScheme: AgingScheme.Polynomial,
+        ageGap: 20,
+        ageInheritance: 1.0,
+        maxGens: 1000);
+      var checkedCrossovers = new[] { typeof(EdgeRecombinationCrossover), typeof(MaximalPreservativeCrossover), typeof(OrderCrossover2) };
+      var multiCrossover = (MultiPermutationCrossover)alpsGa.Crossover;
+      var crossovers = multiCrossover.Operators.Where(c => checkedCrossovers.Any(cc => cc.IsInstanceOfType(c))).ToList();
+      foreach (var c in multiCrossover.Operators)
+        multiCrossover.Operators.SetItemCheckedState(c, crossovers.Contains(c));
+      #endregion
+      return alpsGa;
+    }
+
+    private AlpsGeneticAlgorithm CreateAlpsGaSymRegSample() {
+      AlpsGeneticAlgorithm alpsGa = new AlpsGeneticAlgorithm();
+      #region Problem Configuration
+      var provider = new VladislavlevaInstanceProvider();
+      var instance = provider.GetDataDescriptors().Single(x => x.Name.StartsWith("Vladislavleva-5 F5"));
+      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 (Vladislavleva-5 dataset)";
+      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: 500);
+      #endregion
+      return alpsGa;
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/Samples/AlpsTspSampleTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/Samples/AlpsTspSampleTest.cs	(revision 13257)
+++ 	(revision )
@@ -1,93 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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.IO;
-using System.Linq;
-using HeuristicLab.Algorithms.ALPS;
-using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.Xml;
-using HeuristicLab.Problems.Instances.TSPLIB;
-using HeuristicLab.Problems.TravelingSalesman;
-using HeuristicLab.Selection;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace HeuristicLab.Tests {
-  [TestClass]
-  public class AlpsTspSampleTest {
-    private const string SampleFileName = "ALPSGA_TSP";
-
-    [TestMethod]
-    [TestCategory("Samples.Create")]
-    [TestProperty("Time", "medium")]
-    public void CreateAlpsGaTspSampleTest() {
-      var alpsGa = CreateAlpsGaTspSample();
-      string path = Path.Combine(SamplesUtils.SamplesDirectory, SampleFileName + SamplesUtils.SampleFileExtension);
-      XmlGenerator.Serialize(alpsGa, path);
-    }
-    [TestMethod]
-    [TestCategory("Samples.Execute")]
-    [TestProperty("Time", "long")]
-    public void RunAlpsGaTspSampleTest() {
-      var alpsGaE = CreateAlpsGaTspSample(plusSelection: false);
-      alpsGaE.SetSeedRandomly.Value = false;
-      SamplesUtils.RunAlgorithm(alpsGaE);
-      Assert.AreEqual(23661, SamplesUtils.GetDoubleResult(alpsGaE, "BestQuality"));
-      Assert.AreEqual(35131.1625, SamplesUtils.GetDoubleResult(alpsGaE, "CurrentAverageQuality"));
-      Assert.AreEqual(49699, SamplesUtils.GetDoubleResult(alpsGaE, "CurrentWorstQuality"));
-      Assert.AreEqual(26640, SamplesUtils.GetIntResult(alpsGaE, "EvaluatedSolutions"));
-
-      var alpsGaPs = CreateAlpsGaTspSample(plusSelection: true);
-      alpsGaPs.SetSeedRandomly.Value = false;
-      SamplesUtils.RunAlgorithm(alpsGaPs);
-      Assert.AreEqual(21365, SamplesUtils.GetDoubleResult(alpsGaPs, "BestQuality"));
-      Assert.AreEqual(30774.695, SamplesUtils.GetDoubleResult(alpsGaPs, "CurrentAverageQuality"));
-      Assert.AreEqual(49699, SamplesUtils.GetDoubleResult(alpsGaPs, "CurrentWorstQuality"));
-      Assert.AreEqual(26900, SamplesUtils.GetIntResult(alpsGaPs, "EvaluatedSolutions"));
-    }
-
-    private AlpsGeneticAlgorithm CreateAlpsGaTspSample(bool plusSelection = false) {
-      AlpsGeneticAlgorithm alpsGa = new AlpsGeneticAlgorithm();
-      #region Problem Configuration
-      var provider = new TSPLIBTSPInstanceProvider();
-      var instance = provider.GetDataDescriptors().Single(x => x.Name == "ch130");
-      TravelingSalesmanProblem tspProblem = new TravelingSalesmanProblem();
-      tspProblem.Load(provider.LoadData(instance));
-      tspProblem.UseDistanceMatrix.Value = true;
-      #endregion
-      #region Algorithm Configuration
-      alpsGa.Name = "ALPS Genetic Algorithm - TSP";
-      alpsGa.Description = "An age-layered population structure genetic algorithm which solves the \"ch130\" traveling salesman problem (imported from TSPLIB)";
-      alpsGa.Problem = tspProblem;
-      SamplesUtils.ConfigureAlpsGeneticAlgorithmParameters<GeneralizedRankSelector, OrderCrossover2, InversionManipulator>(alpsGa, 
-        numberOfLayers: 10, 
-        popSize: 100, 
-        mutationRate: 0.05, 
-        elites: 1, 
-        plusSelection: plusSelection, 
-        agingScheme: AgingScheme.Polynomial, 
-        ageGap: 20, 
-        ageInheritance: 1.0, 
-        maxGens: 100);
-      #endregion
-      return alpsGa;
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Tests.csproj
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 13257)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 13260)
@@ -439,5 +439,5 @@
     <Compile Include="HeuristicLab-3.3\PluginDependenciesTest.cs" />
     <Compile Include="HeuristicLab-3.3\PluginLoader.cs" />
-    <Compile Include="HeuristicLab-3.3\Samples\AlpsTspSampleTest.cs" />
+    <Compile Include="HeuristicLab-3.3\Samples\AlpsSampleTest.cs" />
     <Compile Include="HeuristicLab-3.3\Samples\OSESGriewankSampleTest.cs" />
     <Compile Include="HeuristicLab-3.3\Samples\GAGroupingProblemSampleTest.cs" />
