コード例 #1
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));
        }
コード例 #2
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));
		
		}