Index: /branches/3040_VectorBasedGP/HeuristicLab.DataPreprocessing/3.4/Data/PreprocessingData.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.DataPreprocessing/3.4/Data/PreprocessingData.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.DataPreprocessing/3.4/Data/PreprocessingData.cs	(revision 17418)
@@ -407,4 +407,6 @@
         } else if (dataset.VariableHasType<DateTime>(variableName)) {
           variableValues.Insert(columnIndex, dataset.GetDateTimeValues(variableName).ToList());
+        } else if (dataset.VariableHasType<DoubleVector>(variableName)) {
+          variableValues.Insert(columnIndex, dataset.GetDoubleVectorValues(variableName).ToList());
         } else {
           throw new ArgumentException("The datatype of column " + variableName + " must be of type double, string or DateTime");
@@ -681,5 +683,5 @@
       l = 0;
       ir = n - 1;
-      for (;;) {
+      for (; ; ) {
         if (ir <= l + 1) {
           // Active partition contains 1 or 2 elements.
@@ -706,5 +708,5 @@
           j = ir;
           a = arr[l + 1]; // Partitioning element.
-          for (;;) { // Beginning of innermost loop.
+          for (; ; ) { // Beginning of innermost loop.
             do i++; while (arr[i].CompareTo(a) < 0); // Scan up to find element > a.
             do j--; while (arr[j].CompareTo(a) > 0); // Scan down to find element < a.
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Vectors/DoubleVector.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Vectors/DoubleVector.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Vectors/DoubleVector.cs	(revision 17418)
@@ -85,12 +85,13 @@
 
     public double Sum() {
-      return values.Sum();
+      return Values.Sum();
     }
 
     public double Mean() {
-      return values.Average();
+      return Values.Average();
     }
 
     public DoubleVector CumulativeMean() {
+      // todo: zero range average throws exception
       return new DoubleVector(
         Enumerable.Range(0, this.Count)
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Vectors/Vector.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Vectors/Vector.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Vectors/Vector.cs	(revision 17418)
@@ -20,4 +20,5 @@
 #endregion
 
+using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -29,8 +30,8 @@
   public abstract class Vector<T> : IVector<T> {
     [Storable]
-    protected readonly List<T> values;
+    protected readonly List<T> Values;
 
     protected Vector(IEnumerable<T> values) {
-      this.values = values.ToList();
+      this.Values = values.ToList();
     }
 
@@ -38,17 +39,22 @@
     protected Vector(StorableConstructorFlag _) { }
 
+    public override string ToString() {
+      const int maxCount = 10;
+      string extension = Values.Count > maxCount ? ", ..." : "";
+      return $"[{string.Join(", ", Values.Cast<object>().Take(Math.Min(Values.Count, maxCount)))}{extension}]";
+    }
 
     #region Interface members
 
     public int Count {
-      get { return values.Count; }
+      get { return Values.Count; }
     }
 
     public T this[int index] {
-      get { return values[index]; }
+      get { return Values[index]; }
     }
 
     public IEnumerator<T> GetEnumerator() {
-      return values.GetEnumerator();
+      return Values.GetEnumerator();
     }
 
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/TimeSeries/TimeSeriesInstanceProvider.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/TimeSeries/TimeSeriesInstanceProvider.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/TimeSeries/TimeSeriesInstanceProvider.cs	(revision 17418)
@@ -191,6 +191,7 @@
 
     private ZipArchive OpenZipArchive() {
-      var instanceArchiveName = GetResourceName(FileName + @"\.zip");
-      return new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read);
+      var instanceArchiveName = Path.Combine("Classification", "Data", FileName + ".zip");
+      var stream = new FileStream(instanceArchiveName, FileMode.Open, FileAccess.Read, FileShare.Read);
+      return new ZipArchive(stream, ZipArchiveMode.Read);
     }
 
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj	(revision 17418)
@@ -257,5 +257,5 @@
     <Compile Include="Regression\VectorData\AzzaliBenchmark1.cs" />
     <Compile Include="Regression\VectorData\RandomExtensions.cs" />
-    <Compile Include="Regression\VectorData\VariousInstanceProvider.cs" />
+    <Compile Include="Regression\VectorData\VectorDataInstanceProvider.cs" />
     <Compile Include="Regression\VectorData\VectorDataTestOne.cs" />
     <Compile Include="Regression\Vladislavleva\KotanchekFunction.cs" />
@@ -275,7 +275,11 @@
   </ItemGroup>
   <ItemGroup>
+    <None Include="Classification\Data\TimeSeriesMultivariate.zip">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <EmbeddedResource Include="Classification\Data\UCI.zip" />
-    <EmbeddedResource Include="Classification\Data\TimeSeriesMultivariate.zip" />
-    <EmbeddedResource Include="Classification\Data\TimeSeriesUnivariate.zip" />
+    <None Include="Classification\Data\TimeSeriesUnivariate.zip">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="HeuristicLab.snk" />
     <None Include="Plugin.cs.frame" />
@@ -284,5 +288,7 @@
     <EmbeddedResource Include="Regression\Data\MibaFriction.zip" />
     <EmbeddedResource Include="Regression\Data\PennML.zip" />
-    <EmbeddedResource Include="Regression\Data\UCITimeSeries.zip" />
+    <None Include="Regression\Data\UCITimeSeries.zip">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
   <ItemGroup>
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/ResourceRegressionInstanceProvider.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/ResourceRegressionInstanceProvider.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/ResourceRegressionInstanceProvider.cs	(revision 17418)
@@ -36,6 +36,5 @@
       var descriptor = (ResourceRegressionDataDescriptor)id;
 
-      var instanceArchiveName = GetResourceName(FileName + @"\.zip");
-      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+      using (var instancesZipFile = new ZipArchive(OpenResourceStream(FileName), ZipArchiveMode.Read)) {
         var entry = instancesZipFile.GetEntry(descriptor.ResourceName);
         var formatOptions = GetFormatOptions(entry);
@@ -60,4 +59,9 @@
     }
 
+    protected virtual Stream OpenResourceStream(string fileName) {
+      var instanceArchiveName = GetResourceName(FileName + @"\.zip");
+      return GetType().Assembly.GetManifestResourceStream(instanceArchiveName);
+    }
+
     protected virtual TableFileFormatOptions GetFormatOptions(ZipArchiveEntry entry) {
       using (Stream stream = entry.Open()) {
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/UCITimeSeries/UCITimeSeriesProvider.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/UCITimeSeries/UCITimeSeriesProvider.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/UCITimeSeries/UCITimeSeriesProvider.cs	(revision 17418)
@@ -23,4 +23,5 @@
 using System.Collections.Generic;
 using System.Globalization;
+using System.IO;
 using System.IO.Compression;
 
@@ -56,4 +57,9 @@
     }
 
+    protected override Stream OpenResourceStream(string fileName) {
+      var instanceArchiveName = Path.Combine("Regression", "Data", fileName + ".zip");
+      return new FileStream(instanceArchiveName, FileMode.Open, FileAccess.Read, FileShare.Read);
+    }
+
     protected override TableFileFormatOptions GetFormatOptions(ZipArchiveEntry entry) {
       return new TableFileFormatOptions {
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark1.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark1.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark1.cs	(revision 17418)
@@ -14,5 +14,5 @@
 
     protected override string TargetVariable { get { return "B1"; } }
-    protected override string[] VariableNames { get { return new string[] { "X1", "X2", "X3", "X4" }; } }
+    protected override string[] VariableNames { get { return AllowedInputVariables.Concat(new[] { TargetVariable }).ToArray(); } }
     protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark2.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark2.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark2.cs	(revision 17418)
@@ -14,5 +14,5 @@
 
     protected override string TargetVariable { get { return "B2"; } }
-    protected override string[] VariableNames { get { return new string[] { "X1", "X2", "X3", "X4" }; } }
+    protected override string[] VariableNames { get { return AllowedInputVariables.Concat(new[] { TargetVariable }).ToArray(); } }
     protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark3.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark3.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliBenchmark3.cs	(revision 17418)
@@ -14,5 +14,5 @@
 
     protected override string TargetVariable { get { return "B3"; } }
-    protected override string[] VariableNames { get { return new string[] { "X1", "X2", "X3", "X4" }; } }
+    protected override string[] VariableNames { get { return AllowedInputVariables.Concat(new[] { TargetVariable }).ToArray(); } }
     protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliKorns5.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliKorns5.cs	(revision 17417)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/AzzaliKorns5.cs	(revision 17418)
@@ -14,5 +14,5 @@
 
     protected override string TargetVariable { get { return "K5"; } }
-    protected override string[] VariableNames { get { return new string[] { "X1", "X2", "X3", "X4" }; } }
+    protected override string[] VariableNames { get { return AllowedInputVariables.Concat(new[] { TargetVariable }).ToArray(); } }
     protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "X4" }; } }
     protected override int TrainingPartitionStart { get { return 0; } }
Index: anches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/VariousInstanceProvider.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/VariousInstanceProvider.cs	(revision 17417)
+++ 	(revision )
@@ -1,60 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 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 HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class VectorDataInstanceProvider : ArtificialRegressionInstanceProvider {
-    public override string Name {
-      get { return "Vector Data Benchmark Problems"; }
-    }
-    public override string Description {
-      get { return ""; }
-    }
-    public override Uri WebLink {
-      get { return new Uri("http://dev.heuristiclab.com/trac/hl/core/wiki/AdditionalMaterial"); }
-    }
-    public override string ReferencePublication {
-      get { return ""; }
-    }
-    public int Seed { get; private set; }
-
-    public VectorDataInstanceProvider()
-      : this((int)DateTime.Now.Ticks) { }
-
-    public VectorDataInstanceProvider(int seed)
-      : base() {
-      Seed = seed;
-    }
-    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
-      var rand = new MersenneTwister((uint)Seed);
-      return new List<IDataDescriptor> {
-        new VectorDataTestOne(rand.Next()),
-        new AzzaliKorns5(rand.Next()),
-        new AzzaliBenchmark1(rand.Next()),
-        new AzzaliBenchmark2(rand.Next()),
-        new AzzaliBenchmark3(rand.Next())
-      };
-    }
-  }
-}
Index: /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/VectorDataInstanceProvider.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/VectorDataInstanceProvider.cs	(revision 17418)
+++ /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/VectorDataInstanceProvider.cs	(revision 17418)
@@ -0,0 +1,63 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 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 HeuristicLab.Random;
+
+namespace HeuristicLab.Problems.Instances.DataAnalysis {
+  public class VectorDataInstanceProvider : ArtificialRegressionInstanceProvider {
+    public override string Name {
+      get { return "Vector Data Benchmark Problems"; }
+    }
+    public override string Description {
+      get { return ""; }
+    }
+    public override Uri WebLink {
+      get { return new Uri("http://dev.heuristiclab.com/trac/hl/core/wiki/AdditionalMaterial"); }
+    }
+    public override string ReferencePublication {
+      get { return ""; }
+    }
+    public int Seed { get; private set; }
+
+    public VectorDataInstanceProvider()
+      : this((int)DateTime.Now.Ticks) { }
+
+    public VectorDataInstanceProvider(int seed)
+      : base() {
+      Seed = seed;
+    }
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var rand = new MersenneTwister((uint)Seed);
+      return new List<IDataDescriptor> {
+        new VectorDataTestOneA(rand.Next()),
+        new VectorDataTestOneB(rand.Next()),
+        new VectorDataTestOneC(rand.Next()),
+        new VectorDataTestOneD(rand.Next()),
+        new AzzaliBenchmark1(rand.Next()),
+        new AzzaliBenchmark2(rand.Next()),
+        new AzzaliBenchmark3(rand.Next()),
+        new AzzaliKorns5(rand.Next())
+      };
+    }
+  }
+}
Index: anches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/VectorDataTestOne.cs
===================================================================
--- /branches/3040_VectorBasedGP/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/VectorData/VectorDataTestOne.cs	(revision 17417)
+++ 	(revision )
@@ -1,90 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 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;
-using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Core;
-using HeuristicLab.Problems.DataAnalysis;
-using HeuristicLab.Random;
-
-namespace HeuristicLab.Problems.Instances.DataAnalysis {
-  public class VectorDataTestOne : ArtificialRegressionDataDescriptor {
-
-    public override string Name { get { return "Vector Data Test - I (Y = X1 * sum(V1) + X2 * avg(V2)"; } }
-    public override string Description { get { return ""; } }
-
-    protected override string TargetVariable { get { return "Y"; } }
-    protected override string[] VariableNames { get { return new string[] { "X1", "X2", "X3", "V1", "V2", "Y" }; } }
-    protected override string[] AllowedInputVariables { get { return new string[] { "X1", "X2", "X3", "V1", "V2" }; } }
-    protected override int TrainingPartitionStart { get { return 0; } }
-    protected override int TrainingPartitionEnd { get { return 80; } }
-    protected override int TestPartitionStart { get { return 80; } }
-    protected override int TestPartitionEnd { get { return 100; } }
-
-    public int Seed { get; private set; }
-
-    public VectorDataTestOne()
-      : this((int)DateTime.Now.Ticks) { }
-    public VectorDataTestOne(int seed)
-      : base() {
-      Seed = seed;
-    }
-
-
-    protected override List<List<double>> GenerateValues() { return null; }
-    protected override List<IList> GenerateValuesExtended() {
-      var rand = new MersenneTwister((uint)Seed);
-
-      double x1, x2, x3;
-      DoubleVector v1, v2;
-      double y;
-
-      var x1Column = new List<double>(100);
-      var x2Column = new List<double>(100);
-      var x3Column = new List<double>(100);
-      var v1Column = new List<DoubleVector>(100);
-      var v2Column = new List<DoubleVector>(100);
-      var yColumn = new List<double>(100);
-
-      for (int i = 0; i < 100; i++) {
-        x1 = rand.NextDouble(-2, 2);
-        x2 = rand.NextDouble(2, 6);
-        x3 = rand.NextDouble(0, 1);
-        int length = rand.Next(3, 6);
-        v1 = rand.NextDoubleVector(-2, 2, length);
-        v2 = rand.NextDoubleVector(3, 5, length);
-
-        y = x1 * v1.Sum() + x2 * v2.Mean();
-
-        x1Column.Add(x1);
-        x2Column.Add(x2);
-        x3Column.Add(x3);
-        v1Column.Add(v1);
-        v2Column.Add(v2);
-        yColumn.Add(y);
-      }
-
-      return new List<IList> { x1Column, x2Column, x3Column, v1Column, v2Column, yColumn };
-    }
-  }
-}
