Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/CloningConstructorTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/CloningConstructorTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/CloningConstructorTest.cs	(revision 9783)
@@ -38,4 +38,7 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "medium")]
     public void TestCloningConstructor() {
       StringBuilder errorMessage = new StringBuilder();
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/CollectObjectGraphTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/CollectObjectGraphTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/CollectObjectGraphTest.cs	(revision 9783)
@@ -44,4 +44,7 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "medium")]
     [DeploymentItem(@"HeuristicLab-3.3/Resources/GA_SymbReg.hl")]
     public void CollectGASample() {
@@ -94,4 +97,6 @@
     /// </summary>
     [TestMethod]
+    [TestCategory("General")]
+    [TestProperty("Time", "long")]
     public void AlgorithmExecutions() {
       var algs = new List<IAlgorithm>();
@@ -120,4 +125,6 @@
     /// </summary>
     [TestMethod]
+    [TestCategory("General")]
+    [TestProperty("Time", "medium")]
     public void ParallelAlgorithmExecutions() {
       int n = 60;
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ContentViewTests.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ContentViewTests.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ContentViewTests.cs	(revision 9783)
@@ -34,19 +34,4 @@
     }
 
-    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;
-      }
-    }
-
     // Use ClassInitialize to run code before running the first test in the class
     [ClassInitialize]
@@ -57,4 +42,7 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "long")]
     public void ContentViewAttributeTest() {
       //get all non-generic and instantiable classes which implement IContentView
@@ -70,5 +58,6 @@
         try {
           accessor.OnContentChanged();
-        } catch (Exception ex) {
+        }
+        catch (Exception ex) {
           Assert.Fail(viewType.ToString() + Environment.NewLine + ex.Message);
         }
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/DeepCloneableCloningTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/DeepCloneableCloningTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/DeepCloneableCloningTest.cs	(revision 9783)
@@ -42,4 +42,10 @@
     }
 
+    private TestContext testContextInstance;
+    public TestContext TestContext {
+      get { return testContextInstance; }
+      set { testContextInstance = value; }
+    }
+
     public DeepCloneableCloningTest() {
       excludedTypes = new HashSet<Type>();
@@ -55,43 +61,10 @@
     }
 
-    private TestContext testContextInstance;
     private readonly HashSet<Type> excludedTypes;
 
-    /// <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;
-      }
-    }
-
-    #region Additional test attributes
-    //
-    // You can use the following additional attributes as you write your tests:
-    //
-    // Use ClassInitialize to run code before running the first test in the class
-    // [ClassInitialize()]
-    // public static void MyClassInitialize(TestContext testContext) { }
-    //
-    // Use ClassCleanup to run code after all tests in a class have run
-    // [ClassCleanup()]
-    // public static void MyClassCleanup() { }
-    //
-    // Use TestInitialize to run code before running each test 
-    // [TestInitialize()]
-    // public void MyTestInitialize() { }
-    //
-    // Use TestCleanup to run code after each test has run
-    // [TestCleanup()]
-    // public void MyTestCleanup() { }
-    //
-    #endregion
-
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "long")]
     [DeploymentItem(@"HeuristicLab-3.3\Resources\SamplesExperimentFinished.hl")]
     public void TestCloningFinishedExperiment() {
@@ -105,4 +78,7 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "long")]
     public void TestCloningAllDeepCloneables() {
       PluginLoader.Assemblies.ToArray();
@@ -119,10 +95,12 @@
         try {
           item = (IDeepCloneable)Activator.CreateInstance(deepCloneableType, nonPublic: false);
-        } catch { continue; } // no default constructor
+        }
+        catch { continue; } // no default constructor
 
         IDeepCloneable clone = null;
         try {
           clone = (IDeepCloneable)item.Clone(new Cloner());
-        } catch (Exception e) {
+        }
+        catch (Exception e) {
           TestContext.WriteLine(Environment.NewLine + deepCloneableType.FullName + ":");
           TestContext.WriteLine("ERROR! " + e.GetType().Name + @" was thrown during cloning.
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/GeneticAlgorithmTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/GeneticAlgorithmTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/GeneticAlgorithmTest.cs	(revision 9783)
@@ -34,39 +34,8 @@
 
     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;
-      }
+      get { return testContextInstance; }
+      set { testContextInstance = value; }
     }
