public void HardCodedConfiguration() { ILinkableComponent riverModel = new RiverModelLC(); IArgument[] riverArguments = new Argument[0]; riverModel.Initialize(riverArguments); Assert.AreEqual("RiverModelLC", riverModel.Id); ILinkableComponent gwModel = new GWModelLC(); IArgument[] gwArguments = new Argument[0]; gwModel.Initialize(gwArguments); Assert.AreEqual("GWModelLC", gwModel.Id); }
public void GetValues4A() { //This test is: RiverModel --> GWModel --> Trigger //Testing: Georeferenced links RiverModelLC riverModel = new RiverModelLC(); GWModelLC gWModel = new GWModelLC(); Trigger trigger = new Trigger(); riverModel.Initialize(new Argument[0]); gWModel.Initialize(new Argument[0]); Link riverGWLink = new Link(); riverGWLink.ID = "RiverGWLink"; riverGWLink.SourceComponent = riverModel; riverGWLink.SourceElementSet = riverModel.GetOutputExchangeItem(6).ElementSet; riverGWLink.SourceQuantity = riverModel.GetOutputExchangeItem(0).Quantity; riverGWLink.TargetComponent = gWModel; riverGWLink.TargetElementSet = gWModel.GetInputExchangeItem(0).ElementSet; riverGWLink.TargetQuantity = gWModel.GetInputExchangeItem(0).Quantity; int dataOperationIndex = -9; for (int i = 0; i < riverModel.GetOutputExchangeItem(6).DataOperationCount; i++) { if (riverModel.GetOutputExchangeItem(6).GetDataOperation(i).ID == "ElementMapper501") { dataOperationIndex = i; } } if (dataOperationIndex < 0) { throw new Exception("failed to find dataOperation"); } riverGWLink.AddDataOperation(riverModel.GetOutputExchangeItem(6).GetDataOperation(dataOperationIndex)); Link triggerLink = new Link(); triggerLink.ID = "RiverGWLink"; triggerLink.SourceComponent = gWModel; triggerLink.SourceElementSet = gWModel.GetOutputExchangeItem(0).ElementSet; triggerLink.SourceQuantity = gWModel.GetOutputExchangeItem(0).Quantity; triggerLink.TargetComponent = trigger; triggerLink.TargetElementSet = trigger.GetInputExchangeItem(0).ElementSet; triggerLink.TargetQuantity = trigger.GetInputExchangeItem(0).Quantity; riverModel.AddLink(riverGWLink); gWModel.AddLink(riverGWLink); gWModel.AddLink(triggerLink); trigger.AddLink(triggerLink); riverModel.Prepare(); gWModel.Prepare(); double firstTriggerGetValuesTime = riverModel.TimeHorizon.Start.ModifiedJulianDay; TimeStamp[] triggerTimes = new TimeStamp[2]; triggerTimes[0] = new TimeStamp(firstTriggerGetValuesTime + 12.1); triggerTimes[1] = new TimeStamp(firstTriggerGetValuesTime + 16.7); trigger.Run(triggerTimes); double x0 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(0); Assert.AreEqual(0.0,x0); double x1 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(1); Assert.AreEqual(105.0/16.0,x1); double x2 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(2); Assert.AreEqual(7.5,x2); double x3 = ((IScalarSet)trigger.ResultsBuffer.GetValuesAt(0)).GetScalar(3); Assert.AreEqual(5.0+35.0/16.0,x3); riverModel.Finish(); gWModel.Finish(); riverModel.Dispose(); gWModel.Dispose(); }