Пример #1
0
        public void AddFloatAndDatetimeParameters()
        {
            DataItemSet data = CreateEmptyDataItemSet();

            // add new time stamp patameter
            const string timeParameterName  = "p1";
            DateTime     timeParameterValue = DateTime.Now;
            var          parameter          = new Parameter <DateTime> {
                Name = timeParameterName, Value = timeParameterValue
            };

            data.Add(parameter);

            // add new float patameter
            const string floatParameterName  = "p2";
            const float  floatParameterValue = 10.4f;
            var          parameter1          = new Parameter <float> {
                Name = floatParameterName, Value = floatParameterValue
            };

            data.Add(parameter1);

            // check results of the operations above.
            Assert.AreEqual(parameter.Value, timeParameterValue);
            Assert.AreEqual(parameter.Name, timeParameterName);

            Assert.AreEqual(parameter1.Value, floatParameterValue);
            Assert.AreEqual(parameter1.Name, floatParameterName);

            Assert.AreEqual(data.Count, 2);

            Assert.AreSame(data["p1"].Value, parameter, "Access parameter 'p1' by its name");
            Assert.AreSame(data["p2"].Value, parameter1, "Access parameter 'p2' by its name");
        }
Пример #2
0
        public void AddSubDataItems()
        {
            DataItemSet data = CreateEmptyDataItemSet();

            // add child datasets
            var childData1 = new DataItemSet("data1");
            var childData2 = new DataItemSet("data2");

            data.Add(childData1);
            data.Add(childData2);

            // add data1/ child data items
            var parameter1 = new Parameter <float>("parameter1");

            childData1.Add(parameter1);

            // add data2/ child data items
            var startTime = new Parameter <DateTime>("start time");
            var duration  = new Parameter <TimeSpan>("duration");

            childData2.Add(startTime);
            childData2.Add(duration);

            // asserts
            Assert.AreEqual(data.Count, 2);
            Assert.AreSame(data["data1"], childData1);
            Assert.AreSame(data["data2"], childData2);

            var data1 = (DataItemSet)data["data1"];

            Assert.AreEqual(data1.Count, 1);
            Assert.AreSame(parameter1, data1["parameter1"].Value);

            var data2 = (DataItemSet)data["data2"];

            Assert.AreEqual(data2.Count, 2);
            Assert.AreSame(startTime, data2["start time"].Value);
            Assert.AreSame(duration, data2["duration"].Value);

            // TODO: make workaround for index[] operator
            // int indexOfData2 = 1;
            // int indexOfDuration = 1;
            // Assert.AreSame(data2["duration"], data[indexOfData2][indexOfDuration]);
        }
Пример #3
0
        public void GetAllItemsRecursive()
        {
            var    dataItemSet = new DataItemSet();
            var    dataItem    = new DataItem();
            string value       = "value";

            dataItem.Value = value;
            dataItemSet.Add(dataItem);

            Assert.AreEqual(new object[] { value, dataItem, dataItemSet }, dataItemSet.GetAllItemsRecursive().ToArray());
        }
Пример #4
0
        public void UpdateOwner()
        {
            var       set  = new DataItemSet();
            IDataItem item = new DataItem();

            //adding dataitem should update owner
            set.Add(item);
            Assert.AreEqual(set, item.Owner);

            var o = new object();

            //replacing dataitem should update owner
            set.Replace(o, 0);
            Assert.AreEqual(set, set[0].Owner);
        }
Пример #5
0
        private static Project Create17ItemsProjectTree()
        {
            //   RootFolder
            //      |-DataItem1
            //          |-DataItem1Value
            //      |-Folder 1
            //          |-DataItemSet1
            //              |-DataItem2
            //                  |-string
            //      |-Model
            //          |-DataItem3
            //          |-StartTime
            //              |-StartTimeValue
            //          |-StopTime
            //              |-StopTimeValue
            //          |-CurrentTime
            //              |-CurrentTimeValue
            //          |-TimeStep
            //              |-TimeStepValue

            Project p      = new Project();
            var     folder = new Folder("folder1");

            p.RootFolder.Items.Add(new DataItem {
                Value = "dataItem1Value"
            });
            var set       = new DataItemSet("dataItemSet1");
            var dataItem2 = new DataItem {
                Name = "DataItem2"
            };

            dataItem2.Value = "string";
            set.Add(dataItem2);

            //TODO : replace simplermodel with a mock/stubbed object
            SimplerModel model = new SimplerModel();

            model.DataItems.Add(new DataItem()
            {
                Name = "DataItem3"
            });
            folder.Items.Add(set);

            p.RootFolder.Add(folder);
            p.RootFolder.Add(model);
            return(p);
        }