-
-    #region Additional test attributes
-    //
-    // You can use the following additional attributes as you write your tests:
-    //
-    // Use ClassInitialize to run code before running the first test in the class
-    // [ClassInitialize()]
-    // public static void MyClassInitialize(TestContext testContext) { }
-    //
-    // Use ClassCleanup to run code after all tests in a class have run
-    // [ClassCleanup()]
-    // public static void MyClassCleanup() { }
-    //
-    // Use TestInitialize to run code before running each test 
-    // [TestInitialize()]
-    // public void MyTestInitialize() { }
-    //
-    // Use TestCleanup to run code after each test has run
-    // [TestCleanup()]
-    // public void MyTestCleanup() { }
-    //
-    #endregion
 
     private EventWaitHandle trigger = new AutoResetEvent(false);
@@ -74,4 +43,6 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestProperty("Time", "long")]
     [DeploymentItem(@"HeuristicLab-3.3/Resources/GA_TSP.hl")]
     public void GeneticAlgorithmPerformanceTest() {
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/InstantiateCreatablesTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/InstantiateCreatablesTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/InstantiateCreatablesTest.cs	(revision 9783)
@@ -37,4 +37,7 @@
     }
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "medium")]
     public void InstantiateAllCreatables() {
       var exceptions = new List<string>();
@@ -49,5 +52,6 @@
         try {
           var instance = Activator.CreateInstance(t);
-        } catch {
+        }
+        catch {
           exceptions.Add("Error instantiating " + t.FullName);
         }
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ParameterVisibilityTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ParameterVisibilityTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ParameterVisibilityTest.cs	(revision 9783)
@@ -36,19 +36,15 @@
       PluginLoader.Assemblies.Any();
     }
