public void WriteOmiFile() { OmiFileParser omiFileParser = new OmiFileParser(); omiFileParser.AssemblyName = System.Reflection.Assembly.GetExecutingAssembly().Location; omiFileParser.LinkableComponentClassName = "HydroNumerics.HydroNet.OpenMI.UnitTest.TestLinkableComponent"; //omiFileParser.Arguments.Add("InputFilename", hydroNetInputFilename); //omiFileParser.Arguments.Add("TimestepLength", timestepLength.ToString()); omiFileParser.WriteOmiFile("TestLinkableComponent.omi"); }
public void ReadOmiFile() { WriteOmiFile(); OmiFileParser omiFileParserReader = new OmiFileParser(); omiFileParserReader.ReadOmiFile("test.omi"); Assert.AreEqual("MyNamespace.MyModel.LinkableComponent", omiFileParserReader.LinkableComponentClassName); Assert.AreEqual(@"..\..\bin\debug\MyAssemble.dll", omiFileParserReader.AssemblyName); Assert.AreEqual("MyOmiFile.omi", omiFileParserReader.Arguments["Filename"]); Assert.AreEqual("3600", omiFileParserReader.Arguments["TimestepLength"]); }
public void WriteOmiFile(string omiFilename, string hydroNetInputFilename, double timestepLength) { OmiFileParser omiFileParser = new OmiFileParser(); omiFileParser.AssemblyName = System.Reflection.Assembly.GetExecutingAssembly().Location; omiFileParser.LinkableComponentClassName = "HydroNumerics.HydroNet.OpenMI.LinkableComponent"; omiFileParser.Arguments.Add("InputFilename", hydroNetInputFilename); omiFileParser.Arguments.Add("TimestepLength", timestepLength.ToString()); omiFileParser.Arguments.Add("SendExtendedEventInfo", "false"); omiFileParser.WriteOmiFile(omiFilename); }
public void WriteOmiFile(string omiFilename, string timeSeriesGroupInputFilename, string timeSeriesGroupOutputFilename) { OmiFileParser omiFileParser = new OmiFileParser(); omiFileParser.AssemblyName = System.Reflection.Assembly.GetExecutingAssembly().Location; omiFileParser.LinkableComponentClassName = "HydroNumerics.Time.OpenMI.LinkableTimeSeriesGroup"; omiFileParser.Arguments.Add("Filename", timeSeriesGroupInputFilename); omiFileParser.Arguments.Add("OutputFilename", timeSeriesGroupOutputFilename); omiFileParser.WriteOmiFile(omiFilename); }
public void LinkedToTestComponent() { CreateHydroNetInputfile(); HydroNumerics.OpenMI.Sdk.Backbone.OmiFileParser omiFileParser = new HydroNumerics.OpenMI.Sdk.Backbone.OmiFileParser(); omiFileParser.ReadOmiFile(filename + ".omi"); IArgument[] arguments = omiFileParser.GetArgumentsAsIArgumentArray(); // Create the HydroNet linkableComponent LinkableComponent hydroNetLC = new LinkableComponent(); hydroNetLC.Initialize(arguments); Assert.AreEqual("Lake model", hydroNetLC.ModelID); // Create the TestLinkableComponent TestLinkableComponent testLC = new TestLinkableComponent(); testLC.Initialize(new HydroNumerics.OpenMI.Sdk.Backbone.Argument[0] { }); // Link (hydroNet to TestLC) (leakage --> infiltration) IOutputExchangeItem leakageOutputExchangeItem = hydroNetLC.GetOutputExchangeItem(0); HydroNumerics.OpenMI.Sdk.Backbone.Link hydroNetLC2testLC = new HydroNumerics.OpenMI.Sdk.Backbone.Link(); hydroNetLC2testLC.ID = "HydroNet2TestLC"; hydroNetLC2testLC.SourceComponent = hydroNetLC; hydroNetLC2testLC.TargetComponent = testLC; hydroNetLC2testLC.SourceElementSet = hydroNetLC.GetOutputExchangeItem(0).ElementSet; hydroNetLC2testLC.SourceQuantity = hydroNetLC.GetOutputExchangeItem(0).Quantity; Assert.AreEqual("Leakage", hydroNetLC2testLC.SourceQuantity.ID); hydroNetLC2testLC.TargetElementSet = testLC.GetOutputExchangeItem(0).ElementSet; hydroNetLC2testLC.TargetQuantity = testLC.GetInputExchangeItem(0).Quantity; hydroNetLC2testLC.AddDataOperation(hydroNetLC.GetOutputExchangeItem(0).GetDataOperation(3)); // Link (TestLC to hydroNet) (groundwaterhead --> groundwaterhead) HydroNumerics.OpenMI.Sdk.Backbone.Link testLC2HydroNetLC = new HydroNumerics.OpenMI.Sdk.Backbone.Link(); testLC2HydroNetLC.ID = "testLC2HydroNetLc"; testLC2HydroNetLC.SourceComponent = testLC; testLC2HydroNetLC.TargetComponent = hydroNetLC; testLC2HydroNetLC.SourceQuantity = testLC.GetOutputExchangeItem(0).Quantity; testLC2HydroNetLC.SourceElementSet = testLC.GetOutputExchangeItem(0).ElementSet; testLC2HydroNetLC.TargetQuantity = hydroNetLC.GetInputExchangeItem(0).Quantity; Assert.AreEqual("Head", testLC2HydroNetLC.TargetQuantity.ID); //check to see if this is the right quantity testLC2HydroNetLC.TargetElementSet = hydroNetLC.GetInputExchangeItem(0).ElementSet; testLC2HydroNetLC.AddDataOperation(testLC.GetOutputExchangeItem(0).GetDataOperation(3)); testLC.AddLink(testLC2HydroNetLC); hydroNetLC.AddLink(testLC2HydroNetLC); hydroNetLC.AddLink(hydroNetLC2testLC); testLC.AddLink(hydroNetLC2testLC); // triggerlink HydroNumerics.OpenMI.Sdk.DevelopmentSupport.Trigger trigger = new HydroNumerics.OpenMI.Sdk.DevelopmentSupport.Trigger(); trigger.Initialize(new HydroNumerics.OpenMI.Sdk.Backbone.Argument[0] { }); HydroNumerics.OpenMI.Sdk.Backbone.Link triggerLink = new HydroNumerics.OpenMI.Sdk.Backbone.Link(); triggerLink.ID = "TriggerLink"; triggerLink.SourceComponent = testLC; triggerLink.TargetComponent = trigger; triggerLink.SourceQuantity = testLC.GetOutputExchangeItem(0).Quantity; triggerLink.SourceElementSet = testLC.GetOutputExchangeItem(0).ElementSet; triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; testLC.AddLink(triggerLink); trigger.AddLink(triggerLink); // prepare trigger.Prepare(); hydroNetLC.Prepare(); testLC.Prepare(); ScalarSet scalarSet = (ScalarSet)hydroNetLC.GetValues(new TimeStamp(new DateTime(2001, 6, 1)), hydroNetLC2testLC.ID); double expected = -0.0000065836086956521805 * 2.0; Assert.AreEqual(0, scalarSet.data[0], 0.000000000001); Assert.AreEqual(0, scalarSet.data[1], 0.000000000001); Assert.AreEqual(expected, scalarSet.data[2], 0.000000000001); Assert.AreEqual(0, scalarSet.data[3], 0.000000000001); // Run //trigger.Run(testLC.TimeHorizon.End); //TimestampSeries infiltTSS = ((TimestampSeries) testLC.TestEngine.Infiltrations.Items[0]); trigger.Finish(); hydroNetLC.Finish(); testLC.Finish(); trigger.Dispose(); hydroNetLC.Dispose(); testLC.Dispose(); }
public void AssemblyName() { OmiFileParser omiFileParser = new OmiFileParser(); omiFileParser.AssemblyName = "something"; Assert.AreEqual("something", omiFileParser.AssemblyName); }
public void WriteOmiFile() { OmiFileParser omiFileParserWriter = new OmiFileParser(); omiFileParserWriter.LinkableComponentClassName = "MyNamespace.MyModel.LinkableComponent"; omiFileParserWriter.AssemblyName = @"..\..\bin\debug\MyAssemble.dll"; omiFileParserWriter.Arguments.Add("Filename", "MyOmiFile.omi"); omiFileParserWriter.Arguments.Add("TimestepLength", "3600"); omiFileParserWriter.WriteOmiFile("test.omi"); }
public void GetArgumentsAsIArgumentsArray() { OmiFileParser omiFileParser = new OmiFileParser(); omiFileParser.Arguments.Add("key1", "value1"); omiFileParser.Arguments.Add("key2", "value2"); IArgument[] arguments = omiFileParser.GetArgumentsAsIArgumentArray(); Assert.AreEqual("key1", arguments[0].Key); Assert.AreEqual("key2", arguments[1].Key); Assert.AreEqual("value1", arguments[0].Value); Assert.AreEqual("value2", arguments[1].Value); }
public void Arguments() { OmiFileParser omiFileParser = new OmiFileParser(); omiFileParser.Arguments.Add("MyKey", "MyValue"); Assert.AreEqual("MyValue", omiFileParser.Arguments["MyKey"]); }
public void LinkableComponentClassName() { OmiFileParser omiFileParser = new OmiFileParser(); omiFileParser.LinkableComponentClassName = "something"; Assert.AreEqual("something", omiFileParser.LinkableComponentClassName); }
public void LinkedToTestComponent() { CreateHydroNetInputfile(); HydroNumerics.OpenMI.Sdk.Backbone.OmiFileParser omiFileParser = new HydroNumerics.OpenMI.Sdk.Backbone.OmiFileParser(); omiFileParser.ReadOmiFile(filename + ".omi"); IArgument[] arguments = omiFileParser.GetArgumentsAsIArgumentArray(); // Create the HydroNet linkableComponent LinkableComponent hydroNetLC = new LinkableComponent(); hydroNetLC.Initialize(arguments); Assert.AreEqual("Lake model", hydroNetLC.ModelID); // Create the TestLinkableComponent TestLinkableComponent testLC = new TestLinkableComponent(); testLC.Initialize(new HydroNumerics.OpenMI.Sdk.Backbone.Argument[0] { }); // Link (hydroNet to TestLC) (leakage --> infiltration) IOutputExchangeItem leakageOutputExchangeItem = hydroNetLC.GetOutputExchangeItem(0); HydroNumerics.OpenMI.Sdk.Backbone.Link hydroNetLC2testLC = new HydroNumerics.OpenMI.Sdk.Backbone.Link(); hydroNetLC2testLC.ID = "HydroNet2TestLC"; hydroNetLC2testLC.SourceComponent = hydroNetLC; hydroNetLC2testLC.TargetComponent = testLC; hydroNetLC2testLC.SourceElementSet = hydroNetLC.GetOutputExchangeItem(0).ElementSet; hydroNetLC2testLC.SourceQuantity = hydroNetLC.GetOutputExchangeItem(0).Quantity; Assert.AreEqual("Leakage", hydroNetLC2testLC.SourceQuantity.ID); hydroNetLC2testLC.TargetElementSet = testLC.GetOutputExchangeItem(0).ElementSet; hydroNetLC2testLC.TargetQuantity = testLC.GetInputExchangeItem(0).Quantity; hydroNetLC2testLC.AddDataOperation(hydroNetLC.GetOutputExchangeItem(0).GetDataOperation(3)); // Link (TestLC to hydroNet) (groundwaterhead --> groundwaterhead) HydroNumerics.OpenMI.Sdk.Backbone.Link testLC2HydroNetLC = new HydroNumerics.OpenMI.Sdk.Backbone.Link(); testLC2HydroNetLC.ID = "testLC2HydroNetLc"; testLC2HydroNetLC.SourceComponent = testLC; testLC2HydroNetLC.TargetComponent = hydroNetLC; testLC2HydroNetLC.SourceQuantity = testLC.GetOutputExchangeItem(0).Quantity; testLC2HydroNetLC.SourceElementSet = testLC.GetOutputExchangeItem(0).ElementSet; testLC2HydroNetLC.TargetQuantity = hydroNetLC.GetInputExchangeItem(0).Quantity; Assert.AreEqual("Head", testLC2HydroNetLC.TargetQuantity.ID); //check to see if this is the right quantity testLC2HydroNetLC.TargetElementSet = hydroNetLC.GetInputExchangeItem(0).ElementSet; testLC2HydroNetLC.AddDataOperation(testLC.GetOutputExchangeItem(0).GetDataOperation(3)); testLC.AddLink(testLC2HydroNetLC); hydroNetLC.AddLink(testLC2HydroNetLC); hydroNetLC.AddLink(hydroNetLC2testLC); testLC.AddLink(hydroNetLC2testLC); // triggerlink HydroNumerics.OpenMI.Sdk.DevelopmentSupport.Trigger trigger = new HydroNumerics.OpenMI.Sdk.DevelopmentSupport.Trigger(); trigger.Initialize(new HydroNumerics.OpenMI.Sdk.Backbone.Argument[0] { }); HydroNumerics.OpenMI.Sdk.Backbone.Link triggerLink = new HydroNumerics.OpenMI.Sdk.Backbone.Link(); triggerLink.ID = "TriggerLink"; triggerLink.SourceComponent = testLC; triggerLink.TargetComponent = trigger; triggerLink.SourceQuantity = testLC.GetOutputExchangeItem(0).Quantity; triggerLink.SourceElementSet = testLC.GetOutputExchangeItem(0).ElementSet; triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; testLC.AddLink(triggerLink); trigger.AddLink(triggerLink); // prepare trigger.Prepare(); hydroNetLC.Prepare(); testLC.Prepare(); ScalarSet scalarSet = (ScalarSet) hydroNetLC.GetValues(new TimeStamp(new DateTime(2001, 6, 1)), hydroNetLC2testLC.ID); double expected = -0.0000065836086956521805 * 2.0; Assert.AreEqual(0, scalarSet.data[0], 0.000000000001); Assert.AreEqual(0, scalarSet.data[1], 0.000000000001); Assert.AreEqual(expected, scalarSet.data[2], 0.000000000001); Assert.AreEqual(0, scalarSet.data[3], 0.000000000001); // Run //trigger.Run(testLC.TimeHorizon.End); //TimestampSeries infiltTSS = ((TimestampSeries) testLC.TestEngine.Infiltrations.Items[0]); trigger.Finish(); hydroNetLC.Finish(); testLC.Finish(); trigger.Dispose(); hydroNetLC.Dispose(); testLC.Dispose(); }