Пример #6
0
        public void TestSequenceLinkFirstSourceThenTargetUseDataSets()
        {
            string result = "";

            SimplerModel sourceModel = new SimplerModel { Name = "source" };
            sourceModel.Executing += (s, e) => result += ((SimplerModel)s).Name;

            SimplerModel targetModel = new SimplerModel { Name = "target" };
            targetModel.Executing += (s, e) => result += ((SimplerModel)s).Name;

            IDataItemSet sourceInputSet = new DataItemSet { Name = "input", Role = DataItemRole.Input };
            IDataItem sourceInput = new DataItem { Name = "SI", Value = new object(), Role = DataItemRole.Input };
            sourceInputSet.Add(sourceInput);

            IDataItemSet sourceOutputSet = new DataItemSet { Name = "output", Role = DataItemRole.Output };
            IDataItem sourceOutput = new DataItem { Name = "SO", Value = new object(), Role = DataItemRole.Output };
            sourceOutputSet.Add(sourceOutput);

            IDataItemSet targetInputSet = new DataItemSet { Name = "input", Role = DataItemRole.Input };
            IDataItem targetInput = new DataItem { Name = "TI", Value = new object(), Role = DataItemRole.Input };
            targetInputSet.Add(targetInput);

            IDataItemSet targetOutputSet = new DataItemSet { Name = "output", Role = DataItemRole.Output };
            IDataItem targetOutput = new DataItem { Name = "TO", Value = new object(), Role = DataItemRole.Output };
            targetOutputSet.Add(targetOutput);

            sourceModel.DataItems.Add(sourceInputSet);
            sourceModel.DataItems.Add(sourceOutputSet);
            targetModel.DataItems.Add(targetInputSet);
            targetModel.DataItems.Add(targetOutputSet);

            var compositeModel = new CompositeModel
            {
                Name = "composite model",
                Models = { sourceModel, targetModel }
            };

            targetInput.LinkTo(sourceOutput);

            compositeModel.Initialize();
            compositeModel.Execute();

            Assert.AreEqual("sourcetarget", result);
        }
Пример #7
0
         private static Project Create17ItemsProjectTree()
         {
             //   RootFolder
             //      |-DataItem1
             //          |-DataItem1Value
             //      |-Folder 1
             //          |-DataItemSet1
             //              |-DataItem2
             //                  |-string
             //      |-Model
             //          |-DataItem3
             //          |-StartTime
             //              |-StartTimeValue
             //          |-StopTime
             //              |-StopTimeValue
             //          |-CurrentTime
             //              |-CurrentTimeValue
             //          |-TimeStep
             //              |-TimeStepValue

             Project p = new Project();
             var folder = new Folder("folder1");
             p.RootFolder.Items.Add(new DataItem { Value = "dataItem1Value" });
             var set = new DataItemSet("dataItemSet1");
             var dataItem2 = new DataItem { Name = "DataItem2" };
             dataItem2.Value = "string";
             set.Add(dataItem2);

             //TODO : replace simplermodel with a mock/stubbed object
             SimplerModel model = new SimplerModel();
             model.DataItems.Add(new DataItem() { Name = "DataItem3" });
             folder.Items.Add(set);

             p.RootFolder.Add(folder);
             p.RootFolder.Add(model);
             return p;
         }
Пример #8
0
        public void TestSequenceLinkFirstTargetThenSourceUseDataSets()
        {
            string result = "";

            SimplerModel sourceModel = new SimplerModel {
                Name = "source"
            };

            sourceModel.Executing += (s, e) => result += ((SimplerModel)s).Name;

            SimplerModel targetModel = new SimplerModel {
                Name = "target"
            };

            targetModel.Executing += (s, e) => result += ((SimplerModel)s).Name;

            IDataItemSet sourceInputSet = new DataItemSet {
                Name = "input", Role = DataItemRole.Input
            };
            IDataItem sourceInput = new DataItem {
                Name = "SI", Value = new object(), Role = DataItemRole.Input
            };

            sourceInputSet.Add(sourceInput);

            IDataItemSet sourceOutputSet = new DataItemSet {
                Name = "output", Role = DataItemRole.Output
            };
            IDataItem sourceOutput = new DataItem {
                Name = "SO", Value = new object(), Role = DataItemRole.Output
            };

            sourceOutputSet.Add(sourceOutput);

            IDataItemSet targetInputSet = new DataItemSet {
                Name = "input", Role = DataItemRole.Input
            };
            IDataItem targetInput = new DataItem {
                Name = "TI", Value = new object(), Role = DataItemRole.Input
            };

            targetInputSet.Add(targetInput);

            IDataItemSet targetOutputSet = new DataItemSet {
                Name = "output", Role = DataItemRole.Output
            };
            IDataItem targetOutput = new DataItem {
                Name = "TO", Value = new object(), Role = DataItemRole.Output
            };

            targetOutputSet.Add(targetOutput);

            sourceModel.DataItems.Add(sourceInputSet);
            sourceModel.DataItems.Add(sourceOutputSet);
            targetModel.DataItems.Add(targetInputSet);
            targetModel.DataItems.Add(targetOutputSet);

            var compositeModel = new CompositeModel
            {
                Name   = "composite model",
                Models = { sourceModel, targetModel }
            };

            sourceInput.LinkTo(targetOutput);


            compositeModel.Initialize();
            compositeModel.Execute();

            Assert.AreEqual("targetsource", result);
        }