public void GetValues() { HydroNumerics.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new HydroNumerics.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); TimeSeriesComponent ts = new TimeSeriesComponent(); ts.Initialize(new Argument[0]); Link triggerLink = new Link(); triggerLink.ID = "TriggerLink"; triggerLink.SourceComponent = ts; triggerLink.SourceElementSet = ts.GetOutputExchangeItem(0).ElementSet; triggerLink.SourceQuantity = ts.GetOutputExchangeItem(0).Quantity; triggerLink.TargetComponent = trigger; triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; trigger.AddLink(triggerLink); ts.AddLink(triggerLink); double tt = ts.TimeHorizon.Start.ModifiedJulianDay; TimeStamp[] triggerTimes = new TimeStamp[4]; triggerTimes[0] = new TimeStamp(tt + 0.5); triggerTimes[1] = new TimeStamp(tt + 1.5); triggerTimes[2] = new TimeStamp(tt + 1.9); triggerTimes[3] = new TimeStamp(tt + 2.1); trigger.Run(triggerTimes); Assert.AreEqual(0, ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0)); Assert.AreEqual(1, ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0)); Assert.AreEqual(1, ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(2)).GetScalar(0)); Assert.AreEqual(2, ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(3)).GetScalar(0)); //Teting with timespans Assert.AreEqual(2.0, ((ScalarSet)ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2), new TimeStamp(tt + 2.0 + 1.0 / 24.0)), "TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0, ((ScalarSet)ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 1.0 / 24.0), new TimeStamp(tt + 2.0 + 2.0 / 24.0)), "TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0, ((ScalarSet)ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 2.0 / 24.0), new TimeStamp(tt + 2.0 + 3.0 / 24.0)), "TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0, ((ScalarSet)ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 5.0 / 24.0), new TimeStamp(tt + 2.0 + 6.0 / 24.0)), "TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0, ((ScalarSet)ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 15.0 / 24.0), new TimeStamp(tt + 2.0 + 16.0 / 24.0)), "TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0, ((ScalarSet)ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 23.0 / 24.0), new TimeStamp(tt + 2.0 + 24.0 / 24.0)), "TriggerLink")).GetScalar(0)); Assert.AreEqual(3.0, ((ScalarSet)ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 3.0), new TimeStamp(tt + 3.0 + 1.0 / 24.0)), "TriggerLink")).GetScalar(0)); }
public void GetValues() { HydroNumerics.OpenMI.Sdk.Wrapper.UnitTest.Trigger trigger = new HydroNumerics.OpenMI.Sdk.Wrapper.UnitTest.Trigger(); TimeSeriesComponent ts = new TimeSeriesComponent(); ts.Initialize(new Argument[0]); Link triggerLink = new Link(); triggerLink.ID = "TriggerLink"; triggerLink.SourceComponent = ts; triggerLink.SourceElementSet = ts.GetOutputExchangeItem(0).ElementSet; triggerLink.SourceQuantity = ts.GetOutputExchangeItem(0).Quantity; triggerLink.TargetComponent = trigger; triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; trigger.AddLink(triggerLink); ts.AddLink(triggerLink); double tt = ts.TimeHorizon.Start.ModifiedJulianDay; TimeStamp[] triggerTimes = new TimeStamp[4]; triggerTimes[0] = new TimeStamp(tt + 0.5); triggerTimes[1] = new TimeStamp(tt + 1.5); triggerTimes[2] = new TimeStamp(tt + 1.9); triggerTimes[3] = new TimeStamp(tt + 2.1); trigger.Run(triggerTimes); Assert.AreEqual(0,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0)); Assert.AreEqual(1,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(1)).GetScalar(0)); Assert.AreEqual(1,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(2)).GetScalar(0)); Assert.AreEqual(2,((IScalarSet)trigger.ResultsBuffer.GetValuesAt(3)).GetScalar(0)); //Teting with timespans Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt+2),new TimeStamp(tt + 2.0 + 1.0/24.0)),"TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 1.0/24.0),new TimeStamp(tt + 2.0 + 2.0/24.0)),"TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 2.0/24.0),new TimeStamp(tt + 2.0 + 3.0/24.0)),"TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 5.0/24.0),new TimeStamp(tt + 2.0 + 6.0/24.0)),"TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 15.0/24.0),new TimeStamp(tt + 2.0 + 16.0/24.0)),"TriggerLink")).GetScalar(0)); Assert.AreEqual(2.0,((ScalarSet) ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 2.0 + 23.0/24.0),new TimeStamp(tt + 2.0 + 24.0/24.0)),"TriggerLink")).GetScalar(0)); Assert.AreEqual(3.0,((ScalarSet) ts.GetValues(new HydroNumerics.OpenMI.Sdk.Backbone.TimeSpan(new TimeStamp(tt + 3.0 ),new TimeStamp(tt + 3.0 + 1.0/24.0)),"TriggerLink")).GetScalar(0)); }