Exemplo n.º 1
0
        public void TestDefinition()
        {
            var def = new LengthFunction();

            Assert.That(def.Name.Name, Is.EqualTo("length"));
            Assert.That(def.Parameters.Count, Is.EqualTo(1));
            Assert.That(def.Parameters.ElementAt(0).Name, Is.EqualTo("object"));
        }
Exemplo n.º 2
0
        private int Evaluate(string input, InterpreterScope scope, string expectedError = null)
        {
            var funcDef = new LengthFunction();

            var expression = ExpressionBase.Parse(new PositionalTokenizer(Tokenizer.CreateTokenizer(input)));

            Assert.That(expression, Is.InstanceOf <FunctionCallExpression>());
            var funcCall = (FunctionCallExpression)expression;

            ExpressionBase error;
            var            parameterScope = funcCall.GetParameters(funcDef, scope, out error);

            if (expectedError == null)
            {
                Assert.That(error, Is.Null);

                ExpressionBase result;
                Assert.That(funcDef.Evaluate(parameterScope, out result), Is.True);
                Assert.That(result, Is.InstanceOf <IntegerConstantExpression>());
                return(((IntegerConstantExpression)result).Value);
            }
            else
            {
                if (error == null)
                {
                    Assert.That(funcDef.Evaluate(parameterScope, out error), Is.False);
                }

                Assert.That(error, Is.InstanceOf <ParseErrorExpression>());

                var parseError = (ParseErrorExpression)error;
                while (parseError.InnerError != null)
                {
                    parseError = parseError.InnerError;
                }
                Assert.That(parseError.Message, Is.EqualTo(expectedError));

                return(int.MinValue);
            }
        }
Exemplo n.º 3
0
        public static void RegisterAll()
        {
            BreakExpression.Register();
            ContinueExpression.Register();
            ReturnFunctionExpression.Register();
            AbsFunction.Register();
            ExecuteFile.Register();
            PowFunction.Register();
            ProductFunction.Register();
            HelpFunction.Register();
            SqrtFunction.Register();
            SumDeepFunction.Register();
            SumFunction.Register();
            LengthFunction.Register();

            ConsoleObject.Register();
            TrigonometryObject.Register();
            ThisConstant.Register();

            BooleanValue.Register();
            ComplexValue.Register();
            DecimalValue.Register();
            NullValue.Register();
        }
Exemplo n.º 4
0
 public ScaleLengthManager(SILayout layout) : base(layout)
 {
     _LengthCalculationMethod = LengthFunction.AlongString;
 }
Exemplo n.º 5
0
        public void TestStringLength()
        {
            var function = new LengthFunction();

            Assert.That(function.Evaluate("aaa"), Is.EqualTo(3));
        }
Exemplo n.º 6
0
        public void TestNullLength()
        {
            var function = new LengthFunction();

            Assert.That(function.Evaluate(new object[1]), Is.EqualTo(0));
        }