ExcelFormulaParser.Engine.Excel.Functions.Logical.Not.Execute C# (CSharp) Method

Execute() public method

public Execute ( IEnumerable arguments, ParsingContext context ) : CompileResult
arguments IEnumerable
context ParsingContext
return ExcelFormulaParser.Engine.ExpressionGraph.CompileResult
        public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
        {
            ValidateArguments(arguments, 1);
            var arg = arguments.ElementAt(0).Value;
            bool result = false;
            if (arg is bool)
            {
                result = !((bool)arg);
            }
            else if (arg is int)
            {
                result = ((int)arg) == 0;
            }
            return new CompileResult(result, DataType.Boolean);
        }

Usage Example

 public void NotShouldReturnFalseIfArgumentIsTrue()
 {
     var func = new Not();
     var args = FunctionsHelper.CreateArgs(true);
     var result = func.Execute(args, _parsingContext);
     Assert.IsFalse((bool)result.Result);
 }