Changeset 7255 for branches/RegressionBenchmarks/HeuristicLab.Tests
- Timestamp:
- 01/02/12 11:40:31 (13 years ago)
- Location:
- branches/RegressionBenchmarks
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/RegressionBenchmarks
-
branches/RegressionBenchmarks/HeuristicLab.Tests
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Tests merged: 7082,7097,7111
- Property svn:mergeinfo changed
-
branches/RegressionBenchmarks/HeuristicLab.Tests/HeuristicLab-3.3/ContentViewTests.cs
r6866 r7255 59 59 public void ContentViewAttributeTest() { 60 60 //get all non-generic and instantiable classes which implement IContentView 61 foreach (Type viewType in ApplicationManager.Manager.GetTypes(typeof(IContentView) , true).Where(t => !t.ContainsGenericParameters)) {61 foreach (Type viewType in ApplicationManager.Manager.GetTypes(typeof(IContentView))) { 62 62 //get all ContentAttributes on the instantiable view 63 63 foreach (ContentAttribute attribute in viewType.GetCustomAttributes(typeof(ContentAttribute), false).Cast<ContentAttribute>()) { -
branches/RegressionBenchmarks/HeuristicLab.Tests/HeuristicLab-3.3/SamplesTest.cs
r7085 r7255 613 613 RunAlgorithm(pso); 614 614 if (!Environment.Is64BitProcess) { 615 Assert.AreEqual(11 9.30888659302838, GetDoubleResult(pso, "BestQuality"));615 Assert.AreEqual(118.44027985932837, GetDoubleResult(pso, "BestQuality")); 616 616 Assert.AreEqual(140.71570105946438, GetDoubleResult(pso, "CurrentAverageQuality")); 617 617 Assert.AreEqual(220.956806502853, GetDoubleResult(pso, "CurrentWorstQuality")); 618 618 Assert.AreEqual(1000, GetIntResult(pso, "Iterations")); 619 619 } else { 620 Assert.AreEqual(118. 58396881972624, GetDoubleResult(pso, "BestQuality"));620 Assert.AreEqual(118.43958282879345, GetDoubleResult(pso, "BestQuality")); 621 621 Assert.AreEqual(139.43946864779372, GetDoubleResult(pso, "CurrentAverageQuality")); 622 622 Assert.AreEqual(217.14654589055152, GetDoubleResult(pso, "CurrentWorstQuality")); -
branches/RegressionBenchmarks/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis-3.4/StatisticCalculatorsTest.cs
r7085 r7255 20 20 #endregion 21 21 22 using System;23 22 using System.Collections.Generic; 24 23 using System.Linq; … … 140 139 } 141 140 } 142 143 [TestMethod]144 public void CalculateDirectionalSymmetryTest() {145 // delta: +0.01, +1, -0.01, -2, -0.01, -1, +0.01, +2146 var original = new double[]147 {148 0,149 0.01,150 1.01,151 1,152 -1,153 -1.01,154 -2.01,155 -2,156 0157 };158 // delta to original(t-1): +1, +0, -1, -0, -1, +0.01, +0.01, +2159 var estimated = new double[]160 {161 -1,162 1,163 0.01,164 0.01,165 1,166 -1,167 -1.02,168 -2.02,169 0170 };171 172 // one-step forecast173 var startValues = original;174 var actualContinuations = from x in original.Skip(1)175 select Enumerable.Repeat(x, 1);176 var predictedContinuations = from x in estimated.Skip(1)177 select Enumerable.Repeat(x, 1);178 double expected = 0.5; // half of the predicted deltas are correct179 OnlineCalculatorError errorState;180 double actual = OnlineDirectionalSymmetryCalculator.Calculate(startValues, actualContinuations, predictedContinuations, out errorState);181 Assert.AreEqual(expected, actual, 1E-9);182 }183 184 [TestMethod]185 public void CalculateMultiStepDirectionalSymmetryTest() {186 // delta: +0.01, +1, -0.01, -2, -0.01, -1, +0.01, +2187 var original = new double[] { 0, 0.01, 1.01, 1, -1, -1.01, -2.01, -2, 0 };188 {189 var estimated = new double[][]190 {191 new double[] {0.01, 1.01, 1, -1, -1.01},192 new double[] {1.01, 1, -1, -1.01, -2.01},193 new double[] {1, -1, -1.01, -2.01, -2},194 new double[] {-1, -1.01, -2.01, -2, 0}195 };196 197 // 5-step forecast198 var startValues = original.Take(4);199 var actualContinuations = from i in Enumerable.Range(1, original.Count() - 5)200 select original.Skip(i).Take(5);201 var predictedContinuations = estimated;202 double expected = 1; // predictions are 100% correct203 OnlineCalculatorError errorState;204 double actual = OnlineDirectionalSymmetryCalculator.Calculate(startValues, actualContinuations,205 predictedContinuations, out errorState);206 Assert.AreEqual(expected, actual, 1E-9);207 }208 {209 // only the direction is relevant210 var estimated = new double[][]211 {212 new double[] {0.01, 0.01, 0.01, -0.01, -0.01}, // start=0, original deltas: 0.01, 1.01, 1.00, -1.00, -1.01213 new double[] {0.02, 0.02, 0.00, 0.00, 0.00}, // start=0.01, original deltas: 1.00, 0.90, -1.01, -1.02, -2.02,214 new double[] { 1.00, 1.00, 1.00, 1.00, 1.00}, // start=1.01, original deltas: -0.01, -2.01, -2.02, -3.02, -3.01215 new double[] { 0.90, 0.90, 0.90, 0.90, 0.90} // start=1, original deltas: -2.00, -0.01, -3.01, -3.00, -1.00216 };217 218 // 5-step forecast219 var startValues = original.Take(4);220 var actualContinuations = from i in Enumerable.Range(1, original.Count() - 5)221 select original.Skip(i).Take(5);222 var predictedContinuations = estimated;223 double expected = 1; // half of the predicted deltas are correct224 OnlineCalculatorError errorState;225 double actual = OnlineDirectionalSymmetryCalculator.Calculate(startValues, actualContinuations,226 predictedContinuations, out errorState);227 Assert.AreEqual(expected, actual, 1E-9);228 }229 {230 // also check incorrectly predicted directions231 var estimated = new double[][]232 {233 new double[] {0.01, 0.01, 0.01, +0.01, +0.01}, // start=0, original deltas: 0.01, 1.01, 1.00, -1.00, -1.01234 new double[] {0.02, 0.00, 0.02, 0.00, 0.00}, // start=0.01, original deltas: 1.00, 0.90, -1.01, -1.02, -2.02,235 new double[] { 1.02, 1.00, 1.02, 1.00, 1.02}, // start=1.01, original deltas: -0.01, -2.01, -2.02, -3.02, -3.01236 new double[] { 0.90, 0.90, 0.90, 0.90, 0.90} // start=1, original deltas: -2.00, -0.01, -3.01, -3.00, -1.00237 };238 239 // 5-step forecast240 var startValues = original.Take(4);241 var actualContinuations = from i in Enumerable.Range(1, original.Count() - 5)242 select original.Skip(i).Take(5);243 var predictedContinuations = estimated;244 double expected = (20 - 7) / 20.0; // half of the predicted deltas are correct245 OnlineCalculatorError errorState;246 double actual = OnlineDirectionalSymmetryCalculator.Calculate(startValues, actualContinuations,247 predictedContinuations, out errorState);248 Assert.AreEqual(expected, actual, 1E-9);249 }250 }251 252 253 [TestMethod]254 public void CalculateWeightedDirectionalSymmetryTest() {255 var original = new double[] { 0, 0.01, 1.01, 1, -1, -1.01, -2.01, -2, 0 }; // +0.01, +1, -0.01, -2, -0.01, -1, +0.01, +2256 var estimated = new double[] { 1, 2, 2, 1, 1, 0, 0.01, 0.02, 2.02 }; // delta to original: +2, +1.99, -0.01, 0, +1, -1.02, +2.01, +4.02257 // one-step forecast258 var startValues = original;259 var actualContinuations = from x in original.Skip(1)260 select Enumerable.Repeat(x, 1);261 var predictedContinuations = from x in estimated.Skip(1)262 select Enumerable.Repeat(x, 1);263 // absolute errors = 1.99, 0.99, 0, 2, 1.01, 2.02, 2.02, 2.02264 // sum of absolute errors for correctly predicted deltas = 2.97265 // sum of absolute errors for incorrectly predicted deltas = 3.03266 double expected = 5.03 / 7.02;267 OnlineCalculatorError errorState;268 double actual = OnlineWeightedDirectionalSymmetryCalculator.Calculate(startValues, actualContinuations, predictedContinuations, out errorState);269 Assert.AreEqual(expected, actual, 1E-9);270 }271 272 [TestMethod]273 public void CalculateTheilsUTest() {274 var original = new double[] { 0, 0.01, 1.01, 1, -1, -1.01, -2.01, -2, 0 };275 var estimated = new double[] { 1, 1.01, 0.01, 2, 0, -0.01, -1.01, -3, 1 };276 // one-step forecast277 var startValues = original;278 var actualContinuations = from x in original.Skip(1)279 select Enumerable.Repeat(x, 1);280 var predictedContinuations = from x in estimated.Skip(1)281 select Enumerable.Repeat(x, 1);282 // Sum of squared errors of model y(t+1) = y(t) = 10.0004283 // Sum of squared errors of predicted values = 8284 double expected = Math.Sqrt(8 / 10.0004);285 OnlineCalculatorError errorState;286 double actual = OnlineTheilsUStatisticCalculator.Calculate(startValues, actualContinuations, predictedContinuations, out errorState);287 Assert.AreEqual(expected, actual, 1E-9);288 }289 290 [TestMethod]291 public void CalculateMultiStepTheilsUTest() {292 var original = new double[] { 0, 0.01, 1.01, 1, -1, -1.01, -2.01, -2, 0 };293 {294 // prefect prediction295 var estimated = new double[][]296 {297 new double[] {0.01, 1.01, 1, -1, -1.01},298 new double[] {1.01, 1, -1, -1.01, -2.01},299 new double[] {1, -1, -1.01, -2.01, -2},300 new double[] {-1, -1.01, -2.01, -2, 0}301 };302 // 5-step forecast303 var startValues = original.Take(4);304 var actualContinuations = from i in Enumerable.Range(1, original.Count() - 5)305 select original.Skip(i).Take(5);306 var predictedContinuations = estimated;307 308 double expected = 0;309 OnlineCalculatorError errorState;310 double actual = OnlineTheilsUStatisticCalculator.Calculate(startValues, actualContinuations,311 predictedContinuations, out errorState);312 Assert.AreEqual(expected, actual, 1E-9);313 }314 {315 // naive prediction316 var estimated = new double[][]317 {318 new double[] {0, 0, 0, 0, 0},319 new double[] {0.01, 0.01, 0.01, 0.01, 0.01},320 new double[] {1.01, 1.01, 1.01, 1.01, 1.01},321 new double[] {1, 1, 1, 1, 1}322 };323 // 5-step forecast324 var startValues = original.Take(4);325 var actualContinuations = from i in Enumerable.Range(1, original.Count() - 5)326 select original.Skip(i).Take(5);327 var predictedContinuations = estimated;328 329 double expected = 1;330 OnlineCalculatorError errorState;331 double actual = OnlineTheilsUStatisticCalculator.Calculate(startValues, actualContinuations,332 predictedContinuations, out errorState);333 Assert.AreEqual(expected, actual, 1E-9);334 }335 {336 // realistic prediction337 var estimated = new double[][]338 {339 new double[] {0.005, 0.5, 0.5, -0.5, -0.5}, // start = 0340 new double[] {0.60, 0.5, -0.5, -0.5, -1}, // start = 0.01341 new double[] {-0.005, 0, 0, -0.5, -1}, // start = 1.01342 new double[] {-0, 0, -0.5, -1, 0.5} // start = 1343 };344 // 5-step forecast345 var startValues = original.Take(4);346 var actualContinuations = from i in Enumerable.Range(1, original.Count() - 5)347 select original.Skip(i).Take(5);348 var predictedContinuations = estimated;349 350 double expected = 0.47558387;351 OnlineCalculatorError errorState;352 double actual = OnlineTheilsUStatisticCalculator.Calculate(startValues, actualContinuations,353 predictedContinuations, out errorState);354 Assert.AreEqual(expected, actual, 1E-6);355 }356 }357 358 [TestMethod]359 public void CalculateAccuracyTest() {360 var original = new double[] { 1, 1, 0, 0 };361 var estimated = new double[] { 1, 0, 1, 0 };362 double expected = 0.5;363 OnlineCalculatorError errorState;364 double actual = OnlineAccuracyCalculator.Calculate(original, estimated, out errorState);365 Assert.AreEqual(expected, actual, 1E-9);366 }367 368 [TestMethod]369 public void CalculateMeanAbsolutePercentageErrorTest() {370 var original = new double[] { 1, 2, 3, 1, 5 };371 var estimated = new double[] { 2, 1, 3, 1, 0 };372 double expected = 0.5;373 OnlineCalculatorError errorState;374 double actual = OnlineMeanAbsolutePercentageErrorCalculator.Calculate(original, estimated, out errorState);375 Assert.AreEqual(expected, actual, 1E-9);376 Assert.AreEqual(OnlineCalculatorError.None, errorState);377 378 // if the original contains zero values the result is not defined379 var original2 = new double[] { 1, 2, 0, 0, 0 };380 OnlineMeanAbsolutePercentageErrorCalculator.Calculate(original2, estimated, out errorState);381 Assert.AreEqual(OnlineCalculatorError.InvalidValueAdded, errorState);382 }383 141 } 384 142 } -
branches/RegressionBenchmarks/HeuristicLab.Tests/HeuristicLab.Tests.csproj
r7085 r7255 830 830 <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4</Name> 831 831 </ProjectReference> 832 <ProjectReference Include="..\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4.csproj">833 <Project>{E6CB1FC5-78EC-4EB8-BF12-35303C36F962}</Project>834 <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4</Name>835 </ProjectReference>836 <ProjectReference Include="..\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj">837 <Project>{07486E68-1517-4B9D-A58D-A38E99AE71AB}</Project>838 <Name>HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4</Name>839 </ProjectReference>840 832 <ProjectReference Include="..\HeuristicLab.Problems.DataAnalysis.Symbolic.Views\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj"> 841 833 <Project>{7A2531CE-3F7C-4F13-BCCA-ED6DC27A7086}</Project>
Note: See TracChangeset
for help on using the changeset viewer.