public void EmbeddedTest001()
        {
            String code =
            @"x;[Associative]
            {
            x = 0;
            [Imperative]
            {
            x = x + 5;
            }
            }
            ";

                ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
                ExecutionMirror mirror = fsr.Execute(code, core, out compileState);

                Obj o = mirror.GetValue("x");
                Assert.IsTrue((Int64)o.Payload == 5);
        }

        [Test]
        public void EmbeddedTest002()
        {
            String code =
            @"
Esempio n. 2
0
            ExecutionMirror mirror = fsr.Execute(
                        @"
a;
                        [Associative]
                        {
                            a = 
                                {
Esempio n. 3
0
        public void GetUpcastChainTest()
        {
            String code =
@"class A {}
class B extends A {}
class C extends B {}
";
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);
            int idA = core.ClassTable.IndexOf("A");
            int idB = core.ClassTable.IndexOf("B");
            int idC = core.ClassTable.IndexOf("C");
            ClassNode cnA = core.ClassTable.ClassNodes[idA];
            ClassNode cnB = core.ClassTable.ClassNodes[idB];
            ClassNode cnC = core.ClassTable.ClassNodes[idC];
            List<int> idsA = ClassUtils.GetClassUpcastChain(cnA, core);
            List<int> idsB = ClassUtils.GetClassUpcastChain(cnB, core);
            List<int> idsC = ClassUtils.GetClassUpcastChain(cnC, core);
            Assert.IsTrue(idsA.Count == 2);
            Assert.IsTrue(idsA.Contains(idA));

            Assert.IsTrue(idsB.Count == 3);
            Assert.IsTrue(idsB.Contains(idA));
            Assert.IsTrue(idsB.Contains(idB));
            Assert.IsTrue(idsC.Count == 4);
            Assert.IsTrue(idsC.Contains(idA));
Esempio n. 4
0
        public void TestClassUsageInImpeartive()
        {
            ProtoCore.Core core = new ProtoCore.Core(new ProtoCore.Options());
            core.Executives.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Executive(core));
            core.Executives.Add(ProtoCore.Language.kImperative, new ProtoImperative.Executive(core));
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(
            @"
            class foo
            {
            m : var;
            constructor Create(a1 : int)
            {
            m = a1;
            }
            }
            x;y;
            [Imperative]
            {
            p = foo.Create(16);
            x = p.m;

            p.m = 32;
            y = p.m;
            }
            "
            , core, out compileState);
            Assert.IsTrue((Int64)mirror.GetValue("x", 0).Payload == 16);
            Assert.IsTrue((Int64)mirror.GetValue("y", 0).Payload == 32);
        }
Esempio n. 5
0
        public void ModifierStackWithArray()
        {
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(
                        @"
            a;
            a@init;
            a@first;
                        [Associative]
                        {
                            a =
                                {
                                    {3, 2, 1} => a@init;
                                    1 => a@first;
                                }
                        }
                        ", core, out compileState);

            Obj o = mirror.GetValue("a@init");
            List<Obj> os = mirror.GetArrayElements(o);
            Assert.IsTrue(os.Count == 3);
            Assert.IsTrue((Int64)os[0].Payload == 3);
            Assert.IsTrue((Int64)os[1].Payload == 2);
            Assert.IsTrue((Int64)os[2].Payload == 1);

            Assert.IsTrue((Int64)mirror.GetValue("a@first", 0).Payload == 1);
        }
Esempio n. 6
0
            public void ExternCallTest()
            {

               //String code =
/*@"external (""ffi_library"") def sum_all : double (arr : double[], numElems : int);

def sum_all_2 : double (arr : double[], numElems : int)
{ return = 42;

}

arr = {1.0, 2, 3, 4, 5, 6, 7, 8, 9, 10};

sum_1_to_10 = sum_all_2(arr, 10);";
*/

                String code =
@"external (""ffi_library"") def sum_all : double (arr : double[], numElems : int);


arr = {1.0, 2, 3, 4, 5, 6, 7, 8, 9, 10};

sum_1_to_10 = sum_all(arr, 10);";
                


                ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
                ExecutionMirror mirror = fsr.Execute(code, core);

                Obj o = mirror.GetValue("sum_1_to_10");
                Assert.IsTrue((Int64)o.Payload == 55);
            }
Esempio n. 7
0
        public void ClassTest()
        {
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
                 fsr.Execute(
                            @"
                            [Associative]
                            {
                                class Point
                              {
                                  mx : var;
                                  my : var;
                                  mz : var;
                                  constructor Point(xx : double, yy : double, zz : double)
                                  {
                                      mz = xx;
                                      my = yy;
                                      mx = zz;
                                  }
                              }
                                point = Point.Point(10,10,10);
                            }
                            ", core, out compileState);

               //Object o = mirror.GetValue("point.mx");
               //Assert.IsTrue((long)o == 10);
        }
        public void SimpleCtorResolution01()
        {
            String code =
            @"
            class f
            {
            fx : var;
            fy : var;
            constructor f()
            {
            fx = 123;
            fy = 345;
            }
            }

            // Construct class 'f'
            cf = f.f();
            x = cf.fx;
            y = cf.fy;

            ";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out compileState);

            Assert.IsTrue((Int64)mirror.GetValue("x").Payload == 123);
            Assert.IsTrue((Int64)mirror.GetValue("y").Payload == 345);
        }
Esempio n. 9
0
        public void StackValueDiffTestProperty01()
        {
            String code =
@"
class A
{
    x : var;
    constructor A()
    {
        x = 20;
    }
}
[Imperative]
{
	a = A.A();
    b = 1.0;
}
";
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ProtoCore.RuntimeCore runtimeCore = null;
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);
            StackValue svA = mirror.GetRawFirstValue("a");
            StackValue svB = mirror.GetRawFirstValue("b");
            Assert.IsTrue(svA.metaData.type != svB.metaData.type);
        }
Esempio n. 10
0
        public void ModifierStackWithArrayAndFunction()
        {
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(
                        @"a@init;a@first;b;
                        [Associative]
                         {
                             def foo : int(x : int)
                             {
                                a = x+2;
                                return = a;
                             }
                             b =
                                 {
                                     {3, 2, 1} => a@init;
                                     foo(7) => a@first;
                                 }
                         }
                        ", core, out compileState);

            Obj o = mirror.GetValue("a@init");
            List<Obj> os = mirror.GetArrayElements(o);
            Assert.IsTrue(os.Count == 3);
            Assert.IsTrue((Int64)os[0].Payload == 3);
            Assert.IsTrue((Int64)os[1].Payload == 2);
            Assert.IsTrue((Int64)os[2].Payload == 1);

            Assert.IsTrue((Int64)mirror.GetValue("a@first", 0).Payload == 9);
            Assert.IsTrue((Int64)mirror.GetValue("b", 0).Payload == 9);
        }
Esempio n. 11
0
 protected int ExecuteAndVerify(String code, ValidationData[] data, Dictionary<string, Object> context, out int nErrors)
 {
     ProtoCore.Core core = Setup();
     ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
     ExecutionMirror mirror = fsr.Execute(code, core, context);
     int nWarnings = core.RuntimeStatus.WarningCount;
     nErrors = core.BuildStatus.ErrorCount;
     if (data == null)
     {
         core.Cleanup();
         return nWarnings + nErrors;
     }
     TestFrameWork thisTest = new TestFrameWork();
     foreach (var item in data)
     {
         if (item.ExpectedValue == null)
         {
             object nullOb = null;
             TestFrameWork.Verify(mirror, item.ValueName, nullOb, item.BlockIndex);
         }
         else
         {
             TestFrameWork.Verify(mirror, item.ValueName, item.ExpectedValue, item.BlockIndex);
         }
     }
     core.Cleanup();
     return nWarnings + nErrors;
 }
        public void AccessGlobalVariableInsideFunction()
        {
            string code = @"
                                arr = { 1, 2, 3 };
                                factor = 10;

                                def foo : int[]()
                                {
                                    f = factor;
                                    [Imperative]
                                    {
                                        ix = 0;
                                        for(i in arr)
                                        {
                                            arr[ix] = arr[ix] * factor * f;
                                            ix = ix + 1;
                                        }
                                    }

                                    return = arr;
                                }

                                w = foo();
                                w0 = w[0];
                                w1 = w[1];
                                w2 = w[2];
            ";

                ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
                ExecutionMirror mirror = fsr.Execute(code, core);
                Assert.IsTrue((Int64)mirror.GetValue("w0").Payload == 100);
                Assert.IsTrue((Int64)mirror.GetValue("w1").Payload == 200);
                Assert.IsTrue((Int64)mirror.GetValue("w2").Payload == 300);
        }
Esempio n. 13
0
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            fsr.Execute(
@"
[Associative]
{
    a = [Imperative]
        {
Esempio n. 14
0
                        ", core);
            Assert.IsTrue((Int64)mirror.GetValue("a", 0).Payload == 10);

        }
        [Test]
        public void TwoSimpleExprInModifierStack()
        {
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
Esempio n. 15
0
        public void RedefineWithFunctions01()
        {
            String code =
@"
def f(i : int)
{
    return = i + 1;
}
Esempio n. 16
0
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);
            Assert.IsTrue((Int64)mirror.GetValue("x").Payload == 1001);
        }

        [Test]
        [Category("ToFixYuKe")]
        public void RedefineWithFunctions02()
Esempio n. 17
0
";
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);
            Obj o = mirror.GetValue("x");
            Assert.IsTrue((Int64)o.Payload == 6);
        }

        [Test]
Esempio n. 18
0
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ProtoLanguage.CompileStateTracker compileState = null;
            fsr.Execute(scriptCode, core, out compileState);
        }

        public void TestScriptFile(string filename)
        {
            ProtoCore.Core core = new ProtoCore.Core(new ProtoCore.Options());
Esempio n. 19
0
import(""FFITarget.dll"");
p = 10;
p = DummyPoint.ByCoordinates(11.0, 20.0, 30.0);
x = p.X;
";
            thisTest.RunScriptSource(code);
            thisTest.Verify("x", 11);
        }
Esempio n. 20
0
        public void RedefineWithFunctions03()
        {
            String code =
@"
class C
{
    mx : var;
    constructor C()
Esempio n. 21
0
    }
    def f(a : int)
    {
        mx = a + 1;
        return = mx;
    }
}
x = 10;
Esempio n. 22
0
 ExecutionMirror mirror = thisTest.RunScriptSource(code);
 thisTest.Verify("f0", false);
 thisTest.Verify("f1", false);
 thisTest.Verify("f2", false);
 thisTest.Verify("f3", false);
 thisTest.Verify("t0", true);
 thisTest.Verify("t1", true);
 thisTest.Verify("t2", true);
Esempio n. 23
0
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);
            Assert.IsTrue((Int64)mirror.GetValue("x").Payload == 123);
            Assert.IsTrue((Int64)mirror.GetValue("y").Payload == 345);
        }

        [Test]
        [Category("DSDefinedClass_Ported")]
        public void SimpleMethodOverload2()
Esempio n. 24
0
        return = 0;
	}
	x = 10;
    y = 40;
	n = scale();
	n = scale(10);
";
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);
Esempio n. 25
0
test = foo( x<1>,y<2> );
";
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            String errmsg = "";
            ExecutionMirror mirror = thisTest.VerifyRunScriptSource(code, errmsg);
            thisTest.Verify("test", new Object[] { new Object[] { 2, 3 }, new Object[] { 3, 4 } });
        }

        [Test]