-    /// <summary>
-    ///Gets or sets the test context which provides
-    ///information about and functionality for the current test run.
-    ///</summary>
+
     private TestContext testContextInstance;
     public TestContext TestContext {
-      get {
-        return testContextInstance;
-      }
-      set {
-        testContextInstance = value;
-      }
+      get { return testContextInstance; }
+      set { testContextInstance = value; }
     }
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "long")]
     public void TestParameterVisibility() {
       StringBuilder errorMessage = new StringBuilder();
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/PluginDependenciesTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/PluginDependenciesTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/PluginDependenciesTest.cs	(revision 9783)
@@ -53,4 +53,7 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "short")]
     public void CheckReferenceAssembliesForPluginDependencies() {
       StringBuilder errorMessage = new StringBuilder();
@@ -76,4 +79,7 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "short")]
     public void CheckPluginDependenciesForReferencedAssemblies() {
       StringBuilder errorMessage = new StringBuilder();
@@ -103,5 +109,5 @@
 
     private static Type GetPluginFromAssembly(Assembly assembly) {
-      return assembly.GetExportedTypes().Where(t => typeof(IPlugin).IsAssignableFrom(t) && !t.IsAbstract && !t.IsInterface).FirstOrDefault();
+      return assembly.GetExportedTypes().FirstOrDefault(t => typeof(IPlugin).IsAssignableFrom(t) && !t.IsAbstract && !t.IsInterface);
     }
 
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/SamplesTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/SamplesTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/SamplesTest.cs	(revision 9783)
@@ -71,4 +71,6 @@
     #region TSP
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateGaTspSampleTest() {
       var ga = CreateGaTspSample();
@@ -76,4 +78,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunGaTspSampleTest() {
       var ga = CreateGaTspSample();
@@ -107,4 +111,6 @@
     #region VRP
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateGaVrpSampleTest() {
       var ga = CreateGaVrpSample();
@@ -113,4 +119,6 @@
 
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunGaVrpSampleTest() {
       var ga = CreateGaVrpSample();
@@ -177,4 +185,6 @@
     #region ArtificialAnt
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateGpArtificialAntSampleTest() {
       var ga = CreateGpArtificialAntSample();
@@ -183,4 +193,6 @@
 
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunGpArtificialAntSampleTest() {
       var ga = CreateGpArtificialAntSample();
@@ -229,4 +241,6 @@
     #region Symbolic Regression
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateGpSymbolicRegressionSampleTest() {
       var ga = CreateGpSymbolicRegressionSample();
@@ -234,4 +248,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunGpSymbolicRegressionSampleTest() {
       var ga = CreateGpSymbolicRegressionSample();
@@ -333,4 +349,6 @@
     #region Symbolic Classification
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateGpSymbolicClassificationSampleTest() {
       var ga = CreateGpSymbolicClassificationSample();
@@ -339,4 +357,6 @@
 
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunGpSymbolicClassificationSampleTest() {
       var ga = CreateGpSymbolicClassificationSample();
@@ -440,4 +460,6 @@
     #region LawnMower
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunGpLawnMowerSampleTest() {
       var ga = CreateGpLawnMowerSample();
@@ -470,4 +492,6 @@
     #region Griewank
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateEsGriewankSampleTest() {
       var es = CreateEsGriewankSample();
@@ -475,4 +499,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunEsGriewankSampleTest() {
       var es = CreateEsGriewankSample();
@@ -524,4 +550,6 @@
     #region TSP
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateIslandGaTspSampleTest() {
       var ga = CreateIslandGaTspSample();
@@ -529,4 +557,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunIslandGaTspSampleTest() {
       var ga = CreateIslandGaTspSample();
@@ -564,4 +594,6 @@
     #region Knapsack
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateLocalSearchKnapsackSampleTest() {
       var ls = CreateLocalSearchKnapsackSample();
@@ -569,4 +601,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "medium")]
     public void RunLocalSearchKnapsackSampleTest() {
       var ls = CreateLocalSearchKnapsackSample();
@@ -625,4 +659,6 @@
     #region Schwefel
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreatePsoSchwefelSampleTest() {
       var pso = CreatePsoSchwefelSample();
@@ -630,4 +666,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "medium")]
     public void RunPsoSchwefelSampleTest() {
       var pso = CreatePsoSchwefelSample();
@@ -704,4 +742,6 @@
     #region Rastrigin
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateSimulatedAnnealingRastriginSampleTest() {
       var sa = CreateSimulatedAnnealingRastriginSample();
@@ -709,4 +749,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "medium")]
     public void RunSimulatedAnnealingRastriginSampleTest() {
       var sa = CreateSimulatedAnnealingRastriginSample();
@@ -770,4 +812,6 @@
     #region TSP
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateTabuSearchTspSampleTest() {
       var ts = CreateTabuSearchTspSample();
@@ -775,4 +819,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunTabuSearchTspSampleTest() {
       var ts = CreateTabuSearchTspSample();
@@ -837,4 +883,6 @@
     #region VRP
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateTabuSearchVRPSampleTest() {
       var vrp = CreateTabuSearchVrpSample();
@@ -842,4 +890,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunTabuSearchVRPSampleTest() {
       var vrp = CreateTabuSearchVrpSample();
@@ -905,4 +955,6 @@
     #region TSP
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateVnsTspSampleTest() {
       var vns = CreateVnsTspSample();
@@ -910,4 +962,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunVnsTspSampleTest() {
       var vns = CreateVnsTspSample();
@@ -982,4 +1036,6 @@
     #region Gaussian Process Regression
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateGaussianProcessRegressionSampleTest() {
       var gpr = CreateGaussianProcessRegressionSample();
@@ -987,4 +1043,6 @@
     }
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunGaussianProcessRegressionSample() {
       var gpr = CreateGaussianProcessRegressionSample();
@@ -1021,4 +1079,6 @@
     #region VRP
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateScatterSearchVRPSampleTest() {
       var ss = CreateScatterSearchVRPSample();
@@ -1027,4 +1087,6 @@
 
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunScatterSearchVRPSampleTest() {
       var ss = CreateScatterSearchVRPSample();
@@ -1077,4 +1139,6 @@
     #region Scheduling
     [TestMethod]
+    [TestCategory("Samples.Create")]
+    [TestProperty("Time", "medium")]
     public void CreateRAPGASchedulingSampleTest() {
       var ss = CreateRAPGASchedulingSample();
@@ -1083,4 +1147,6 @@
 
     [TestMethod]
+    [TestCategory("Samples.Execute")]
+    [TestProperty("Time", "long")]
     public void RunRAPGASchedulingSampleTest() {
       var rapga = CreateRAPGASchedulingSample();
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/StorableConstructorTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/StorableConstructorTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/StorableConstructorTest.cs	(revision 9783)
@@ -41,4 +41,7 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "short")]
     public void TestStorableConstructor() {
       StringBuilder errorMessage = new StringBuilder();
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/SupportVectorMachineTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/SupportVectorMachineTest.cs	(revision 9782)
+++ 	(revision )
@@ -1,107 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2013 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.Linq;
-using System.Threading;
-using HeuristicLab.Algorithms.DataAnalysis;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Problems.DataAnalysis;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace HeuristicLab.Tests {
-  [TestClass]
-  public class SupportVectorMachineTest {
-    public SupportVectorMachineTest() { }
-
-    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;
-      }
-    }
-
-    private EventWaitHandle trigger = new AutoResetEvent(false);
-    private Exception ex;
-
-    [TestMethod]
-    public void SupportVectorMachinePerformanceTest() {
-      ex = null;
-
-      var cv = new CrossValidation();
-      cv.Algorithm = new SupportVectorRegression();
-      var rand = new HeuristicLab.Random.MersenneTwister();
-      double[,] data = GenerateData(1000, rand);
-      List<string> variables = new List<string>() { "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "y" };
-      Dataset ds = new Dataset(variables, data);
-      cv.Problem.ProblemDataParameter.ActualValue = new RegressionProblemData(ds, variables.Take(10), variables.Last());
-      cv.Folds.Value = 5;
-      cv.SamplesStart.Value = 0;
-      cv.SamplesEnd.Value = 999;
-
-      cv.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(cv_ExceptionOccurred);
-      cv.Stopped += new EventHandler(cv_Stopped);
-
-      cv.Prepare();
-      cv.Start();
-      trigger.WaitOne();
-      if (ex != null) throw ex;
-
-      TestContext.WriteLine("Runtime: {0}", cv.ExecutionTime.ToString());
-
-    }
-
-    // poly-10: y = x1 x2 + x3 x4 + x5 x6 + x1 x7 x9 + x3 x6 x10
-    private double[,] GenerateData(int n, IRandom random) {
-      double[,] data = new double[n, 11];
-      for (int i = 0; i < n; i++) {
-        for (int c = 0; c < 10; c++) {
-          data[i, c] = random.NextDouble() * 2.0 - 1.0;
-        }
-        data[i, 10] =
-          data[i, 0] * data[i, 1] +
-          data[i, 2] * data[i, 3] +
-          data[i, 4] * data[i, 5] +
-          data[i, 0] * data[i, 6] * data[i, 8] +
-          data[i, 2] * data[i, 5] * data[i, 9];
-      }
-      return data;
-    }
-
-    private void cv_ExceptionOccurred(object sender, EventArgs<Exception> e) {
-      ex = e.Value;
-    }
-
-    private void cv_Stopped(object sender, EventArgs e) {
-      trigger.Set();
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ThreadSafeLogTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ThreadSafeLogTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ThreadSafeLogTest.cs	(revision 9783)
@@ -30,4 +30,6 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestProperty("Time", "short")]
     public void ThreadSafeLogThreadSafetyTest() {
       int count = 10000;
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ToStringTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ToStringTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/ToStringTest.cs	(revision 9783)
@@ -31,15 +31,7 @@
 
     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;
-      }
+      get { return testContextInstance; }
+      set { testContextInstance = value; }
     }
 
@@ -51,4 +43,7 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestCategory("Essential")]
+    [TestProperty("Time", "long")]
     public void TestToString() {
       bool success = true;
@@ -57,5 +52,6 @@
         try {
           item.ToString();
-        } catch (Exception e) {
+        }
+        catch (Exception e) {
           TestContext.WriteLine(item.GetType() + " throws a " + e.GetType() + " in the ToString method.");
           success = false;
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessFunctionsTest.cs	(revision 9783)
@@ -30,4 +30,6 @@
   public class GaussianProcessFunctionsTest {
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void MeanConstTest() {
       TestMeanFunction(new MeanConst(), 0,
@@ -42,4 +44,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void MeanZeroTest() {
       TestMeanFunction(new MeanZero(), 0,
@@ -54,4 +58,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void MeanSumTest() {
       var sum = new MeanSum();
@@ -79,4 +85,6 @@
     }
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void MeanProdTest() {
       var prod = new MeanProduct();
@@ -150,4 +158,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void MeanLinear() {
       TestMeanFunction(new MeanLinear(), 0,
@@ -176,4 +186,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovSeIsoTest() {
       TestCovarianceFunction(new CovarianceSquaredExponentialIso(), 0,
@@ -264,4 +276,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovNnTest() {
       TestCovarianceFunction(new CovarianceNeuralNetwork(), 0,
@@ -353,4 +367,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovRQIsoTest() {
       TestCovarianceFunction(new CovarianceRationalQuadraticIso(), 0,
@@ -466,4 +482,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovRQArdTest() {
       TestCovarianceFunction(new CovarianceRationalQuadraticArd(), 0,
@@ -690,4 +708,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovMaternIsoTest() {
       var cov = new CovarianceMaternIso();
@@ -875,4 +895,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovLinearTest() {
       TestCovarianceFunction(new CovarianceLinear(), 0,
@@ -897,4 +919,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovLinearArdTest() {
       TestCovarianceFunction(new CovarianceLinearArd(), 0,
@@ -1069,4 +1093,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovPeriodicTest() {
       TestCovarianceFunction(new CovariancePeriodic(), 0,
@@ -1187,4 +1213,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovSEardTest() {
       TestCovarianceFunction(new CovarianceSquaredExponentialArd(), 0,
@@ -1384,4 +1412,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovSumTest() {
       var cov = new CovarianceSum();
@@ -1482,4 +1512,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovScaleTest() {
       var cov = new CovarianceScale();
@@ -1604,4 +1636,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void CovProdTest() {
       var cov = new CovarianceProduct();
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessModelTest.cs	(revision 9783)
@@ -21,5 +21,4 @@
 
 using System.Linq;
-using HeuristicLab.Algorithms.DataAnalysis;
 using HeuristicLab.Problems.Instances.DataAnalysis;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -32,4 +31,6 @@
     [TestMethod]
     [DeploymentItem(@"HeuristicLab.Algorithms.DataAnalysis-3.4/co2.txt")]
+    [TestCategory("General")]
+    [TestProperty("Time", "medium")]
     public void GaussianProcessModelOutputTest() {
       var provider = new RegressionCSVInstanceProvider();
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/GaussianProcessRegressionTest.cs	(revision 9783)
@@ -23,5 +23,4 @@
 using System.Linq;
 using System.Threading;
-using HeuristicLab.Algorithms.DataAnalysis;
 using HeuristicLab.Common;
 using HeuristicLab.Problems.DataAnalysis;
@@ -36,16 +35,7 @@
 
     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;
-      }
+      get { return testContextInstance; }
+      set { testContextInstance = value; }
     }
 
@@ -54,4 +44,6 @@
 
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "long")]
     public void GaussianProcessRegressionPerformanceTest() {
       ex = null;
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/SupportVectorMachineTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/SupportVectorMachineTest.cs	(revision 9783)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Algorithms.DataAnalysis-3.4/SupportVectorMachineTest.cs	(revision 9783)
@@ -0,0 +1,109 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.Linq;
+using System.Threading;
+using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Problems.DataAnalysis;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace HeuristicLab.Tests {
+  [TestClass]
+  public class SupportVectorMachineTest {
+    public SupportVectorMachineTest() { }
+
+    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;
+      }
+    }
+
+    private EventWaitHandle trigger = new AutoResetEvent(false);
+    private Exception ex;
+
+    [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "medium")]
+    public void SupportVectorMachinePerformanceTest() {
+      ex = null;
+
+      var cv = new CrossValidation();
+      cv.Algorithm = new SupportVectorRegression();
+      var rand = new HeuristicLab.Random.MersenneTwister();
+      double[,] data = GenerateData(1000, rand);
+      List<string> variables = new List<string>() { "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "y" };
+      Dataset ds = new Dataset(variables, data);
+      cv.Problem.ProblemDataParameter.ActualValue = new RegressionProblemData(ds, variables.Take(10), variables.Last());
+      cv.Folds.Value = 5;
+      cv.SamplesStart.Value = 0;
+      cv.SamplesEnd.Value = 999;
+
+      cv.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(cv_ExceptionOccurred);
+      cv.Stopped += new EventHandler(cv_Stopped);
+
+      cv.Prepare();
+      cv.Start();
+      trigger.WaitOne();
+      if (ex != null) throw ex;
+
+      TestContext.WriteLine("Runtime: {0}", cv.ExecutionTime.ToString());
+
+    }
+
+    // poly-10: y = x1 x2 + x3 x4 + x5 x6 + x1 x7 x9 + x3 x6 x10
+    private double[,] GenerateData(int n, IRandom random) {
+      double[,] data = new double[n, 11];
+      for (int i = 0; i < n; i++) {
+        for (int c = 0; c < 10; c++) {
+          data[i, c] = random.NextDouble() * 2.0 - 1.0;
+        }
+        data[i, 10] =
+          data[i, 0] * data[i, 1] +
+          data[i, 2] * data[i, 3] +
+          data[i, 4] * data[i, 5] +
+          data[i, 0] * data[i, 6] * data[i, 8] +
+          data[i, 2] * data[i, 5] * data[i, 9];
+      }
+      return data;
+    }
+
+    private void cv_ExceptionOccurred(object sender, EventArgs<Exception> e) {
+      ex = e.Value;
+    }
+
+    private void cv_Stopped(object sender, EventArgs e) {
+      trigger.Set();
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/MultidimensionalScalingTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/MultidimensionalScalingTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/MultidimensionalScalingTest.cs	(revision 9783)
@@ -22,5 +22,4 @@
 using System;
 using System.Globalization;
-using HeuristicLab.Analysis;
 using HeuristicLab.Data;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -30,4 +29,6 @@
   public class MultidimensionalScalingTest {
     [TestMethod]
+    [TestCategory("Algorithms.DataAnalysis")]
+    [TestProperty("Time", "short")]
     public void TestGoodnessOfFit() {
       double stress;
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalDictionaryTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalDictionaryTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalDictionaryTest.cs	(revision 9783)
@@ -23,5 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Collections;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 
@@ -46,4 +45,6 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestProperty("Time", "short")]
     public void TestBidirectionalDictionary() {
       var dict1 = new BidirectionalDictionary<int, double>();
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalLookupTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalLookupTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/BidirectionalLookupTest.cs	(revision 9783)
@@ -22,5 +22,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Collections;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 
@@ -45,4 +44,6 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestProperty("Time", "short")]
     public void TestBidirectionalLookup() {
       var lookup1 = new BidirectionalLookup<int, double>();
Index: trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/ObservableKeyedListTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/ObservableKeyedListTest.cs	(revision 9782)
+++ trunk/sources/HeuristicLab.Tests/HeuristicLab.Collections-3.3/ObservableKeyedListTest.cs	(revision 9783)
@@ -23,5 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Collections;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 
@@ -40,4 +39,6 @@
 
     [TestMethod]
+    [TestCategory("General")]
+    [TestProperty("Time", "short")]
     public void KeyedListAddDuplicateItemTest() {
       var list = new IntKeyedList();
