Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Tests/MichalewiczNonUniformOnePositionManipulatorTest.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.8 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 MichalewiczNonUniformOnePositionManipulator and is intended
29  ///to contain all MichalewiczNonUniformOnePositionManipulator Unit Tests
30  ///</summary>
31  [TestClass()]
32  public class MichalewiczNonUniformOnePositionManipulatorTest {
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 MichalewiczNonUniformOnePositionManipulatorApplyTest() {
86      TestRandom random = new TestRandom();
87      DoubleArrayData parent, expected;
88      DoubleData min, max, generationsDependency;
89      IntData currentGeneration, maximumGenerations;
90      bool exceptionFired;
91      // The following test is not based on published examples
92      random.Reset();
93      random.IntNumbers = new int[] { 3 };
94      random.DoubleNumbers = new double[] { 0.2, 0.7 };
95      parent = new DoubleArrayData(new double[] { 0.2, 0.2, 0.3, 0.5, 0.1 });
96      expected = new DoubleArrayData(new double[] { 0.2, 0.2, 0.3, 0.34, 0.1 });
97      min = new DoubleData(0.3);
98      max = new DoubleData(0.7);
99      generationsDependency = new DoubleData(0.1);
100      currentGeneration = new IntData(1);
101      maximumGenerations = new IntData(4);
102      MichalewiczNonUniformOnePositionManipulator.Apply(random, parent, min, max, currentGeneration, maximumGenerations, generationsDependency);
103      Assert.IsTrue(Auxiliary.RealVectorIsAlmostEqualByPosition(expected, parent));
104      // The following test is not based on published examples
105      exceptionFired = false;
106      random.Reset();
107      random.IntNumbers = new int[] { 3 };
108      random.DoubleNumbers = new double[] { 0.2, 0.7 };
109      parent = new DoubleArrayData(new double[] { 0.2, 0.2, 0.3, 0.5, 0.1 });
110      min = new DoubleData(0.3);
111      max = new DoubleData(0.7);
112      generationsDependency = new DoubleData(0.1);
113      currentGeneration = new IntData(5); //current generation > max generation
114      maximumGenerations = new IntData(4);
115      try {
116        MichalewiczNonUniformOnePositionManipulator.Apply(random, parent, min, max, currentGeneration, maximumGenerations, generationsDependency);
117      }
118      catch (System.ArgumentException) {
119        exceptionFired = true;
120      }
121      Assert.IsTrue(exceptionFired);
122    }
123
124    /// <summary>
125    ///A test for MichalewiczNonUniformOnePositionManipulator Constructor
126    ///</summary>
127    [TestMethod()]
128    public void MichalewiczNonUniformOnePositionManipulatorConstructorTest() {
129      MichalewiczNonUniformOnePositionManipulator target = new MichalewiczNonUniformOnePositionManipulator();
130    }
131  }
132}
Note: See TracBrowser for help on using the repository browser.