| using System; |
| using System.Text; |
| using System.Collections.Generic; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml.FormulaParsing.ExpressionGraph; |
| using OfficeOpenXml.FormulaParsing.Excel.Operators; |
| |
| namespace EPPlusTest.FormulaParsing.ExpressionGraph |
| { |
| [TestClass] |
| public class IntegerExpressionTests |
| { |
| [TestMethod] |
| public void MergeWithNextWithPlusOperatorShouldCalulateSumCorrectly() |
| { |
| var exp1 = new IntegerExpression("1"); |
| exp1.Operator = Operator.Plus; |
| var exp2 = new IntegerExpression("2"); |
| exp1.Next = exp2; |
| |
| var result = exp1.MergeWithNext(); |
| |
| Assert.AreEqual(3d, result.Compile().Result); |
| } |
| |
| [TestMethod] |
| public void MergeWithNextWithPlusOperatorShouldSetNextPointer() |
| { |
| var exp1 = new IntegerExpression("1"); |
| exp1.Operator = Operator.Plus; |
| var exp2 = new IntegerExpression("2"); |
| exp1.Next = exp2; |
| |
| var result = exp1.MergeWithNext(); |
| |
| Assert.IsNull(result.Next); |
| } |
| |
| //[TestMethod] |
| //public void CompileShouldHandlePercent() |
| //{ |
| // var exp1 = new IntegerExpression("1"); |
| // exp1.Operator = Operator.Percent; |
| // exp1.Next = ConstantExpressions.Percent; |
| // var result = exp1.Compile(); |
| // Assert.AreEqual(0.01, result.Result); |
| // Assert.AreEqual(DataType.Decimal, result.DataType); |
| //} |
| } |
| } |