Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Tests/PolynomialOnePositionManipulatorTest.cs @ 3038

Last change on this file since 3038 was 2936, checked in by svonolfe, 15 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 PolynomialOnePositionManipulator and is intended
29  ///to contain all PolynomialOnePositionManipulator Unit Tests
30  ///</summary>
31  [TestClass()]
32  public class PolynomialOnePositionManipulatorTest {
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 PolynomialOnePositionManipulatorApplyTest() {
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.IntNumbers = new int[] { 3 };
93      random.DoubleNumbers = new double[] { 0.2 };
94      parent = new DoubleArrayData(new double[] { 0.2, 0.2, 0.3, 0.5, 0.1 });
95      expected = new DoubleArrayData(new double[] { 0.2, 0.2, 0.3, 0.1261980542102, 0.1 });
96      contiguity = new DoubleData(0.2);
97      maxManipulation = new DoubleData(0.7);
98      PolynomialOnePositionManipulator.Apply(random, parent, contiguity, maxManipulation);
99      Assert.IsTrue(Auxiliary.RealVectorIsAlmostEqualByPosition(expected, parent));
100      // The following test is not based on published examples
101      exceptionFired = false;
102      random.Reset();
103      random.IntNumbers = new int[] { 3 };
104      random.DoubleNumbers = new double[] { 0.2 };
105      parent = new DoubleArrayData(new double[] { 0.2, 0.2, 0.3, 0.5, 0.1 });
106      contiguity = new DoubleData(-1); //Contiguity value < 0
107      maxManipulation = new DoubleData(0.2);
108      try {
109        PolynomialOnePositionManipulator.Apply(random, parent, contiguity, maxManipulation);
110      }
111      catch (System.ArgumentException) {
112        exceptionFired = true;
113      }
114      Assert.IsTrue(exceptionFired);
115    }
116
117    /// <summary>
118    ///A test for PolynomialOnePositionManipulator Constructor
119    ///</summary>
120    [TestMethod()]
121    public void PolynomialOnePositionManipulatorConstructorTest() {
122      PolynomialOnePositionManipulator target = new PolynomialOnePositionManipulator();
123    }
124  }
125}
Note: See TracBrowser for help on using the repository browser.