Index: branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/Distribution.cs
===================================================================
--- branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/Distribution.cs	(revision 6968)
+++ branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/Distribution.cs	(revision 6973)
@@ -21,8 +21,26 @@
 
 using System;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 
 namespace HeuristicLab.Problems.DataAnalysis.Benchmarks {
+
+  public enum DistributionType { Training, Test };
+
   public abstract class Distribution : NamedItem {
+
+    protected double start;
+    protected double end;
+
+    protected Distribution(Distribution original, Cloner cloner)
+      : base(original, cloner) {
+      start = original.start;
+      end = original.end;
+    }
+
+    public Distribution(double start, double end) {
+      this.start = start;
+      this.end = end;
+    }
 
     public abstract Double Next();
Index: branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/DistributionGenerator.cs
===================================================================
--- branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/DistributionGenerator.cs	(revision 6973)
+++ branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/DistributionGenerator.cs	(revision 6973)
@@ -0,0 +1,110 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Collections.Generic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.DataAnalysis.Benchmarks.DistributionGenerator {
+  public class DistributionGenerator : NamedItem {
+
+    public DistributionType state = DistributionType.Test;
+
+    private Dictionary<string, IList<double>> data;
+    private Dictionary<string, Dictionary<DistributionType, Distribution>> variables;
+
+    private Dictionary<string, StepsDistribution> stepDistributions;
+    private Dictionary<string, Distribution> randomDistributions;
+
+    private bool hasNext;
+    public bool HasNext {
+      get {
+        return hasNext;
+      }
+    }
+
+    public DistributionGenerator(Dictionary<string, IList<double>> data,
+    Dictionary<string, Dictionary<DistributionType, Distribution>> variables) {
+      this.data = data;
+      this.variables = variables;
+
+      spepareteDistributions();
+    }
+
+    #region cloning
+    protected DistributionGenerator(DistributionGenerator original, Cloner cloner)
+      : base(original, cloner) {
+      data = original.data;
+      state = original.state;
+      variables = original.variables;
+      stepDistributions = original.stepDistributions;
+      randomDistributions = original.randomDistributions;
+      hasNext = original.hasNext;
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new DistributionGenerator(this, cloner);
+    }
+    #endregion
+
+    private void spepareteDistributions() {
+      foreach (var dic in variables) {
+        if (dic.Value[state] is StepsDistribution) {
+          stepDistributions[dic.Key] = (StepsDistribution)dic.Value[state];
+        } else {
+          randomDistributions[dic.Key] = dic.Value[state];
+        }
+      }
+      //new Values can be generated
+      hasNext = true;
+    }
+
+    public DistributionType ChangeDistributionType(DistributionType type) {
+      state = type;
+      spepareteDistributions();
+      return state;
+    }
+
+    public void generateValues() {
+      if (hasNext) {
+        foreach (var randomDis in randomDistributions) {
+          data[randomDis.Key].Add(randomDis.Value.Next());
+        }
+        if (stepDistributions.Count > 0) {
+          bool newValue = false;
+          foreach (var stepDis in stepDistributions) {
+            if (!newValue && stepDis.Value.HasNext()) {
+              data[stepDis.Key].Add(stepDis.Value.Next());
+              newValue = true;
+              continue;
+            }
+
+            if (!stepDis.Value.HasNext())
+              stepDis.Value.Reset();
+
+            data[stepDis.Key].Add(stepDis.Value.Current());
+          }
+
+          hasNext = !newValue;
+        }
+      }
+    }
+  }
+}
Index: branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/NormalDistribution.cs
===================================================================
--- branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/NormalDistribution.cs	(revision 6973)
+++ branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/NormalDistribution.cs	(revision 6973)
@@ -0,0 +1,54 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Common;
+
+namespace HeuristicLab.Problems.DataAnalysis.Benchmarks.DistributionGenerator {
+  public class NormalDistribution : RandomDistribution {
+
+    public double My {
+      get {
+        return start;
+      }
+    }
+    public double Sigma {
+      get {
+        return end;
+      }
+    }
+
+    public NormalDistribution(double my, double sigma) : base(my, sigma) { }
+
+    #region cloning
+    protected NormalDistribution(NormalDistribution original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new NormalDistribution(this, cloner);
+    }
+    #endregion
+
+    public override Double Next() {
+      return 1.0;//alglib.normaldistr.invnormaldistribution(rand.NextDouble()) * My + Sigma;
+    }
+  }
+}
Index: branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/RandomDistribution.cs
===================================================================
--- branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/RandomDistribution.cs	(revision 6973)
+++ branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/RandomDistribution.cs	(revision 6973)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Common;
+
+namespace HeuristicLab.Problems.DataAnalysis.Benchmarks {
+  public abstract class RandomDistribution : Distribution {
+
+    public RandomDistribution(double start, double end) : base(start, end) { }
+
+    protected Random rand = new Random();
+
+    protected RandomDistribution(RandomDistribution original, Cloner cloner)
+      : base(original, cloner) {
+      rand = original.rand;
+    }
+
+  }
+}
Index: branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/StepsDistribution.cs
===================================================================
--- branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/StepsDistribution.cs	(revision 6973)
+++ branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/StepsDistribution.cs	(revision 6973)
@@ -0,0 +1,79 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Common;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.DataAnalysis.Benchmarks {
+  public class StepsDistribution : Distribution {
+
+    private double step;
+    public double Step {
+      get {
+        return step;
+      }
+    }
+
+    private Double curStep;
+
+    public StepsDistribution(DoubleRange range, double step)
+      : base(range.Start, range.End) {
+      this.step = step;
+      curStep = start;
+    }
+
+    public StepsDistribution(double start, double end, double step)
+      : base(start, end) {
+      this.step = step;
+    }
+
+    #region cloning
+    protected StepsDistribution(StepsDistribution original, Cloner cloner)
+      : base(original, cloner) {
+      step = original.step;
+      curStep = original.curStep;
+    }
+
+    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
+      return new StepsDistribution(this, cloner);
+    }
+    #endregion
+
+    public void Reset() {
+      curStep = start;
+    }
+
+    public bool HasNext() {
+      return curStep <= end;
+    }
+
+    public Double Current() {
+      return curStep;
+    }
+
+    public override Double Next() {
+      Double helpStep = curStep;
+      curStep += step;
+      return helpStep;
+    }
+  }
+}
Index: branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/UniformalDistribution.cs
===================================================================
--- branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/UniformalDistribution.cs	(revision 6973)
+++ branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Benchmarks/3.4/DistributionGenerator/UniformalDistribution.cs	(revision 6973)
@@ -0,0 +1,56 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Common;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.DataAnalysis.Benchmarks {
+  public class UniformalDistribution : RandomDistribution {
+
+    public double Start {
+      get {
+        return start;
+      }
+    }
+    public double End {
+      get {
+        return end;
+      }
+    }
+
+    public UniformalDistribution(IntRange range) : base(range.Start, range.End) { }
+    public UniformalDistribution(double start, double end) : base(start, end) { }
+
+    #region cloning
+    protected UniformalDistribution(UniformalDistribution original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new UniformalDistribution(this, cloner);
+    }
+    #endregion
+
+    public override Double Next() {
+      return rand.NextDouble() * (end - start) + start;
+    }
+  }
+}
