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"))); }
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); }
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); }
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}"); }