Parse() public method

public Parse ( string input ) : double
input string
return double
Exemplo n.º 1
0
        public override CompileResult Execute(IEnumerable <FunctionArgument> arguments, ParsingContext context)
        {
            ValidateArguments(arguments, 1);
            var firstArg = arguments.ElementAt(0).Value.ToString();

            if (arguments.Count() == 1 && TimeStringParser.CanParse(firstArg))
            {
                var result = TimeStringParser.Parse(firstArg);
                return(CreateResult(GetMinuteFromSerialNumber(result), DataType.Integer));
            }
            ValidateAndInitSerialNumber(arguments);
            return(CreateResult(GetMinuteFromSerialNumber(SerialNumber), DataType.Integer));
        }
Exemplo n.º 2
0
        public override CompileResult Execute(IEnumerable <FunctionArgument> arguments, ParsingContext context)
        {
            ValidateArguments(arguments, 1);
            var firstArg = arguments.ElementAt(0).Value.ToString();

            if (arguments.Count() == 1 && TimeStringParser.CanParse(firstArg))
            {
                var result = TimeStringParser.Parse(firstArg);
                return(new CompileResult(result, DataType.Time));
            }
            ValidateArguments(arguments, 3);
            var hour = ArgToInt(arguments, 0);
            var min  = ArgToInt(arguments, 1);
            var sec  = ArgToInt(arguments, 2);

            ThrowArgumentExceptionIf(() => sec < 0 || sec > 59, "Invalid second: " + sec);
            ThrowArgumentExceptionIf(() => min < 0 || min > 59, "Invalid minute: " + min);
            ThrowArgumentExceptionIf(() => min < 0 || hour > 23, "Invalid hour: " + hour);


            var secondsOfThisTime = (double)(hour * 60 * 60 + min * 60 + sec);

            return(CreateResult(GetTimeSerialNumber(secondsOfThisTime), DataType.Time));
        }
 public void ParseShouldThrowExceptionIfSecondIsOutOfRange()
 {
     var parser = new TimeStringParser();
     var result = parser.Parse("10:12:60");
 }
 public void ParseShouldThrowExceptionIfMinuteIsOutOfRange()
 {
     var parser = new TimeStringParser();
     var result = parser.Parse("10:60:55");
 }
 public void ParseShouldIdentifyPatternAndReturnCorrectResult()
 {
     var parser = new TimeStringParser();
     var result = parser.Parse("10:12:55");
     Assert.AreEqual(GetSerialNumber(10, 12, 55), result);
 }