Ejemplo n.º 1
0
        public void TestObjectValues()
        {
            CorePackage.Entity.Type.ObjectType obj   = new CorePackage.Entity.Type.ObjectType();
            CorePackage.Entity.Type.ObjectType ztype = new CorePackage.Entity.Type.ObjectType();

            ztype.AddAttribute("toto", CorePackage.Entity.Type.Scalar.Floating, CorePackage.Global.AccessMode.EXTERNAL);

            var ltype = new CorePackage.Entity.Type.ListType(CorePackage.Entity.Type.Scalar.Floating);

            obj.AddAttribute("X", CorePackage.Entity.Type.Scalar.Floating, CorePackage.Global.AccessMode.EXTERNAL);
            obj.AddAttribute("Y", ltype, CorePackage.Global.AccessMode.EXTERNAL);
            obj.AddAttribute("Z", ztype, CorePackage.Global.AccessMode.EXTERNAL);

            Dictionary <string, dynamic> dicValue = new Dictionary <string, dynamic>
            {
                { "X", 3.14f },
                { "Y", new List <double> {
                      4.12
                  } },
                { "Z", new Dictionary <string, dynamic> {
                      { "toto", -3093.334 }
                  } }
            };
            object jsonValue = JsonConvert.DeserializeObject(@"{
                ""X"": 3.14,
                ""Y"": [4.12],
                ""Z"": { ""toto"": -3093.334 }
            }");
            Pos    realValue = new Pos
            {
                X = 3.14f,
                Y = new List <double> {
                    4.12
                },
                Z = new Pos.ZType {
                    toto = -3093.334
                }
            };

            Assert.IsTrue(obj.IsValueOfType(dicValue));
            Assert.IsTrue(obj.IsValueOfType(jsonValue));
            Assert.IsTrue(obj.IsValueOfType(realValue));

            obj.SetAttributeValue(realValue, "X", 3.40);

            var jsonval = obj.CreateFromJSON(@"{
                ""X"": 3.14,
                ""Y"": [4.12],
                ""Z"": { ""toto"": -3093.334 }
            }");

            Assert.IsTrue(obj.GetAttributeValue(jsonval, "X") == 3.14);
            Assert.IsTrue(ltype.IsValueOfType(obj.GetAttributeValue(jsonval, "Y")));
            Assert.IsTrue(ztype.IsValueOfType(obj.GetAttributeValue(jsonval, "Z")));
        }
Ejemplo n.º 2
0
        public void TestListRemove()
        {
            CorePackage.Entity.Type.ListType  intlist = new CorePackage.Entity.Type.ListType(CorePackage.Entity.Type.Scalar.Integer);
            CorePackage.Execution.RemoveIndex ins     = new CorePackage.Execution.RemoveIndex(CorePackage.Entity.Type.Scalar.Integer);
            List <int> data = new List <int> {
                2, 0, 1
            };

            ins.SetInputValue("array", data);
            ins.SetInputValue("index", 0);

            ins.Execute();

            Assert.IsTrue(data.Count == 2);
        }
Ejemplo n.º 3
0
        public void TestNestedList()
        {
            CorePackage.Entity.Type.ListType intlist     = new CorePackage.Entity.Type.ListType(CorePackage.Entity.Type.Scalar.Integer);
            CorePackage.Entity.Type.ListType intlistlist = new CorePackage.Entity.Type.ListType(intlist);
            CorePackage.Execution.Append     instruction = new CorePackage.Execution.Append(intlist);
            List <List <int> > val = new List <List <int> >();

            instruction.SetInputValue("array", val);
            instruction.SetInputValue("element", new List <int>());

            Assert.IsTrue(instruction.GetInputValue("array").Count == 0);
            Assert.IsTrue(instruction.GetInputValue("element").Count == 0);

            instruction.Execute();

            Assert.IsTrue(val.Count == 1);

            CorePackage.Execution.Append           intlistappend = new CorePackage.Execution.Append(CorePackage.Entity.Type.Scalar.Integer);
            CorePackage.Execution.Operators.Access access        = new CorePackage.Execution.Operators.Access(intlistlist, CorePackage.Entity.Type.Scalar.Integer, intlist);
            CorePackage.Execution.Getter           getfrom       = new CorePackage.Execution.Getter(new CorePackage.Entity.Variable(CorePackage.Entity.Type.Scalar.Integer, 0));

            access.SetInputValue("LeftOperand", val);
            access.SetInputValue("RightOperand", 0);

            intlistappend.GetInput("array").LinkTo(access, "result");
            intlistappend.GetInput("element").LinkTo(getfrom, "reference");
            //intlistappend.SetInputValue("array", val[0]);

            Assert.IsTrue(intlistappend.GetInputValue("array").Count == 0);
            Assert.IsTrue(val[0].Count == 0);
            Assert.IsTrue(val[0] == intlistappend.GetInputValue("array"));

            intlistappend.Execute();

            Assert.IsTrue(intlistappend.GetInputValue("array").Count == 1);
            Assert.IsTrue(val[0].Count == 1);
            Assert.IsTrue(val[0] == intlistappend.GetInputValue("array"));

            List <dynamic> jsonlist = intlist.CreateFromJSON("[3, 9, 1, 2]");

            Assert.IsTrue(intlist.IsValueOfType(jsonlist));
            Assert.IsTrue(jsonlist[0] == 3);
            Assert.IsTrue(jsonlist[1] == 9);
            Assert.IsTrue(jsonlist[2] == 1);
            Assert.IsTrue(jsonlist[3] == 2);
        }
Ejemplo n.º 4
0
        public void TestListActions()
        {
            CorePackage.Entity.Type.ScalarType integer = CorePackage.Entity.Type.Scalar.Integer;
            CorePackage.Entity.DataType        type    = new CorePackage.Entity.Type.ListType(integer);

            var t = type.Instantiate();

            Assert.IsTrue(type.IsValid());

            //append
            //  input:
            //      - value
            t.Add(integer.Instantiate());

            Assert.IsTrue(type.OperatorEqual(t, new List <int> {
                0
            }));

            //foreach
            //  outputs:
            //      - index
            //      - value
            for (int i = 0; i < t.Count; i++)
            {
                Debug.WriteLine($"Index {i} ; value = {t[i]}");
            }

            //insert
            //  inputs:
            //      - index
            //      - value
            t.Insert(0, CorePackage.Entity.Type.Scalar.Integer.Instantiate());

            Assert.IsTrue(type.OperatorEqual(t, new List <int> {
                0, 0
            }));

            var operatorTest = type.Instantiate();

            operatorTest.Add(42);
            operatorTest.Add(50);

            var union = type.OperatorAdd(t, operatorTest);

            t.Add(42);

            var sub = type.OperatorSub(operatorTest, t);

            t.Add(50);

            var item = type.OperatorAccess(operatorTest, 1);

            Assert.IsTrue(type.OperatorEqual(union, new List <int> {
                0, 0, 42, 50
            }));
            Assert.IsTrue(type.OperatorEqual(sub, new List <int> {
                50
            }));
            Assert.IsTrue(item == 50);

            //remove
            //  inputs:
            //      - index
            t.RemoveAt(1);

            //clear
            t.Clear();

            //size
            //  outputs:
            //      - size
            Debug.WriteLine($"Size = {t.Count}");
        }