Example #1
0
 private static RegularExpressionRule MakeDigitsRule(DigitsAttribute att)
 {
     if (att == null) throw new ArgumentNullException("att");
     string pattern;
     if (att.FractionalDigits < 1)
         pattern = string.Format(@"\d{{0,{0}}}", att.IntegerDigits);
     else
         pattern = string.Format(@"\d{{0,{0}}}(\.\d{{1,{1}}})?", att.IntegerDigits, att.FractionalDigits);
     return new RegularExpressionRule(pattern);
 }
Example #2
0
        public void IsValid()
        {
            var v = new DigitsAttribute(3);
            Assert.IsTrue(v.IsValid(0, null));
            Assert.IsTrue(v.IsValid(9, null));
            Assert.IsTrue(v.IsValid(99, null));
            Assert.IsTrue(v.IsValid(99.0, null));
            Assert.IsTrue(v.IsValid(null, null));
            Assert.IsTrue(v.IsValid("22", null));
            Assert.IsTrue(v.IsValid(103, null));
            Assert.IsTrue(v.IsValid(01, null));

            Assert.IsFalse(v.IsValid(1000, null));
            Assert.IsFalse(v.IsValid(10.1, null));
            Assert.IsFalse(v.IsValid(new object(), null));
            Assert.IsFalse(v.IsValid("aa.bb", null));

            v= new DigitsAttribute(3, 2);
            Assert.IsTrue(v.IsValid(0, null));
            Assert.IsTrue(v.IsValid(1, null));
            Assert.IsTrue(v.IsValid(100.100, null));
            Assert.IsTrue(v.IsValid(99.99, null));

            Assert.IsFalse(v.IsValid(1000.0, null));
            Assert.IsFalse(v.IsValid(9.233, null));
            Assert.IsFalse(v.IsValid("1233", null));

            v= new DigitsAttribute(0, 2);
            Assert.IsTrue(v.IsValid(0, null));
            Assert.IsTrue(v.IsValid(0.12, null));
            Assert.IsTrue(v.IsValid(0.1, null));
            Assert.IsTrue(v.IsValid(0.00000000000, null));

            Assert.IsFalse(v.IsValid(1.12, null));
            Assert.IsFalse(v.IsValid(0.123, null));
        }
Example #3
0
        private static Attribute ConvertToDigits(XmlNhvmRuleConverterArgs rule)
        {
            NhvmDigits digitsRule = (NhvmDigits)rule.schemaRule;

            int fractionalDigits = 0;

            if (digitsRule.fractionalDigitsSpecified)
                fractionalDigits = digitsRule.fractionalDigits;

            int intDigits = digitsRule.integerDigits;

            DigitsAttribute thisAttribute = new DigitsAttribute(digitsRule.integerDigits, digitsRule.fractionalDigits);
            log.Info(string.Format("Converting to Digits attribute with integer digits {0}, fractional digits {1}", intDigits, fractionalDigits));

            if (digitsRule.message != null)
            {
                thisAttribute.Message = digitsRule.message;
            }
            AssignTagsFromString(thisAttribute, digitsRule.tags);

            return thisAttribute;
        }