Пример #1
0
        public Physical(string value)
        {
            Value = value;
            var rgx = new Regex(PHYSICAL_PATTERN);

            if (!rgx.Match(value).Success)
            {
                throw new Exception(string.Format("Invalid Physical Expression - {0}", value));
            }
            if (value.Contains(" to ") && !value.Contains("range"))
            {
                throw new Exception(string.Format("Invalid Physical Range - {0}, please prefix a range of values with \"range \"", value));
            }
            string remainder = value;
            string word      = NextWord(remainder, out remainder);

            while (!string.IsNullOrWhiteSpace(word))
            {
                if (IsNumericExpression(word) || IsQualifier(word))
                {
                    _magnitude = new QualifiedQuantity(word + " " + remainder, out remainder);
                    AddQuantity(_magnitude);
                }
                else if (IsRange(word))
                {
                    var range = new RangingInformation(remainder, out remainder,
                                                       _magnitude == null ? 0d : _magnitude.Magnitude);
                    Ranges.Add(range);
                }
                else if (IsErrorLimit(word))
                {
                    ErrorLimits.Add(new ErrorLimit(remainder, out remainder));
                }
                else if (IsResolution(word))
                {
                    Resolutions.Add(new Quantity(remainder, out remainder));
                }
                else if (IsConfidence(word))
                {
                }
                else if (IsLoad(word))
                {
                }
                word = NextWord(remainder, out remainder);
            }
        }
Пример #2
0
 public void AddQuantity(QualifiedQuantity quantity)
 {
     Quantities.Add(quantity);
 }
Пример #3
0
 public Physical(string value)
 {
     Value = value;
     var rgx = new Regex(PHYSICAL_PATTERN);
     if (!rgx.Match(value).Success)
         throw new Exception(string.Format("Invalid Physical Expression - {0}", value));
     if( value.Contains( " to " ) && !value.Contains( "range" ))
         throw new Exception(string.Format("Invalid Physical Range - {0}, please prefix a range of values with \"range \"", value));
     string remainder = value;
     string word = NextWord(remainder, out remainder);
     while (!string.IsNullOrWhiteSpace(word))
     {
         if (IsNumericExpression(word) || IsQualifier(word))
         {
             _magnitude = new QualifiedQuantity(word + " " + remainder, out remainder);
             AddQuantity(_magnitude);
         }
         else if (IsRange(word))
         {
             var range = new RangingInformation(remainder, out remainder,
                 _magnitude == null ? 0d : _magnitude.Magnitude);
             Ranges.Add(range);
         }
         else if (IsErrorLimit(word))
         {
             ErrorLimits.Add(new ErrorLimit(remainder, out remainder));
         }
         else if (IsResolution(word))
         {
             Resolutions.Add(new Quantity(remainder, out remainder));
         }
         else if (IsConfidence(word))
         {
         }
         else if (IsLoad(word))
         {
         }
         word = NextWord(remainder, out remainder);
     }
 }
Пример #4
0
 public void AddQuantity(QualifiedQuantity quantity)
 {
     Quantities.Add(quantity);
 }