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