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); } } }
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()); } }
public void ParseEmpty() { var rule = new CldrParser("").ParseRule(); Assert.IsNotNull(rule); Assert.IsEmpty(rule.Condition.Conditions); Assert.IsNull(rule.Samples); }
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); }
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()); } }