- Timestamp:
- 07/25/13 17:04:27 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.DataAnalysis.Symbolic.LinearInterpreter/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs
r9735 r9758 149 149 [TestMethod] 150 150 public void SymbolicDataAnalysisExpressionTreeInterpreterEvaluateTest() { 151 var interpreter = new SymbolicDataAnalysisExpressionTreeInterpreter(); 151 152 Dataset ds = new Dataset(new string[] { "Y", "A", "B" }, new double[,] { 152 153 { 1.0, 1.0, 1.0 }, … … 164 165 }); 165 166 166 var interpreter = new SymbolicDataAnalysisExpressionTreeInterpreter();167 167 EvaluateTerminals(interpreter, ds); 168 168 EvaluateOperations(interpreter, ds); 169 EvaluateTimeSymbols(interpreter, ds); 169 170 EvaluateAdf(interpreter, ds); 171 } 172 173 [TestMethod] 174 public void SymbolicDataAnalysisExpressionTreeLinearInterpreterEvaluateTest() { 175 var interpreter = new SymbolicDataAnalysisExpressionTreeInterpreter(); 176 Dataset ds = new Dataset(new string[] { "Y", "A", "B" }, new double[,] { 177 { 1.0, 1.0, 1.0 }, 178 { 2.0, 2.0, 2.0 }, 179 { 3.0, 1.0, 2.0 }, 180 { 4.0, 1.0, 1.0 }, 181 { 5.0, 2.0, 2.0 }, 182 { 6.0, 1.0, 2.0 }, 183 { 7.0, 1.0, 1.0 }, 184 { 8.0, 2.0, 2.0 }, 185 { 9.0, 1.0, 2.0 }, 186 { 10.0, 1.0, 1.0 }, 187 { 11.0, 2.0, 2.0 }, 188 { 12.0, 1.0, 2.0 } 189 }); 190 //time symbols and ADFs not supported by the linear interpreter 191 EvaluateTerminals(interpreter, ds); 192 EvaluateOperations(interpreter, ds); 170 193 } 171 194 … … 190 213 EvaluateTerminals(interpreter, ds); 191 214 EvaluateOperations(interpreter, ds); 215 } 216 217 private void EvaluateTimeSymbols(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, Dataset ds) { 218 // integral 219 Evaluate(interpreter, ds, "(integral -1.0 (variable 1.0 a)) ", 1, ds.GetDoubleValue("A", 0) + ds.GetDoubleValue("A", 1)); 220 Evaluate(interpreter, ds, "(integral -1.0 (lagVariable 1.0 a 1)) ", 1, ds.GetDoubleValue("A", 1) + ds.GetDoubleValue("A", 2)); 221 Evaluate(interpreter, ds, "(integral -2.0 (variable 1.0 a)) ", 2, ds.GetDoubleValue("A", 0) + ds.GetDoubleValue("A", 1) + ds.GetDoubleValue("A", 2)); 222 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)); 223 Evaluate(interpreter, ds, "(integral -2.0 3.0)", 1, 9.0); 224 225 // derivative 226 // (f_0 + 2 * f_1 - 2 * f_3 - f_4) / 8; // h = 1 227 Evaluate(interpreter, ds, "(diff (variable 1.0 a)) ", 5, (ds.GetDoubleValue("A", 5) + 2 * ds.GetDoubleValue("A", 4) - 2 * ds.GetDoubleValue("A", 2) - ds.GetDoubleValue("A", 1)) / 8.0); 228 Evaluate(interpreter, ds, "(diff (variable 1.0 b)) ", 5, (ds.GetDoubleValue("B", 5) + 2 * ds.GetDoubleValue("B", 4) - 2 * ds.GetDoubleValue("B", 2) - ds.GetDoubleValue("B", 1)) / 8.0); 229 Evaluate(interpreter, ds, "(diff (* (variable 1.0 a) (variable 1.0 b)))", 5, + 230 (ds.GetDoubleValue("A", 5) * ds.GetDoubleValue("B", 5) + 231 2 * ds.GetDoubleValue("A", 4) * ds.GetDoubleValue("B", 4) - 232 2 * ds.GetDoubleValue("A", 2) * ds.GetDoubleValue("B", 2) - 233 ds.GetDoubleValue("A", 1) * ds.GetDoubleValue("B", 1)) / 8.0); 234 Evaluate(interpreter, ds, "(diff -2.0 3.0)", 5, 0.0); 235 236 // timelag 237 Evaluate(interpreter, ds, "(lag -1.0 (lagVariable 1.0 a 2)) ", 1, ds.GetDoubleValue("A", 2)); 238 Evaluate(interpreter, ds, "(lag -2.0 (lagVariable 1.0 a 2)) ", 2, ds.GetDoubleValue("A", 2)); 239 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)); 240 Evaluate(interpreter, ds, "(lag -2.0 3.0)", 1, 3.0); 192 241 } 193 242 … … 358 407 Evaluate(interpreter, ds, "(lagVariable 1.0 a 1) ", 0, ds.GetDoubleValue("A", 1)); 359 408 360 // integral361 Evaluate(interpreter, ds, "(integral -1.0 (variable 1.0 a)) ", 1, ds.GetDoubleValue("A", 0) + ds.GetDoubleValue("A", 1));362 Evaluate(interpreter, ds, "(integral -1.0 (lagVariable 1.0 a 1)) ", 1, ds.GetDoubleValue("A", 1) + ds.GetDoubleValue("A", 2));363 Evaluate(interpreter, ds, "(integral -2.0 (variable 1.0 a)) ", 2, ds.GetDoubleValue("A", 0) + ds.GetDoubleValue("A", 1) + ds.GetDoubleValue("A", 2));364 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));365 Evaluate(interpreter, ds, "(integral -2.0 3.0)", 1, 9.0);366 367 // derivative368 // (f_0 + 2 * f_1 - 2 * f_3 - f_4) / 8; // h = 1369 Evaluate(interpreter, ds, "(diff (variable 1.0 a)) ", 5, (ds.GetDoubleValue("A", 5) + 2 * ds.GetDoubleValue("A", 4) - 2 * ds.GetDoubleValue("A", 2) - ds.GetDoubleValue("A", 1)) / 8.0);370 Evaluate(interpreter, ds, "(diff (variable 1.0 b)) ", 5, (ds.GetDoubleValue("B", 5) + 2 * ds.GetDoubleValue("B", 4) - 2 * ds.GetDoubleValue("B", 2) - ds.GetDoubleValue("B", 1)) / 8.0);371 Evaluate(interpreter, ds, "(diff (* (variable 1.0 a) (variable 1.0 b)))", 5, +372 (ds.GetDoubleValue("A", 5) * ds.GetDoubleValue("B", 5) +373 2 * ds.GetDoubleValue("A", 4) * ds.GetDoubleValue("B", 4) -374 2 * ds.GetDoubleValue("A", 2) * ds.GetDoubleValue("B", 2) -375 ds.GetDoubleValue("A", 1) * ds.GetDoubleValue("B", 1)) / 8.0);376 Evaluate(interpreter, ds, "(diff -2.0 3.0)", 5, 0.0);377 378 // timelag379 Evaluate(interpreter, ds, "(lag -1.0 (lagVariable 1.0 a 2)) ", 1, ds.GetDoubleValue("A", 2));380 Evaluate(interpreter, ds, "(lag -2.0 (lagVariable 1.0 a 2)) ", 2, ds.GetDoubleValue("A", 2));381 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));382 Evaluate(interpreter, ds, "(lag -2.0 3.0)", 1, 3.0);383 384 409 { 385 410 // special functions … … 434 459 Evaluate(interpreter, ds, "(expint " + x + ")", 0, alglib.exponentialintegralei(x)); 435 460 }; 436 437 438 461 439 462 foreach (var e in new[] { -2.0, -1.0, 0.0, 1.0, 2.0 }) {
Note: See TracChangeset
for help on using the changeset viewer.