Exemple #1
0
        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]);
        }
Exemple #2
0
        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]);
        }
Exemple #3
0
        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]);
        }
Exemple #4
0
        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]);
        }