Changeset 16829 for branches/2994-AutoDiffForIntervals/HeuristicLab.Tests
- Timestamp:
- 04/19/19 09:09:45 (5 years ago)
- Location:
- branches/2994-AutoDiffForIntervals
- Files:
-
- 4 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/2994-AutoDiffForIntervals
- Property svn:mergeinfo changed
/trunk merged: 16740,16743,16757-16758,16762-16764,16768-16769,16779,16782-16784,16788,16792,16794-16799,16802,16819-16822
- Property svn:mergeinfo changed
-
branches/2994-AutoDiffForIntervals/HeuristicLab.Tests
- Property svn:mergeinfo changed
/trunk/HeuristicLab.Tests merged: 16743,16757-16758,16769,16820-16821
- Property svn:mergeinfo changed
-
branches/2994-AutoDiffForIntervals/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/IntervalInterpreterTest.cs
r16422 r16829 34 34 } 35 35 36 private void EvaluateTest(string expression, Interval expectedResult, Dictionary<string, Interval> variableRanges = null ) {36 private void EvaluateTest(string expression, Interval expectedResult, Dictionary<string, Interval> variableRanges = null, double lowerDelta =0, double upperDelta = 0) { 37 37 var parser = new InfixExpressionParser(); 38 38 var tree = parser.Parse(expression); … … 40 40 Interval result; 41 41 if (variableRanges == null) 42 result = interpreter.GetSymbolicEx ressionTreeInterval(tree, problemData.Dataset, problemData.AllIndices);42 result = interpreter.GetSymbolicExpressionTreeInterval(tree, problemData.Dataset, problemData.AllIndices); 43 43 else 44 result = interpreter.GetSymbolicEx ressionTreeInterval(tree, variableRanges);44 result = interpreter.GetSymbolicExpressionTreeInterval(tree, variableRanges); 45 45 46 Assert.AreEqual(expectedResult, result); 46 Assert.AreEqual(expectedResult.LowerBound, result.LowerBound, lowerDelta); 47 Assert.AreEqual(expectedResult.UpperBound, result.UpperBound, upperDelta); 47 48 } 48 49 … … 79 80 EvaluateTest("sin(x1+x2)", new Interval(-1, 1), variableRanges); 80 81 EvaluateTest("sin(1+2)", new Interval(Math.Sin(3), Math.Sin(3))); 82 83 var localVarRanges = new Dictionary<string, Interval>(); 84 localVarRanges.Add("x1", new Interval(-1, 1)); 85 localVarRanges.Add("x2", new Interval(-(Math.PI / 2), 0)); 86 localVarRanges.Add("x3", new Interval(0, Math.PI / 2)); 87 localVarRanges.Add("x4", new Interval(-Math.PI, Math.PI)); 88 localVarRanges.Add("x5", new Interval(Math.PI/4, Math.PI*3.0/4)); 89 90 EvaluateTest("sin(x1)", new Interval(Math.Sin(-1), Math.Sin(1)), localVarRanges, 1E-8, 1E-8); 91 EvaluateTest("sin(x2)", new Interval(-1, 0), localVarRanges, 1E-8, 1E-8); 92 EvaluateTest("sin(x3)", new Interval(0, 1), localVarRanges, 1E-8, 1E-8); 93 EvaluateTest("sin(x4)", new Interval(-1, 1), localVarRanges, 1E-8, 1E-8); 94 EvaluateTest("sin(x5)", new Interval(Math.Sin(Math.PI/4), 1), localVarRanges, 1E-8, 1E-8); 81 95 } 82 96 … … 87 101 EvaluateTest("cos(x1+x2)", new Interval(-1, 1)); 88 102 EvaluateTest("cos(x1+x2)", new Interval(-1, 1), variableRanges); 89 EvaluateTest("cos(1+2)", new Interval(Math.Sin(3 - Math.PI / 2), Math.Sin(3 - Math.PI / 2))); 103 EvaluateTest("cos(1+2)", new Interval(Math.Sin(3 + Math.PI / 2), Math.Sin(3 + Math.PI / 2))); 104 105 var localVarRanges = new Dictionary<string, Interval>(); 106 localVarRanges.Add("x1", new Interval(-1, 1)); 107 localVarRanges.Add("x2", new Interval(-(Math.PI / 2), 0)); 108 localVarRanges.Add("x3", new Interval(0, Math.PI / 2)); 109 localVarRanges.Add("x4", new Interval(-Math.PI, Math.PI)); 110 localVarRanges.Add("x5", new Interval(Math.PI / 4, Math.PI * 3.0 / 4)); 111 112 EvaluateTest("cos(x1)", new Interval(Math.Cos(-1), 1), localVarRanges, 1E-8, 1E-8); 113 EvaluateTest("cos(x2)", new Interval(0, 1), localVarRanges, 1E-8, 1E-8); 114 EvaluateTest("cos(x3)", new Interval(0, 1), localVarRanges, 1E-8, 1E-8); 115 EvaluateTest("cos(x4)", new Interval(-1, 1), localVarRanges, 1E-8, 1E-8); 116 EvaluateTest("cos(x5)", new Interval(Math.Cos(Math.PI *3.0/ 4), Math.Cos(Math.PI/ 4)), localVarRanges, 1E-8, 1E-8); 117 90 118 } 119 120 [TestMethod] 121 [TestCategory("Problems.DataAnalysis.Symbolic")] 122 [TestProperty("Time", "short")] 123 public void TestIntervalInterpreterTan() { 124 // critical values: 125 // lim tan(x) = -inf for x => -pi/2 126 // lim tan(x) = +inf for x => pi/2 127 var variableRanges = new Dictionary<string, Interval>(); 128 variableRanges.Add("x1", new Interval(-1, 1)); 129 variableRanges.Add("x2", new Interval(-(Math.PI / 2), 0)); 130 variableRanges.Add("x3", new Interval(0, Math.PI / 2)); 131 variableRanges.Add("x4", new Interval(-Math.PI, Math.PI)); 132 133 EvaluateTest("tan(x1)", new Interval(Math.Tan(-1), Math.Tan(1)), variableRanges, 1E-8, 1E-8); 134 EvaluateTest("tan(x2)", new Interval(double.NegativeInfinity, 0), variableRanges, 0, 1E-8); 135 EvaluateTest("tan(x3)", new Interval(0, 8.16588936419192E+15), variableRanges, 0, 1E6); // actually upper bound should be infinity. 136 EvaluateTest("tan(x4)", new Interval(double.NegativeInfinity, double.PositiveInfinity), variableRanges); 137 } 138 139 [TestMethod] 140 [TestCategory("Problems.DataAnalysis.Symbolic")] 141 [TestProperty("Time", "short")] 142 public void TestIntervalInterpreterTanh() { 143 // critical values: 144 // lim tanh(x) = -1 for x => -inf 145 // lim tanh(x) = 1 for x => inf 146 var variableRanges = new Dictionary<string, Interval>(); 147 variableRanges.Add("x1", new Interval(-1, 1)); 148 variableRanges.Add("x2", new Interval(double.NegativeInfinity, 0)); 149 variableRanges.Add("x3", new Interval(0, double.PositiveInfinity)); 150 151 EvaluateTest("tanh(x1)", new Interval(Math.Tanh(-1), Math.Tanh(1)), variableRanges); 152 EvaluateTest("tanh(x2)", new Interval(-1, 0), variableRanges); 153 EvaluateTest("tanh(x3)", new Interval(0, 1), variableRanges); 154 } 155 91 156 92 157 [TestMethod] -
branches/2994-AutoDiffForIntervals/HeuristicLab.Tests/HeuristicLab.Tests.csproj
r16739 r16829 591 591 <Compile Include="HeuristicLab.PluginInfraStructure-3.3\TypeExtensionsTest.cs" /> 592 592 <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\ClassificationVariableImpactCalculationTest.cs" /> 593 <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\DatasetTest.cs" /> 593 594 <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\IntervalTest.cs" /> 594 595 <Compile Include="HeuristicLab.Problems.DataAnalysis-3.4\RegressionVariableImpactCalculationTest.cs" />
Note: See TracChangeset
for help on using the changeset viewer.