Changeset 17262 for branches/2521_ProblemRefactoring/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/Multi-objective/HyperVolumeTests.cs
- Timestamp:
- 09/17/19 17:28:33 (5 years ago)
- Location:
- branches/2521_ProblemRefactoring/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/Multi-objective
- Files:
-
- 1 added
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/2521_ProblemRefactoring/HeuristicLab.Tests/HeuristicLab.Analysis-3.3/Multi-objective/HyperVolumeTests.cs
r17261 r17262 20 20 #endregion 21 21 using System; 22 using System.Linq; 23 using HeuristicLab.Optimization; 22 24 using Microsoft.VisualStudio.TestTools.UnitTesting; 23 25 24 namespace HeuristicLab. Problems.TestFunctions.MultiObjective.Tests {26 namespace HeuristicLab.Analysis.MultiObjective.Tests { 25 27 [TestClass] 26 28 public class HypervolumeTest { … … 34 36 /// +-----+ 35 37 /// 36 /// box between(0,0) and(1,1) with singular point pareto front at(0.5,0.5)38 /// box between(0,0) and(1,1) with singular point Pareto front at(0.5,0.5) 37 39 /// Hypervolume to each of the corners should be 0.25; 38 40 /// 39 41 /// </summary> 40 42 [TestMethod] 41 [TestCategory(" Problems.TestFunctions.MultiObjective")]43 [TestCategory("Analysis.MultiObjective")] 42 44 [TestProperty("Time", "short")] 43 45 public void HypervolumeTestSinglePoint() { … … 56 58 referencePoint[0] = 1; 57 59 referencePoint[1] = 1; 58 double ne = Hypervolume .Calculate(front, referencePoint, maximization);60 double ne = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 59 61 Assert.AreEqual(0.25, ne); 60 62 … … 63 65 referencePoint[0] = 0; 64 66 referencePoint[1] = 1; 65 double nw = Hypervolume .Calculate(front, referencePoint, maximization);67 double nw = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 66 68 Assert.AreEqual(0.25, nw); 67 69 … … 70 72 referencePoint[0] = 0; 71 73 referencePoint[1] = 0; 72 double sw = Hypervolume .Calculate(front, referencePoint, maximization);74 double sw = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 73 75 Assert.AreEqual(0.25, sw); 74 76 … … 77 79 referencePoint[0] = 1; 78 80 referencePoint[1] = 0; 79 double se = Hypervolume .Calculate(front, referencePoint, maximization);81 double se = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 80 82 Assert.AreEqual(0.25, se); 81 83 … … 91 93 /// +-----+ 92 94 /// 93 /// box between(0,0) and(1,1) with singular point pareto front at a random Location95 /// box between(0,0) and(1,1) with singular point Pareto front at a random Location 94 96 /// Sum of the Hypervolume to each of the corners should be 1; 95 97 /// 96 98 /// </summary> 97 99 [TestMethod] 98 [TestCategory(" Problems.TestFunctions.MultiObjective")]100 [TestCategory("Analysis.MultiObjective")] 99 101 [TestProperty("Time", "short")] 100 102 public void HypervolumeTestRandomSinglePoint() { … … 114 116 referencePoint[0] = 1; 115 117 referencePoint[1] = 1; 116 double ne = Hypervolume .Calculate(front, referencePoint, maximization);117 118 //NorthWest 119 maximization = new bool[] { true, false }; 120 referencePoint[0] = 0; 121 referencePoint[1] = 1; 122 double nw = Hypervolume .Calculate(front, referencePoint, maximization);123 124 //SouthWest 125 maximization = new bool[] { true, true }; 126 referencePoint[0] = 0; 127 referencePoint[1] = 0; 128 double sw = Hypervolume .Calculate(front, referencePoint, maximization);129 130 //SouthEast 131 maximization = new bool[] { false, true }; 132 referencePoint[0] = 1; 133 referencePoint[1] = 0; 134 double se = Hypervolume .Calculate(front, referencePoint, maximization);118 double ne = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 119 120 //NorthWest 121 maximization = new bool[] { true, false }; 122 referencePoint[0] = 0; 123 referencePoint[1] = 1; 124 double nw = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 125 126 //SouthWest 127 maximization = new bool[] { true, true }; 128 referencePoint[0] = 0; 129 referencePoint[1] = 0; 130 double sw = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 131 132 //SouthEast 133 maximization = new bool[] { false, true }; 134 referencePoint[0] = 1; 135 referencePoint[1] = 0; 136 double se = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 135 137 Assert.AreEqual(1.0, ne + se + nw + sw, 1e8); 136 138 } … … 144 146 /// +-----x 145 147 /// 146 /// box between(0,0) and(1,1) with three point ( pareto) front at (1,0), (0.5,0.5) and (0,1)147 /// Hypervolume to (1,0) and (0,1) of the corners should be 1 (dominated Points need to be re emoved beforehand and148 /// box between(0,0) and(1,1) with three point (Pareto) front at (1,0), (0.5,0.5) and (0,1) 149 /// Hypervolume to (1,0) and (0,1) of the corners should be 1 (dominated Points need to be removed beforehand and 148 150 /// Hypervolume to (0,0) and (1,1) of the corners should be 0.25 149 151 /// </summary> 150 152 [TestMethod] 151 [TestCategory(" Problems.TestFunctions.MultiObjective")]153 [TestCategory("Analysis.MultiObjective")] 152 154 [TestProperty("Time", "short")] 153 155 public void HypervolumeTestDiagonalPoint() { … … 171 173 referencePoint[0] = 1; 172 174 referencePoint[1] = 1; 173 double ne = Hypervolume .Calculate(front, referencePoint, maximization);175 double ne = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 174 176 Assert.AreEqual(0.25, ne); 175 177 … … 178 180 referencePoint[0] = 0; 179 181 referencePoint[1] = 1; 180 double nw = Hypervolume.Calculate(NonDominatedSelect.SelectNonDominatedVectors(front, maximization, true), referencePoint, maximization); 182 var nonDominatedFront = DominationCalculator.CalculateBestParetoFront(front, front, maximization, false).Select(i => i.Item2).ToList(); 183 double nw = HypervolumeCalculator.CalculateHypervolume(nonDominatedFront, referencePoint, maximization); 181 184 Assert.AreEqual(1, nw); 182 185 … … 185 188 referencePoint[0] = 0; 186 189 referencePoint[1] = 0; 187 double sw = Hypervolume .Calculate(front, referencePoint, maximization);190 double sw = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 188 191 Assert.AreEqual(0.25, sw); 189 192 … … 192 195 referencePoint[0] = 1; 193 196 referencePoint[1] = 0; 194 double se = Hypervolume.Calculate(NonDominatedSelect.SelectNonDominatedVectors(front, maximization, true), referencePoint, maximization); 197 nonDominatedFront = DominationCalculator.CalculateBestParetoFront(front, front, maximization, false).Select(i => i.Item2).ToList(); 198 double se = HypervolumeCalculator.CalculateHypervolume(nonDominatedFront, referencePoint, maximization); 195 199 Assert.AreEqual(1, se); 196 200 … … 199 203 [TestMethod()] 200 204 [ExpectedException(typeof(ArgumentException))] 201 [TestCategory(" Problems.TestFunctions.MultiObjective")]205 [TestCategory("Analysis.MultiObjective")] 202 206 [TestProperty("Time", "short")] 203 207 public void HypervolumeTestReferencePointViolationNE() { … … 215 219 referencePoint[0] = 1; 216 220 referencePoint[1] = 1; 217 double ne = Hypervolume .Calculate(front, referencePoint, maximization);218 } 219 220 [TestMethod()] 221 [ExpectedException(typeof(ArgumentException))] 222 [TestCategory(" Problems.TestFunctions.MultiObjective")]221 double ne = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 222 } 223 224 [TestMethod()] 225 [ExpectedException(typeof(ArgumentException))] 226 [TestCategory("Analysis.MultiObjective")] 223 227 [TestProperty("Time", "short")] 224 228 public void HypervolumeTestReferencePointViolationNW() { … … 236 240 referencePoint[0] = 0; 237 241 referencePoint[1] = 1; 238 double nw = Hypervolume .Calculate(front, referencePoint, maximization);242 double nw = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 239 243 Assert.AreEqual(0.25, nw); 240 244 } … … 242 246 [TestMethod()] 243 247 [ExpectedException(typeof(ArgumentException))] 244 [TestCategory(" Problems.TestFunctions.MultiObjective")]248 [TestCategory("Analysis.MultiObjective")] 245 249 [TestProperty("Time", "short")] 246 250 public void HypervolumeTestReferencePointViolationSW() { … … 258 262 referencePoint[0] = 0; 259 263 referencePoint[1] = 0; 260 double sw = Hypervolume .Calculate(front, referencePoint, maximization);264 double sw = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 261 265 Assert.AreEqual(0.25, sw); 262 266 } … … 264 268 [TestMethod()] 265 269 [ExpectedException(typeof(ArgumentException))] 266 [TestCategory(" Problems.TestFunctions.MultiObjective")]270 [TestCategory("Analysis.MultiObjective")] 267 271 [TestProperty("Time", "short")] 268 272 public void HypervolumeTestReferencePointViolationSE() { … … 280 284 referencePoint[0] = 1; 281 285 referencePoint[1] = 0; 282 double se = Hypervolume .Calculate(front, referencePoint, maximization);286 double se = HypervolumeCalculator.CalculateHypervolume(front, referencePoint, maximization); 283 287 Assert.AreEqual(0.25, se); 284 288 }
Note: See TracChangeset
for help on using the changeset viewer.