Esempio n. 1
0
        public void TestParseExponent(string input, int[]?integerRanges, double[]?decimalRanges)
        {
            var rule = new CldrParser(input).ParseRule();

            Assert.IsNotNull(rule);
            Assert.IsNotNull(rule.Samples);
            if (integerRanges != null)
            {
                for (var index = 0; index < integerRanges.Length; index++)
                {
                    var expected = integerRanges[index];
                    var ruleStr  = rule.Samples?.IntegerSamples[index].Lower.Value;
                    var dec      = Double.Parse(ruleStr !);
                    Assert.AreEqual(expected, Convert.ToInt32(dec));
                }
            }

            if (decimalRanges != null)
            {
                for (var index = 0; index < decimalRanges.Length; index++)
                {
                    var expected = decimalRanges[index];
                    var ruleStr  = rule.Samples?.DecimalSamples[index].Lower.Value;
                    var actual   = Double.Parse(ruleStr !);
                    Assert.AreEqual(expected, actual);
                }
            }
        }
Esempio n. 2
0
        public void BasicParseRule(string input, Operand expOperand, string?modulus, Op expOp,
                                   string[] expRangeList)
        {
            var rule = new CldrParser(input).ParseRule();

            Assert.IsNotNull(rule);
            var relation = rule.Condition.Conditions[0].Relations[0];

            Assert.AreEqual(expOperand, relation.Expr.Operand);

            if (modulus != null)
            {
                Assert.AreEqual(new DecimalValue(modulus), relation.Expr.Modulus);
            }
            else
            {
                Assert.IsNull(relation.Expr.Modulus);
            }

            Assert.AreEqual(expOp, relation.Op);
            for (var i = 0; i < expRangeList.Length; i++)
            {
                Assert.AreEqual(expRangeList[i], relation.RangeListItems[i].ToString());
            }
        }
Esempio n. 3
0
        public void ParseEmpty()
        {
            var rule = new CldrParser("").ParseRule();

            Assert.IsNotNull(rule);
            Assert.IsEmpty(rule.Condition.Conditions);
            Assert.IsNull(rule.Samples);
        }
Esempio n. 4
0
        public void ParseCondition()
        {
            var rule = new CldrParser("i = 0 or n = 1 and f = 0 ").ParseRule();

            Assert.IsNotNull(rule.Condition);
            Assert.AreEqual(2, rule.Condition.Conditions.Count);
            Assert.AreEqual(1, rule.Condition.Conditions[0].Relations.Count);
            Assert.AreEqual(2, rule.Condition.Conditions[1].Relations.Count);
        }
Esempio n. 5
0
        public void ParseSamples(string input, string[] expIntRangeList, string[] expDecRangeList)
        {
            var rule = new CldrParser(input).ParseRule();

            Assert.IsNotNull(rule.Samples);
            for (var i = 0; i < expIntRangeList.Length; i++)
            {
                Assert.AreEqual(expIntRangeList[i], rule.Samples?.IntegerSamples[i].ToString());
            }

            for (var i = 0; i < expDecRangeList.Length; i++)
            {
                Assert.AreEqual(expDecRangeList[i], rule.Samples?.DecimalSamples[i].ToString());
            }
        }