public void ItShouldGet30FromRule() { const string text = "( {0} / {1} ) + ({2} * 1)"; var rule = new RuleTree <int, int>(text); var parameters = new List <IMonthlyParameter <int> > { SetDictionary("0", 125), SetDictionary("1", 5), SetDictionary("2", 5) }; rule.SetParameters(parameters); Assert.AreEqual(30, rule.GetResult().Value[Month.August]); }
public void ItShouldParseComplexOperations() { const string text = "( {0} / 25 ) * 14"; var rule = new RuleTree <int, int>(text); var parameters = new List <IMonthlyParameter <int> > { SetDictionary("0", 250) }; rule.SetParameters(parameters); Assert.AreEqual(140, rule.GetResult().Value[Month.February]); }
public void ItShouldGet15FromRule() { const string text = "( {0} + {1} ) * ( {2} * 1 )"; var rule = new RuleTree <int, int>(text); var parameters = new List <IMonthlyParameter <int> > { SetDictionary("0", 4), SetDictionary("1", 1), SetDictionary("2", 3) }; rule.SetParameters(parameters); Assert.AreEqual(15, rule.GetResult().Value[Month.February]); }
public void ItShouldAddValues() { var i = new Mock <IRule <int, int> >(); var j = new Mock <IRule <int, int> >(); i.Setup(x => x.GetResult()).Returns(SetDictionary("1", 1)); j.Setup(x => x.GetResult()).Returns(SetDictionary("2", 2)); var operation = new Mock <IOperation>(); operation.Setup(x => x.GetOperator()).Returns(ExpressionType.Add); var rule = new RuleTree <int, int> { I = i.Object, J = j.Object, Operation = operation.Object }; Assert.AreEqual(3, rule.GetResult().Value[Month.November]); }