Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Tests/PolynomialAllPositionManipulatorTest.cs @ 2936

Last change on this file since 2936 was 2936, checked in by svonolfe, 14 years ago

Added heuristic, local, random convex crossover and added some initial unit tests for all RealVector operators (#890)

File size: 4.3 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using Microsoft.VisualStudio.TestTools.UnitTesting;
23using HeuristicLab.Encodings.RealVector;
24using HeuristicLab.Data;
25
26namespace HeuristicLab.Encodings.RealVector_33.Tests {
27  /// <summary>
28  ///This is a test class for PolynomialAllPositionManipulator and is intended
29  ///to contain all PolynomialAllPositionManipulator Unit Tests
30  ///</summary>
31  [TestClass()]
32  public class PolynomialAllPositionManipulatorTest {
33
34
35    private TestContext testContextInstance;
36
37    /// <summary>
38    ///Gets or sets the test context which provides
39    ///information about and functionality for the current test run.
40    ///</summary>
41    public TestContext TestContext {
42      get {
43        return testContextInstance;
44      }
45      set {
46        testContextInstance = value;
47      }
48    }
49
50    #region Additional test attributes
51    //
52    //You can use the following additional attributes as you write your tests:
53    //
54    //Use ClassInitialize to run code before running the first test in the class
55    //[ClassInitialize()]
56    //public static void MyClassInitialize(TestContext testContext)
57    //{
58    //}
59    //
60    //Use ClassCleanup to run code after all tests in a class have run
61    //[ClassCleanup()]
62    //public static void MyClassCleanup()
63    //{
64    //}
65    //
66    //Use TestInitialize to run code before running each test
67    //[TestInitialize()]
68    //public void MyTestInitialize()
69    //{
70    //}
71    //
72    //Use TestCleanup to run code after each test has run
73    //[TestCleanup()]
74    //public void MyTestCleanup()
75    //{
76    //}
77    //
78    #endregion
79
80
81    /// <summary>
82    ///A test for Apply
83    ///</summary>
84    [TestMethod()]
85    public void PolynomialAllPositionManipulatorApplyTest() {
86      TestRandom random = new TestRandom();
87      DoubleArrayData parent, expected;
88      DoubleData contiguity, maxManipulation;
89      bool exceptionFired;
90      // The following test is not based on published examples
91      random.Reset();
92      random.DoubleNumbers = new double[] { 0.2, 0.7, 0.8, 0.01, 0.1 };
93      parent = new DoubleArrayData(new double[] { 0.2, 0.2, 0.3, 0.5, 0.1 });
94      expected = new DoubleArrayData(new double[] { 0.120213215256006, 0.336631954950876, 0.474551336679454, 0.322759240811056, -0.0182075293954083 });
95      contiguity = new DoubleData(0.8);
96      maxManipulation = new DoubleData(0.2);
97      PolynomialAllPositionManipulator.Apply(random, parent, contiguity, maxManipulation);
98      Assert.IsTrue(Auxiliary.RealVectorIsAlmostEqualByPosition(expected, parent));
99      // The following test is not based on published examples
100      exceptionFired = false;
101      random.Reset();
102      random.DoubleNumbers = new double[] { 0.2, 0.7, 0.8, 0.01, 0.1 };
103      parent = new DoubleArrayData(new double[] { 0.2, 0.2, 0.3, 0.5, 0.1 });
104      contiguity = new DoubleData(-1); //Contiguity value < 0
105      maxManipulation = new DoubleData(0.2);
106      try {
107        PolynomialAllPositionManipulator.Apply(random, parent, contiguity, maxManipulation);
108      }
109      catch (System.ArgumentException) {
110        exceptionFired = true;
111      }
112      Assert.IsTrue(exceptionFired);
113    }
114
115    /// <summary>
116    ///A test for PolynomialAllPositionManipulator Constructor
117    ///</summary>
118    [TestMethod()]
119    public void PolynomialAllPositionManipulatorConstructorTest() {
120      PolynomialAllPositionManipulator target = new PolynomialAllPositionManipulator();
121    }
122  }
123}
Note: See TracBrowser for help on using the repository browser.