Esempio n. 26
0
	def f()
	{
		return = 123;
	}
    def f(a : int)
    {
        return = a;
	}
    x = f();
Esempio n. 27
0
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);
            Assert.IsTrue((Int64)mirror.GetValue("x").Payload == 123);
            Assert.IsTrue((Int64)mirror.GetValue("y").Payload == 345);
        }

        [Test]
        [Category("DSDefinedClass_Ported")]
        public void SimpleMethodOverload1()
Esempio n. 28
0
        public void SimpleAssignment()
        {
            String code =
@"
	fx : var;
	fy : var;
	fx = 123;
	fy = 345;
	
Esempio n. 29
0
        public void TestDS()
        {
            String code =
@"
size;
[Imperative]
{
	size = 5;
}
Esempio n. 30
0
            String code =
@"
def foo(a,b)
{
    return = a + b;
}
x = {0,1};
y = {2,3};
test = foo( x<1>,y<2> );
Esempio n. 31
0
        public void T66_Associative_1467368_negative_2()
        {
            String code =
                @"
            [Associative] 
            {
                [Associative]
                {
                    a = 1; 
                }
            }

            ";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            string err = "1467368 - Imperative inside Imperative goes into loop ";

            Assert.Throws(typeof(ProtoCore.Exceptions.CompileErrorsOccured), () =>
            {
                ExecutionMirror mirror = thisTest.RunScriptSource(code, err);
            });
        }
        public void TestStaticDispatchOnArray()
        {
            //Recorded as defect: DNL-1467146
            string code =
                @"class A
{
static def execute(b : A)
{ 
return = 100; 
}
}
arr = {A.A()};
v = A.execute(arr);
val = v[0];
                ";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out compileState);

            Assert.IsTrue((Int64)mirror.GetValue("val").Payload == 100);
            Assert.IsTrue(compileState.BuildStatus.WarningCount == 0);
        }
Esempio n. 33
0
        public void ModifierStackWithTwoNames()
        {
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(
                @"
a;a@init;a@first;
                        [Associative]
                        {
                            a = 
                                {
                                    3 => a@init;
                                    +1 => a@first;
                                    +a@first;
                                    *2;
                                }
                        }
                        ", core, out runtimeCore);

            Assert.IsTrue((Int64)mirror.GetValue("a@init", 0).Payload == 3);
            Assert.IsTrue((Int64)mirror.GetValue("a@first", 0).Payload == 4);
            Assert.IsTrue((Int64)mirror.GetValue("a", 0).Payload == 16);
        }
Esempio n. 34
0
        public void IsArrayTest()
        {
            String code =
                @"[Imperative]
{
	a = {1,2,3};
    b = 1;
    c = a;
}
";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);

            ProtoCore.DSASM.StackValue svA = mirror.GetRawFirstValue("a");
            ProtoCore.DSASM.StackValue svB = mirror.GetRawFirstValue("b");
            ProtoCore.DSASM.StackValue svC = mirror.GetRawFirstValue("c");

            Assert.IsTrue(ProtoCore.Utils.ArrayUtils.IsArray(svA));
            Assert.IsTrue(!ProtoCore.Utils.ArrayUtils.IsArray(svB));
            Assert.IsTrue(ProtoCore.Utils.ArrayUtils.IsArray(svC));
        }
        public void Nestedblocks_Inside_1467358()
        {
            string code = @"
                             def foo()
                                {
                                    t = [Imperative]
                                    {
                                        t1 = [Associative]
                                        {
                                            t2 = 6;
                                            return = t2;
                                        }
                                        return = t1;
                                    }
                                    return = t;
                                }
                                def foo2()
                                {
                                    t = [Associative]
                                    {
                                        t1 = [Imperative]
                                        {
                                            t2 = 6;
                                            return = t2;
                                        }
                                        return = t1;
                                    }
                                    return = t;
                                }
                                p1 = foo(); // expected 6, got null
                                p2 = foo2(); // expected 6, got 6
";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out compileState);

            Assert.IsTrue((Int64)mirror.GetValue("p1").Payload == 6);
            Assert.IsTrue((Int64)mirror.GetValue("p2").Payload == 6);
        }
Esempio n. 36
0
        public void ArrayRetrival2DJagged()
        {
            String code =
                @"
foo;
[Associative]
{
	foo = {{5}, 6};
}
"                                                           ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);
            Obj             o      = mirror.GetValue("foo");

            ProtoCore.DSASM.Mirror.DsasmArray a = (ProtoCore.DSASM.Mirror.DsasmArray)o.Payload;
            Assert.IsTrue(a.members.Length == 2);
            ProtoCore.DSASM.Mirror.DsasmArray a2 = (ProtoCore.DSASM.Mirror.DsasmArray)((a.members[0]).Payload);
            Assert.IsTrue(a2.members.Length == 1);
            Assert.IsTrue((Int64)a2.members[0].Payload == 5);
            Assert.IsTrue((Int64)a.members[1].Payload == 6);
        }
Esempio n. 37
0
        public void TestStaticDispatchOnEmptyArray()
        {
            string code =
                @"class A
{
static def execute(b : A)
{ 
return = 100; 
}
}

arr = {};
v = A.execute(arr);
val = v[0];
                ";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);

            //Assert.IsTrue((Int64)mirror.GetValue("val").Payload == 100);
            Assert.IsTrue(core.BuildStatus.WarningCount == 0);
        }
Esempio n. 38
0
        public void IsArrayTest()
        {
            String code =
                @"a;b;c;
[Imperative]
{
	a = {1,2,3};
    b = 1;
    c = a;
}
";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);
            StackValue      svA    = mirror.GetRawFirstValue("a");
            StackValue      svB    = mirror.GetRawFirstValue("b");
            StackValue      svC    = mirror.GetRawFirstValue("c");

            Assert.IsTrue(svA.IsArray);
            Assert.IsTrue(!svB.IsArray);
            Assert.IsTrue(svC.IsArray);
        }
Esempio n. 39
0
        public void TestArrayRankJagged()
        {
            String code =
                @"
a;b;c;d;e;
[Imperative]
{
	a = {1,{2},3};
    b = {1.0, {2.0, 3.0, 3.0}};
    c = {1.0, {2.0, {9}}};
    d = {{1}, {}, {1}};
    e = {{1, 2, 3}, {1, {2}, 3}, {{{1}}, 2, 3}};
}
";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);
            StackValue      svA    = mirror.GetRawFirstValue("a");
            StackValue      svB    = mirror.GetRawFirstValue("b");
            StackValue      svC    = mirror.GetRawFirstValue("c");
            StackValue      svD    = mirror.GetRawFirstValue("d");
            StackValue      svE    = mirror.GetRawFirstValue("e");
            var             a      = ProtoCore.Utils.ArrayUtils.GetMaxRankForArray(svA, core);

            Assert.IsTrue(a == 2);
            var b = ProtoCore.Utils.ArrayUtils.GetMaxRankForArray(svB, core);

            Assert.IsTrue(b == 2);
            var c = ProtoCore.Utils.ArrayUtils.GetMaxRankForArray(svC, core);

            Assert.IsTrue(c == 3);
            var d = ProtoCore.Utils.ArrayUtils.GetMaxRankForArray(svD, core);

            Assert.IsTrue(d == 2);
            var e = ProtoCore.Utils.ArrayUtils.GetMaxRankForArray(svE, core);

            Assert.IsTrue(e == 4);
            // Assert.IsTrue((Int64)o.Payload == 5);
        }
Esempio n. 40
0
        public void ModifierStackWithArrayAndFunctionReplication()
        {
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(
                @"a@init;a@first;b;
                         [Associative]
                         {
	                         def foo : int(x : int)
	                         {
		                        a = x+2;
		                        return = a;
	                         }
                             b = 
                                 {
                                     {1,2,3} => a@init;
                                     foo(a@init) => a@first;
                                 }
                         }
                        ", core, out runtimeCore);
            Obj        o  = mirror.GetValue("a@init");
            List <Obj> os = mirror.GetArrayElements(o);

            Assert.IsTrue(os.Count == 3);
            Assert.IsTrue((Int64)os[0].Payload == 1);
            Assert.IsTrue((Int64)os[1].Payload == 2);
            Assert.IsTrue((Int64)os[2].Payload == 3);
            o  = mirror.GetValue("a@first");
            os = mirror.GetArrayElements(o);
            Assert.IsTrue(os.Count == 3);
            Assert.IsTrue((Int64)os[0].Payload == 3);
            Assert.IsTrue((Int64)os[1].Payload == 4);
            Assert.IsTrue((Int64)os[2].Payload == 5);
            o  = mirror.GetValue("b");
            os = mirror.GetArrayElements(o);
            Assert.IsTrue(os.Count == 3);
            Assert.IsTrue((Int64)os[0].Payload == 3);
            Assert.IsTrue((Int64)os[1].Payload == 4);
            Assert.IsTrue((Int64)os[2].Payload == 5);
        }
        public void TestMethodWithArrayInputOverloadDirectType()
        {
            string code = @"
                            class A
                            {
	                            def foo(x : int)
                                { return = 1; }
                                def foo(x : int[]) 
	                            { return = 2; }
	                            def foo(x : int[][]) 
	                            { return = 3; }
                            }
                            arr = 1..20..2;
                            val = A.A().foo(arr);
                            ";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out compileState);

            Assert.IsTrue((Int64)mirror.GetValue("val").Payload == 2);
            Assert.IsTrue(compileState.BuildStatus.WarningCount == 0);
        }
        public void PreClarifyPreParseBracket001()
        {
            String code =
                @"x;
[Associative]
{
 a = {1001,1002};    

 // This is failing the pre-parse. 
 // Probably has somthing to do with convertingthe language blocks into binary exprs
     x = a[0];  
}";



            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out compileState);

            Obj o = mirror.GetValue("x");

            Assert.IsTrue((Int64)o.Payload == 1001);
        }
Esempio n. 43
0
        public void RedefineWithFunctions02()
        {
            String code =
                @"
class C
{
    mx : var;
    constructor C(i : int)
    {
        mx = i + 1;
    }
}
p = 10;
p = C.C(p);
x = p.mx;
"                                                                                                                                      ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);

            Assert.IsTrue((Int64)mirror.GetValue("x").Payload == 11);
        }
Esempio n. 44
0
        public void GetUpcastChainTest()
        {
            String code =
                @"class A {}
class B extends A {}
class C extends B {}


";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);

            int idA = core.ClassTable.IndexOf("A");
            int idB = core.ClassTable.IndexOf("B");
            int idC = core.ClassTable.IndexOf("C");

            ClassNode cnA = core.ClassTable.ClassNodes[idA];
            ClassNode cnB = core.ClassTable.ClassNodes[idB];
            ClassNode cnC = core.ClassTable.ClassNodes[idC];

            List <int> idsA = ClassUtils.GetClassUpcastChain(cnA, core);
            List <int> idsB = ClassUtils.GetClassUpcastChain(cnB, core);
            List <int> idsC = ClassUtils.GetClassUpcastChain(cnC, core);

            Assert.IsTrue(idsA.Count == 2);
            Assert.IsTrue(idsA.Contains(idA));


            Assert.IsTrue(idsB.Count == 3);
            Assert.IsTrue(idsB.Contains(idA));
            Assert.IsTrue(idsB.Contains(idB));

            Assert.IsTrue(idsC.Count == 4);
            Assert.IsTrue(idsC.Contains(idA));
            Assert.IsTrue(idsC.Contains(idB));
            Assert.IsTrue(idsC.Contains(idC));
        }
Esempio n. 45
0
        public void TestGetEntries_GlobalStatements03()
        {
            String code =
                @"
import(""ProtoGeometry.dll"");
x = 1;
y = 1;
z = 1;
p1 = Point.ByCoordinates(x, y, z);
p2 = Point.ByCoordinates(x, y, z);
";

            ProtoCore.Core core = SetupTestCore("TestGetEntries_GlobalStatements03");
            ProtoScript.Runners.ProtoScriptTestRunner runner = new ProtoScript.Runners.ProtoScriptTestRunner();

            ExecutionMirror mirror = runner.Execute(code, core);

            ProtoCore.CallsiteExecutionState csState = core.csExecutionState;
            int entries = csState.GetCSStateCount();

            Assert.IsTrue(entries == 2);
            RemoveTestCallsiteStateFile(ProtoCore.CallsiteExecutionState.GetThisSessionFileName());
        }
        public void FuncWithDec()
        {
            String code =
                @"y;[Imperative]
{
        def sum:int( x:int, y:int )
        {
	        s = x + y;
	        return = s;
        }
        
	    y = 57;
}
"                                                                                                                                                            ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();

            ProtoLanguage.CompileStateTracker compileState = null;
            ExecutionMirror mirror = fsr.Execute(code, core, out compileState);


            Assert.IsTrue((Int64)mirror.GetValue("y").Payload == 57);
        }
Esempio n. 47
0
        public static void TestMinFac()
        {
            Assert.Ignore("Testing old C++ FFI. Ignored");
            String code =
                @"[Associative] 
             { 
               external (""factorial"") def factorial : int (num4 : int); 
               a = factorial(4); 
             }
            ";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ProtoCore.Core core = new ProtoCore.Core(new ProtoCore.Options());
            core.Executives.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Executive(core));
            core.Executives.Add(ProtoCore.Language.kImperative, new ProtoImperative.Executive(core));

            ProtoLanguage.CompileStateTracker compileState = null;
            ExecutionMirror mirror = fsr.Execute(code, core, out compileState);

            Obj o = mirror.GetValue("a");

            Assert.IsTrue((Int64)o.Payload == 24);
        }
Esempio n. 48
0
        public void BasicInfrastructureTest()
        {
            ProtoCore.Core core = new ProtoCore.Core(new ProtoCore.Options());
            core.Executives.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Executive(core));
            core.Executives.Add(ProtoCore.Language.kImperative, new ProtoImperative.Executive(core));

            ProtoLanguage.CompileStateTracker compileState = null;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();


            fsr.Execute(
                @"
[Imperative]
{
	x = 987654321;
	[Associative]
	{
		 px = 1234321;
	}
}
", core, out compileState);
        }
Esempio n. 49
0
        public void ImperativeUpdate002()
        {
            String code =
                @"
class C
{
    x : int = 1;
}
p = C.C();
a;
[Imperative]
{
    a = p.x;
}
p.x = 10;
"                                                                                                      ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);
            Obj             o      = mirror.GetValue("a");

            Assert.IsTrue((Int64)o.Payload == 10);
        }
Esempio n. 50
0
        public void NestedBlockInFunction01()
        {
            String code =
                @"
def f : int (p : int)
{
    loc = 32;
	s = [Imperative]
	{
        n = loc + p;
        return = n;
	}
	return = s;
}
a = f(16);	
    
"                                                                                                                                                          ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);

            Assert.IsTrue((Int64)mirror.GetValue("a").Payload == 48);
        }
Esempio n. 51
0
        public void ParserFailTest3()
        {
            ProtoLanguage.CompileStateTracker compileState = null;
            ProtoCore.Core core = new ProtoCore.Core(new ProtoCore.Options());
            core.Executives.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Executive(core));
            core.Executives.Add(ProtoCore.Language.kImperative, new ProtoImperative.Executive(core));

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();


            //@TODO: What exception should this throw
            Assert.Throws(typeof(ProtoCore.Exceptions.CompileErrorsOccured), () =>
            {
                fsr.Execute(
                    @"
[associative]
{
	a = 1;
	
}
", core, out compileState);
            });
        }
Esempio n. 52
0
        public void TestMethodWithArrayInput2()
        {
            string code = @"
                            class A
                            {
                            }
                            class B extends A
                            {
                            }
                            def Test(arr : A[])
                            {
                                    return = 123;
                            }
                            a = {B.B(), A.A(), B.B()};
                            val = Test(a);
                            "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);

            Assert.IsTrue((Int64)mirror.GetValue("val").Payload == 123);
            Assert.IsTrue(core.BuildStatus.WarningCount == 0);
        }
Esempio n. 53
0
        public void TestArrayLayerStatsSimple()
        {
            String code =
                @"[Imperative]
{
	a = {1,2,3};
    b = {1.0, 2.0, 3.0, 3.0};
    c = {1.0, 2.0, 9};

}
";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);

            ProtoCore.DSASM.StackValue svA = mirror.GetRawFirstValue("a");

            var dict = ProtoCore.Utils.ArrayUtils.GetTypeStatisticsForLayer(svA, core);

            Assert.IsTrue(dict[dict.Keys.First()] == 3);

            ProtoCore.DSASM.StackValue svB = mirror.GetRawFirstValue("b");

            var dict2 = ProtoCore.Utils.ArrayUtils.GetTypeStatisticsForLayer(svB, core);

            Assert.IsTrue(dict2[dict2.Keys.First()] == 4);


            ProtoCore.DSASM.StackValue svC = mirror.GetRawFirstValue("c");

            var dict3 = ProtoCore.Utils.ArrayUtils.GetTypeStatisticsForLayer(svC, core);

            Assert.IsTrue(dict3[dict3.Keys.First()] == 2);
            Assert.IsTrue(dict3[dict3.Keys.Last()] == 1);

            // Assert.IsTrue((Int64)o.Payload == 5);
        }
Esempio n. 54
0
        public void EmbeddedTest002()
        {
            String code =
                @"
x;
[Associative]
{
	x = 
    { 
        0 => x@first;
    }
    [Imperative]
    {
        x = x + 5;
    }
}
"                                                                                                                                 ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);
            Obj             o      = mirror.GetValue("x");

            Assert.IsTrue((Int64)o.Payload == 5);
        }
Esempio n. 55
0
        public void EmbeddedTest004()
        {
            // Tracked by http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-1580
            String code =
                @"x;
[Associative]
{
	x = {
        0 => x@first;
        +1 => x@second;
}
    [Imperative]
    {
        x@first = x + 5;
    }
}
"                                                                                                                                                    ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core, out runtimeCore);
            Obj             o      = mirror.GetValue("x");

            Assert.IsTrue((Int64)o.Payload == 7); //0 => x@first, 1 x@second, 6 -> x@first 7 -> x@second
        }
Esempio n. 56
0
        public void TestMethodOverlaodAndArrayInput4()
        {
            string code =
                @"
                class A
                {
                }
                class B extends A
                {
                    static def execute(b : B)
                    { 
                        return = -1; 
                    }
                    def execute(arr : B[])
                    {
                        return = 2;
                    }
                }
                class C extends B
                {
                }
                arr = {C.C(), B.B(), C.C()};
                val = B.execute(arr);
                val1 = val[0];
                val2 = val[1];
                val3 = val[2];
                "                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);

            Assert.IsTrue((Int64)mirror.GetValue("val1").Payload == -1);
            Assert.IsTrue((Int64)mirror.GetValue("val2").Payload == -1);
            Assert.IsTrue((Int64)mirror.GetValue("val3").Payload == -1);
            Assert.IsTrue(core.BuildStatus.WarningCount == 0);
        }
Esempio n. 57
0
        public void SimpleCtorResolution02()
        {
            String code =
                @"
	class f
	{
		fx : var;
		fy : var;
		constructor f()
		{
			fx = 123;
			fy = 345;
		}
        constructor f(x : int, y : int)
        {
            fx = x;
            fy = y;
        }
	}
    // Construct class 'f'
	cf = f.f();
	x = cf.fx;
	y = cf.fy;
    cy = f.f(1,2);
    x2 = cy.fx;
    y2 = cy.fy;
"                                                                                                                                                                                                                                                                                                                                     ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);

            Assert.IsTrue((Int64)mirror.GetValue("x").Payload == 123);
            Assert.IsTrue((Int64)mirror.GetValue("y").Payload == 345);
            Assert.IsTrue((Int64)mirror.GetValue("x2").Payload == 1);
            Assert.IsTrue((Int64)mirror.GetValue("y2").Payload == 2);
        }
Esempio n. 58
0
        public void EmbeddedTest004()
        {
            Assert.Fail("This code should fail as x@first should be read only, however it doesn't");
            String code =
                @"x;
[Associative]
{
	x = {
        0 => x@first;
        +1 => x@second;
}
    [Imperative]
    {
        x@first = x + 5;
    }
}
"                                                                                                                                                    ;

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);
            Obj             o      = mirror.GetValue("x");

            Assert.IsTrue((Int64)o.Payload == 7); //0 => x@first, 1 x@second, 6 -> x@first 7 -> x@second
        }
Esempio n. 59
0
        public void ModifierStackWithArrayAndFunction2()
        {
            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(
                @"b;a@init;a@first;
                         [Associative]
                         {
	                         def foo : int(x : int)
	                         {
		                        a = x+2;
		                        return = a;
	                         }
                             b = 
                                 {
                                     8 => a@init;
                                     foo(a@init) => a@first;
                                 }
                         }
                        ", core);

            Assert.IsTrue((Int64)mirror.GetValue("a@init", 0).Payload == 8);
            Assert.IsTrue((Int64)mirror.GetValue("a@first", 0).Payload == 10);
            Assert.IsTrue((Int64)mirror.GetValue("b", 0).Payload == 10);
        }
Esempio n. 60
0
        public void Defect_TestArrayGetCommonSuperType()
        {
            String code =
                @"
class A{};
class B extends A{};
class C extends A{};
class D extends C{};

a = A.A();
b = B.B();
c = C.C();
d = D.D();

//ba:A = B.B();
//ca:A = C.C();
//dc:C = D.D();

tABC = { a, b, c };
tABD = { a, b, d };
tACD = { a, c, d };
tBCD = { b, c, d };

tAB = { a, b };
tAD = { a, d };
tBC = { b, c };
tBD = { b, d };
tCD = { c, d };

";

            ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScript.Runners.ProtoScriptTestRunner();
            ExecutionMirror mirror = fsr.Execute(code, core);

            StackValue svABC    = mirror.GetRawFirstValue("tABC");
            ClassNode  superABC = ArrayUtils.GetGreatestCommonSubclassForArray(svABC, core);

            Assert.IsTrue(superABC.name == "A");

            StackValue svABD    = mirror.GetRawFirstValue("tABD");
            ClassNode  superABD = ArrayUtils.GetGreatestCommonSubclassForArray(svABD, core);

            Assert.IsTrue(superABD.name == "A");

            StackValue svACD    = mirror.GetRawFirstValue("tACD");
            ClassNode  superACD = ArrayUtils.GetGreatestCommonSubclassForArray(svACD, core);

            Assert.IsTrue(superABD.name == "A");

            StackValue svBCD    = mirror.GetRawFirstValue("tBCD");
            ClassNode  superBCD = ArrayUtils.GetGreatestCommonSubclassForArray(svBCD, core);

            Assert.IsTrue(superBCD.name == "A");

            StackValue svAB    = mirror.GetRawFirstValue("tAB");
            ClassNode  superAB = ArrayUtils.GetGreatestCommonSubclassForArray(svAB, core);

            Assert.IsTrue(superAB.name == "A");

            StackValue svAD    = mirror.GetRawFirstValue("tAD");
            ClassNode  superAD = ArrayUtils.GetGreatestCommonSubclassForArray(svAD, core);

            Assert.IsTrue(superAD.name == "A");

            StackValue svBC    = mirror.GetRawFirstValue("tBC");
            ClassNode  superBC = ArrayUtils.GetGreatestCommonSubclassForArray(svBC, core);

            Assert.IsTrue(superBC.name == "A");

            StackValue svBD    = mirror.GetRawFirstValue("tBD");
            ClassNode  superBD = ArrayUtils.GetGreatestCommonSubclassForArray(svBD, core);

            Assert.IsTrue(superBD.name == "A");

            StackValue svCD    = mirror.GetRawFirstValue("tCD");
            ClassNode  superCD = ArrayUtils.GetGreatestCommonSubclassForArray(svCD, core);

            Assert.IsTrue(superCD.name == "C");
        }