Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/07/11 22:47:12 (12 years ago)
Author:
gkronber
Message:

#1081: worked on multi-variate time series prognosis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs

    r7129 r7154  
    315315      Evaluate(interpreter, ds, "(lagVariable 1.0 a -1) ", 2, ds.GetDoubleValue("A", 1));
    316316      Evaluate(interpreter, ds, "(lagVariable 1.0 a 0) ", 2, ds.GetDoubleValue("A", 2));
    317       Evaluate(interpreter, ds, "(lagVariable 1.0 a 1) ", 0, ds.GetDoubleValue("A", 1));
     317      //Evaluate(interpreter, ds, "(lagVariable 1.0 a 1) ", 0, ds.GetDoubleValue("A", 1));
    318318
    319319      // integral
    320320      Evaluate(interpreter, ds, "(integral -1.0 (variable 1.0 a)) ", 1, ds.GetDoubleValue("A", 0) + ds.GetDoubleValue("A", 1));
    321       Evaluate(interpreter, ds, "(integral -1.0 (lagVariable 1.0 a 1)) ", 1, ds.GetDoubleValue("A", 1) + ds.GetDoubleValue("A", 2));
     321      Evaluate(interpreter, ds, "(integral -1.0 (lagVariable 1.0 a -1)) ", 3, ds.GetDoubleValue("A", 1) + ds.GetDoubleValue("A", 2));
    322322      Evaluate(interpreter, ds, "(integral -2.0 (variable 1.0 a)) ", 2, ds.GetDoubleValue("A", 0) + ds.GetDoubleValue("A", 1) + ds.GetDoubleValue("A", 2));
    323323      Evaluate(interpreter, ds, "(integral -1.0 (* (variable 1.0 a) (variable 1.0 b)))", 1, ds.GetDoubleValue("A", 0) * ds.GetDoubleValue("B", 0) + ds.GetDoubleValue("A", 1) * ds.GetDoubleValue("B", 1));
     
    336336
    337337      // timelag
    338       Evaluate(interpreter, ds, "(lag -1.0 (lagVariable 1.0 a 2)) ", 1, ds.GetDoubleValue("A", 2));
    339       Evaluate(interpreter, ds, "(lag -2.0 (lagVariable 1.0 a 2)) ", 2, ds.GetDoubleValue("A", 2));
    340       Evaluate(interpreter, ds, "(lag -1.0 (* (lagVariable 1.0 a 1) (lagVariable 1.0 b 2)))", 1, ds.GetDoubleValue("A", 1) * ds.GetDoubleValue("B", 2));
     338      Evaluate(interpreter, ds, "(lag -1.0 (lagVariable 1.0 a -2)) ", 5, ds.GetDoubleValue("A", 2));
     339      Evaluate(interpreter, ds, "(lag -2.0 (lagVariable 1.0 a -2)) ", 5, ds.GetDoubleValue("A", 1));
     340      Evaluate(interpreter, ds, "(lag -1.0 (* (lagVariable 1.0 a -1) (lagVariable 1.0 b -2)))", 3, ds.GetDoubleValue("A", 1) * ds.GetDoubleValue("B", 0));
    341341      Evaluate(interpreter, ds, "(lag -2.0 3.0)", 1, 3.0);
    342342
     
    349349      Evaluate(interpreter, ds, @"(PROG
    350350                                    (MAIN (lagVariable 1.0 a -1) (lagVariable 1.0 b -1)))", new string[] { "A", "B" }, Enumerable.Range(1, 2), 3,
    351       new[] { new[] { 1.0, 1.0, 1.0 }, new[] { 1.0, 1.0, 1.0 } },
    352       new[] { new[] { 2.0, 2.0, 2.0 }, new[] { 2.0, 2.0, 2.0 } }
     351      new[] { new[] { 1.0, 1.0},
     352              new[] { 1.0, 1.0},
     353              new[] { 1.0, 1.0}},
     354      new[] { new[] { 2.0, 2.0},
     355              new[] { 2.0, 2.0},
     356              new[] { 2.0, 2.0} }
    353357        );
    354358
     
    364368      Evaluate(interpreter, ds, @"(PROG
    365369                                     (MAIN (lagVariable 2.0 a -2) (lagVariable 1.0 a -1)))", new string[] { "A", "B" }, Enumerable.Range(2, 3), 4,
    366       new[] { new[] { 2.0, 4.0, 4.0, 8.0 }, new[] { 2.0, 2.0, 4.0, 4.0 } },
    367       new[] { new[] { 4.0, 2.0, 8.0, 4.0 }, new[] { 1.0, 4.0, 2.0, 8.0 } },
    368       new[] { new[] { 2.0, 2.0, 4.0, 4.0 }, new[] { 1.0, 2.0, 2.0, 4.0 } }
     370      new[] { new[] { 2.0, 2.0},
     371              new[] { 4.0, 2.0},
     372              new[] { 4.0, 4.0},
     373              new[] { 8.0, 4.0}},
     374      new[] { new[] { 4.0, 1.0},
     375              new[] { 2.0, 4.0},
     376              new[] { 8.0, 2.0},
     377              new[] { 4.0, 8.0}},
     378      new[] { new[] { 2.0, 1.0},
     379              new[] { 2.0, 2.0},
     380              new[] { 4.0, 2.0},
     381              new[] { 4.0, 4.0}}
    369382        );
    370383    }
     
    384397      ISymbolicExpressionTree tree = importer.Import(expr);
    385398
    386       var allPrognosis = interpreter.GetSymbolicExpressionTreeValues(tree, ds, targetVariables, rows, horizon);
     399      var allPrognosis = interpreter.GetSymbolicExpressionTreeValues(tree, ds, targetVariables, rows, horizon).GetEnumerator();
    387400      int i = 0;
    388       foreach (var actual in allPrognosis) {
    389         var actualEnumerator = actual.GetEnumerator();
    390         var expectedEnumerator = expected[i].GetEnumerator();
    391         while (actualEnumerator.MoveNext() & expectedEnumerator.MoveNext()) {
    392           var aEnumerator = actualEnumerator.Current.GetEnumerator();
     401      var expectedEnumerator = expected[i].GetEnumerator();
     402      while (allPrognosis.MoveNext()) {
     403        while (expectedEnumerator.MoveNext()) {
    393404          var eEnumerator = expectedEnumerator.Current.GetEnumerator();
    394           while (aEnumerator.MoveNext() & eEnumerator.MoveNext()) {
    395             Assert.IsFalse(double.IsNaN(aEnumerator.Current) && !double.IsNaN(eEnumerator.Current));
    396             Assert.IsFalse(!double.IsNaN(aEnumerator.Current) && double.IsNaN(eEnumerator.Current));
    397             Assert.AreEqual(eEnumerator.Current, aEnumerator.Current, 1.0E-12, expr);
     405          while (eEnumerator.MoveNext()) {
     406            Assert.IsFalse(double.IsNaN(allPrognosis.Current) && !double.IsNaN(eEnumerator.Current));
     407            Assert.IsFalse(!double.IsNaN(allPrognosis.Current) && double.IsNaN(eEnumerator.Current));
     408            Assert.AreEqual(eEnumerator.Current, allPrognosis.Current, 1.0E-12, expr);
     409            allPrognosis.MoveNext();
    398410          }
    399411        }
Note: See TracChangeset for help on using the changeset viewer.