public void IntParserShouldConvertAStringValueToAnInteger() { var parser = new IntArgumentParser(); var result = parser.Parse("3"); Assert.AreEqual(3, result); }
public override CompileResult Execute(IEnumerable <FunctionArgument> arguments, ParsingContext context) { ValidateArguments(arguments, 2); var items = new List <object>(); for (int x = 0; x < arguments.Count(); x++) { items.Add(arguments.ElementAt(x).ValueFirst); } var chooseIndices = arguments.ElementAt(0).ValueFirst as IEnumerable <FunctionArgument>; if (chooseIndices != null && chooseIndices.Count() > 1) { IntArgumentParser intParser = new IntArgumentParser(); object[] values = chooseIndices.Select(chosenIndex => items[(int)intParser.Parse(chosenIndex.ValueFirst)]).ToArray(); return(CreateResult(values, DataType.Enumerable)); } else { var index = ArgToInt(arguments, 0); var choosedValue = arguments.ElementAt(index).Value; if (choosedValue is IRangeInfo) { return(CreateResult(choosedValue, DataType.Enumerable)); } var factory = new CompileResultFactory(); return(factory.Create(choosedValue)); } }
public void IntParserShouldConvertADoubleToAnInteger() { var parser = new IntArgumentParser(); var result = parser.Parse(3d); Assert.AreEqual(3, result); }
public override CompileResult Execute(IEnumerable <FunctionArgument> arguments, ParsingContext context) { if (this.ArgumentsAreValid(arguments, 2, out eErrorType argumentError) == false) { return(new CompileResult(argumentError)); } var items = new List <object>(); for (int x = 0; x < arguments.Count(); x++) { items.Add(arguments.ElementAt(x).ValueFirst); } var chooseIndeces = arguments.ElementAt(0).ValueFirst as IEnumerable <FunctionArgument>; if (chooseIndeces != null && chooseIndeces.Count() > 1) { IntArgumentParser intParser = new IntArgumentParser(); object[] values = chooseIndeces.Select(chosenIndex => items[(int)intParser.Parse(chosenIndex.ValueFirst)]).ToArray(); return(CreateResult(values, DataType.Enumerable)); } else { var index = ArgToInt(arguments, 0); return(CreateResult(items[index].ToString(), DataType.String)); } }
public void CanParseIntTest() { ArgumentPack pack = new ArgumentPack("1000"); var parser = new IntArgumentParser(); Assert.True(parser.CanParse(pack, typeof(int))); var result = (int)parser.Parse(pack, typeof(int)); Assert.Equal(1000, result); }
public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context) { ValidateArguments(arguments, 2); var items = new List<object>(); for (int x = 0; x < arguments.Count(); x++) { items.Add(arguments.ElementAt(x).ValueFirst); } var chooseIndeces = arguments.ElementAt(0).ValueFirst as IEnumerable<FunctionArgument>; if (chooseIndeces != null && chooseIndeces.Count() > 1) { IntArgumentParser intParser = new IntArgumentParser(); object[] values = chooseIndeces.Select(chosenIndex => items[(int)intParser.Parse(chosenIndex.ValueFirst)]).ToArray(); return CreateResult(values, DataType.Enumerable); } else { var index = ArgToInt(arguments, 0); return CreateResult(items[index].ToString(), DataType.String); } }
public void IntParserShouldThrowIfArgumentIsNull() { var parser = new IntArgumentParser(); parser.Parse(null); }