Index: trunk/sources/HeuristicLab.TestFunctions/BealeEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.TestFunctions/BealeEvaluator.cs	(revision 291)
+++ trunk/sources/HeuristicLab.TestFunctions/BealeEvaluator.cs	(revision 291)
@@ -0,0 +1,45 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Text;
+
+namespace HeuristicLab.TestFunctions {
+  public class BealeEvaluator : TestFunctionEvaluatorBase {
+    public override string Description {
+      get { return
+@"Beale Function
+
+Domain:  [-4.5 , 4.5]^2
+Optimum: 0.0 at (3.0, 0.5)";
+          }
+    }
+
+    public static double Applay(double[] point) {
+      return Math.Pow(1.5 - point[0] * (1 - point[1]), 2) + Math.Pow(2.25 - point[0] * (1 - (point[1] * point[1])), 2) + Math.Pow((2.625 - point[0] * (1 - (point[1] * point[1] * point[1]))), 2);
+    }
+
+    protected override double EvaluateFunction(double[] point) {
+      return Applay(point);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.TestFunctions/BoothEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.TestFunctions/BoothEvaluator.cs	(revision 291)
+++ trunk/sources/HeuristicLab.TestFunctions/BoothEvaluator.cs	(revision 291)
@@ -0,0 +1,45 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Text;
+
+namespace HeuristicLab.TestFunctions {
+  public class BoothEvaluator : TestFunctionEvaluatorBase {
+    public override string Description {
+      get { return
+@"Booth Function
+
+Domain:  [-10.0 , 10.0]^2
+Optimum: 0.0 at (1.0, 3.0)";
+          }
+    }
+
+    private double Apply(double[] point) {
+      return Math.Pow(point[0] + 2 * point[1] - 7, 2) + Math.Pow(2 * point[0] + point[1] - 5, 2);
+    }
+
+    protected override double EvaluateFunction(double[] point) {
+      return Apply(point);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.TestFunctions/HeuristicLab.TestFunctions.csproj
===================================================================
--- trunk/sources/HeuristicLab.TestFunctions/HeuristicLab.TestFunctions.csproj	(revision 290)
+++ trunk/sources/HeuristicLab.TestFunctions/HeuristicLab.TestFunctions.csproj	(revision 291)
@@ -43,5 +43,9 @@
   <ItemGroup>
     <Compile Include="AckleyEvaluator.cs" />
+    <Compile Include="BealeEvaluator.cs" />
+    <Compile Include="BoothEvaluator.cs" />
     <Compile Include="GriewangkEvaluator.cs" />
+    <Compile Include="LevyEvaluator.cs" />
+    <Compile Include="MatyasEvaluator.cs" />
     <Compile Include="SchwefelEvaluator.cs" />
     <Compile Include="RosenbrockEvaluator.cs" />
@@ -50,4 +54,5 @@
     <Compile Include="HeuristicLabTestFunctionsPlugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="SumSquaresEvaluator.cs" />
     <Compile Include="TestFunctionEvaluatorBase.cs" />
     <Compile Include="TestFunctionInjector.cs" />
@@ -58,4 +63,5 @@
       <DependentUpon>TestFunctionInjectorView.cs</DependentUpon>
     </Compile>
+    <Compile Include="ZakharovEvaluator.cs" />
   </ItemGroup>
   <ItemGroup>
Index: trunk/sources/HeuristicLab.TestFunctions/LevyEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.TestFunctions/LevyEvaluator.cs	(revision 291)
+++ trunk/sources/HeuristicLab.TestFunctions/LevyEvaluator.cs	(revision 291)
@@ -0,0 +1,59 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Text;
+
+namespace HeuristicLab.TestFunctions {
+  public class LevyEvaluator : TestFunctionEvaluatorBase {
+    public override string Description {
+      get { return
+@"Levy Function
+
+Domain:  [-10.0 , 10.0]^n
+Optimum: 0.0 at (1.0, 1.0, ..., 1.0)";
+          }
+    }
+
+    public static double Apply(double[] point) {
+      int length = point.Length;
+      double[] z = new double[length];
+      double s;
+
+      for (int i = 0; i < length; i++) {
+        z[i] = 1 + (point[i] - 1) / 4;
+      }
+
+      s = Math.Pow(Math.Sin(Math.PI * z[1]), 2);
+
+      for (int i = 0; i < length - 1; i++) {
+        s += Math.Pow(z[i] - 1, 2) * (1 + 10 * Math.Pow(Math.Sin(Math.PI * z[i] + 1), 2));
+      }
+
+      return s + Math.Pow(z[length - 1] - 1, 2) * (1 + Math.Pow(Math.Sin(2 * Math.PI * z[length - 1]), 2));
+    }
+
+    protected override double EvaluateFunction(double[] point) {
+      return Apply(point);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.TestFunctions/MatyasEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.TestFunctions/MatyasEvaluator.cs	(revision 291)
+++ trunk/sources/HeuristicLab.TestFunctions/MatyasEvaluator.cs	(revision 291)
@@ -0,0 +1,45 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Text;
+
+namespace HeuristicLab.TestFunctions {
+  public class MatyasEvaluator : TestFunctionEvaluatorBase {
+    public override string Description {
+      get { return
+@"Matyas Function
+
+Domain:  [-10.0 , 10.0]^2
+Optimum: 0.0 at (0.0, 0.0)";
+          }
+    }
+
+    public static double Apply(double[] point) {
+      return 0.26 * (point[0] * point[0] + point[1] * point[1]) - 0.48 * point[0] * point[1];
+    }
+
+    protected override double EvaluateFunction(double[] point) {
+      return Apply(point);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.TestFunctions/SumSquaresEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.TestFunctions/SumSquaresEvaluator.cs	(revision 291)
+++ trunk/sources/HeuristicLab.TestFunctions/SumSquaresEvaluator.cs	(revision 291)
@@ -0,0 +1,49 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Text;
+
+namespace HeuristicLab.TestFunctions {
+  public class SumSquaresEvaluator : TestFunctionEvaluatorBase {
+    public override string Description {
+      get { return
+@"Sum Squares Function
+
+Domain:  [-10.0 , 10.0]^n
+Optimum: 0.0 at (0.0, 0.0, ..., 0.0)";
+          }
+    }
+
+    public static double Apply(double[] point) {
+      double result = 0;
+      for (int i = 0; i < point.Length; i++) {
+        result += i * point[i] * point[i];
+      }
+      return result;
+    }
+
+    protected override double EvaluateFunction(double[] point) {
+      return Apply(point);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.TestFunctions/ZakharovEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.TestFunctions/ZakharovEvaluator.cs	(revision 291)
+++ trunk/sources/HeuristicLab.TestFunctions/ZakharovEvaluator.cs	(revision 291)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Text;
+
+namespace HeuristicLab.TestFunctions {
+  public class ZakharovEvaluator : TestFunctionEvaluatorBase {
+    public override string Description {
+      get { return
+@"Zakharov Function
+
+Domain:  [-5.0 , 10.0]^n
+Optimum: 0.0 at (0.0, 0.0, ..., 0.0)";
+          }
+    }
+
+    public static double Apply(double[] point) {
+      int length = point.Length;
+      double s1 = 0;
+      double s2 = 0;
+
+      for (int i = 0; i < length; i++) {
+        s1 = s1 + point[i] * point[i];
+        s2 = s2 + 0.5 * i * point[i];
+      }
+      return s1 + s2 * s2 + s2 * s2 * s2 * s2;
+    }
+
+    protected override double EvaluateFunction(double[] point) {
+      return Apply(point);
+    }
+  }
+}
