- Timestamp:
- 03/13/19 23:55:38 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2994-AutoDiffForIntervals/Tests/AutoDiffTest.cs
r16674 r16682 11 11 public class AutoDiffTest { 12 12 [TestMethod] 13 public void Test Method1() {13 public void Test() { 14 14 { 15 // eval 15 16 var parser = new InfixExpressionParser(); 16 17 var t = parser.Parse("2.0*x+y"); 17 18 19 // interval eval 18 20 var evaluator = new IntervalEvaluator(); 19 var intervals = new Dictionary<string, AlgebraicInterval>();20 intervals.Add("x", new AlgebraicInterval(-1.0, 1.0));21 intervals.Add("y", new AlgebraicInterval(2.0, 10.0));21 var intervals = new Dictionary<string, Interval>(); 22 intervals.Add("x", new Interval(-1.0, 1.0)); 23 intervals.Add("y", new Interval(2.0, 10.0)); 22 24 var resultInterval = evaluator.Evaluate(t, intervals); 23 25 Assert.AreEqual(0, resultInterval.LowerBound); … … 26 28 27 29 { 30 // vector eval 28 31 var parser = new InfixExpressionParser(); 29 32 var t = parser.Parse("2.0*x+y"); … … 54 57 55 58 { 59 // vector eval and auto-diff 56 60 var parser = new InfixExpressionParser(); 57 61 var t = parser.Parse("2.0*x+y"); … … 98 102 } 99 103 104 { 105 // interval eval and auto-diff 106 var parser = new InfixExpressionParser(); 107 var t = parser.Parse("2.0*x+y"); 108 var p0 = t.IterateNodesPostfix().First(n => n is ConstantTreeNode); 109 var p1 = t.IterateNodesPostfix().First(n => (n is VariableTreeNode var) && var.VariableName == "y"); 110 var paramNodes = new ISymbolicExpressionTreeNode[] { p0, p1 }; 111 112 var evaluator = new IntervalEvaluator(); 113 var intervals = new Dictionary<string, Interval>(); 114 intervals.Add("x", new Interval(-1.0, 1.0)); 115 intervals.Add("y", new Interval(2.0, 10.0)); 116 var resultInterval = evaluator.Evaluate(t, intervals, paramNodes, out double[] lowerGradient, out double[] upperGradient); 117 Assert.AreEqual(0, resultInterval.LowerBound); 118 Assert.AreEqual(12, resultInterval.UpperBound); 119 120 Assert.AreEqual(-1, lowerGradient[0]); 121 Assert.AreEqual(2, lowerGradient[1]); 122 Assert.AreEqual(1, upperGradient[0]); 123 Assert.AreEqual(10, upperGradient[1]); 124 } 125 100 126 } 101 127 }
Note: See TracChangeset
for help on using the changeset viewer.