Beispiel #1
0
        [Test] // improve: either?
        public void Problem1_AddAllNaturalNumbersBelow1000_ThatAreMultiplesOf3Or5()
        {
            var code   = "(1..1000).Where(x => (x mod 3 == 0) or (x mod 5 == 0)).Sum()";
            var result = CompilationHelper.CompileAndEvaluate(code);

            Assert.AreEqual(new Integer(233168), result);
        }
Beispiel #2
0
        public void BigInteger()
        {
            const string bigIntegerString = "1000000000000000000000000000000000000000";
            var          value            = CompilationHelper.CompileAndEvaluate(bigIntegerString);

            Assert.AreEqual(Framework.Integer.Parse(bigIntegerString), value);
        }
Beispiel #3
0
        public void SimpleInteger(string expressionString, int expectedFrom, int expectedTo)
        {
            var compiled = CompilationHelper.CompileAndEvaluate(expressionString);

            Assert.AreElementsEqual(
                Enumerable.Range(expectedFrom, expectedTo - expectedFrom).Select(x => new Integer(x)),
                compiled
                );
        }
Beispiel #4
0
        public void Simple(string valueString, object expectedValue)
        {
            var value = CompilationHelper.CompileAndEvaluate(valueString);

            Assert.AreEqual(TestArgumentConverter.Convert(expectedValue), value);
        }
Beispiel #5
0
        public void Integer(string expressionString, int expectedValue)
        {
            var compiled = CompilationHelper.CompileAndEvaluate(expressionString);

            Assert.AreEqual(new Integer(expectedValue), compiled);
        }
Beispiel #6
0
        public void SimpleConstants(string expressionString, object expectedValue)
        {
            var compiled = CompilationHelper.CompileAndEvaluate(expressionString);

            Assert.AreEqual(expectedValue, compiled);
        }
Beispiel #7
0
        public void NewExternalObjectWithArguments()
        {
            var result = CompilationHelper.CompileAndEvaluate("new Version('1.1.1.1')");

            Assert.AreEqual(new Version("1.1.1.1"), result);
        }
Beispiel #8
0
        public void NewExternalObjectWithNoArguments()
        {
            var result = CompilationHelper.CompileAndEvaluate("new Random()");

            Assert.IsInstanceOfType <Random>(result);
        }
Beispiel #9
0
        public void LambdaExpression_Identity_InMethodCall(string lambda)
        {
            var result = CompilationHelper.CompileAndEvaluate("TestMethods.AcceptsGenericTToT(7, " + lambda + ")");

            Assert.IsInstanceOfType <Func <Integer, Integer> >(result);
        }
Beispiel #10
0
        public void LambdaExpression_TypedParameter_Condition()
        {
            var result = CompilationHelper.CompileAndEvaluate("(integer x) => x > 5");

            Assert.IsInstanceOfType <Func <Integer, bool> >(result);
        }
Beispiel #11
0
        public void LambdaExpression_TypedParameter_Identity()
        {
            var result = CompilationHelper.CompileAndEvaluate("(integer x) => x");

            Assert.IsInstanceOfType <Func <Integer, Integer> >(result);
        }
Beispiel #12
0
        public void MethodGroup_External_GenericMethod_WithoutOverloads_InMethodCall()
        {
            var result = CompilationHelper.CompileAndEvaluate("TestMethods.AcceptsGenericTToObject(5, TestMethods.GenericTToObject)");

            Assert.IsInstanceOfType <Func <Integer, object> >(result);
        }
Beispiel #13
0
        public void MethodGroup_External_StaticMethod_WithoutOverloads()
        {
            var result = CompilationHelper.CompileAndEvaluate("TimeSpan.FromMinutes");

            Assert.IsInstanceOfType <Func <double, TimeSpan> >(result);
        }
Beispiel #14
0
        public void Simple(string expressionString, object[] expectedValues)
        {
            var compiled = ((Array)CompilationHelper.CompileAndEvaluate(expressionString)).Cast <object>().ToArray();

            Assert.AreElementsEqual(TestArgumentConverter.Convert(expectedValues), compiled);
        }
Beispiel #15
0
        public void MathPow(double x, double y)
        {
            var result = CompilationHelper.CompileAndEvaluate(string.Format("Math.Pow(({0:0.00}).ToDouble(), ({1:0.00}).ToDouble())", x, y));

            Assert.AreEqual(Math.Pow(10, 10), result);
        }
Beispiel #16
0
        public void LambdaExpression_Condition_InMethodCall(string lambda)
        {
            var result = CompilationHelper.CompileAndEvaluate("[1, 2, 3, 4, 5].Where(" + lambda + ")");

            Assert.AreElementsEqual(new[] { new Integer(4), new Integer(5) }, result);
        }
Beispiel #17
0
        public void ExternalExtensionMethodWithNoOtherArguments()
        {
            var result = CompilationHelper.CompileAndEvaluate("[1,1,1,2].Distinct()");

            Assert.AreElementsEqualIgnoringOrder(new[] { new Integer(1), new Integer(2) }, result);
        }
Beispiel #18
0
        public void ExternalObjectInstanceProperty()
        {
            var result = CompilationHelper.CompileAndEvaluate("'abc'.Length");

            Assert.AreEqual(3, result);
        }