static public void PopulateWithTestData(this XmlSerializableModelRunDefinition mrd)
        {
            mrd.StartDate = new DateTime(Rand.Next(1900, 1980), Rand.Next(1, 12), Rand.Next(1, 29));
            mrd.EndDate   = new DateTime(Rand.Next(1980, 2012), Rand.Next(1, 12), Rand.Next(1, 29));
            mrd.FullyQualifiedModelName = Rand.NextString();

            // Inputs
            ModelInputsDefinition inputs = (ModelInputsDefinition)mrd.Inputs;

            inputs.CatchmentIdentifier = Rand.NextString();
            inputs.StartDate           = mrd.StartDate;
            inputs.EndDate             = mrd.EndDate;
            inputs.NcIndexVarname      = Rand.NextString();
            inputs.NetCdfDataFilename  = Rand.NextString();
            for (int i = 0; i < Rand.Next(1, 5); i++)
            {
                inputs.ModelVarToNcVar.Add(Rand.NextString(), Rand.NextString());
            }

            int numCells = Rand.Next(1, 4);

            inputs.CellIdentifiers = new string[numCells];
            for (int i = 0; i < numCells; i++)
            {
                inputs.CellIdentifiers[i] = Rand.NextString();
            }

            // state init
            SimpleStateForcingInitialization state = (SimpleStateForcingInitialization)mrd.StateInitialization;

            for (int i = 0; i < Rand.Next(1, 5); i++)
            {
                state.InitialStates.Add(Rand.NextString(), Rand.NextDouble());
            }

            // outputs
            ModelPropertiesOutputRecordingDefinition outputs = (ModelPropertiesOutputRecordingDefinition)mrd.Outputs;

            for (int i = 0; i < Rand.Next(1, 5); i++)
            {
                outputs.RecordedModelOutputs.Add(Rand.NextString());
            }

            // parameterisation
            ((SimpleParameterization)mrd.Parameterization).ParameterSet = new ParameterSet(typeof(GR4J));
        }
Example #2
0
        private static void AssertThatModelRunDefinitionsAreEqual(XmlSerializableModelRunDefinition a, XmlSerializableModelRunDefinition b)
        {
            Assert.That(a.StartDate, Is.EqualTo(b.StartDate));
            Assert.That(a.EndDate, Is.EqualTo(b.EndDate));

            // inputs
            ModelInputsDefinition ai = (ModelInputsDefinition)a.Inputs;
            ModelInputsDefinition bi = (ModelInputsDefinition)b.Inputs;

            Assert.That(ai.CatchmentIdentifier, Is.EqualTo(bi.CatchmentIdentifier));
            Assert.That(ai.StartDate, Is.EqualTo(bi.StartDate));
            Assert.That(ai.EndDate, Is.EqualTo(bi.EndDate));
            Assert.That(ai.NcIndexVarname, Is.EqualTo(bi.NcIndexVarname));
            Assert.That(ai.NetCdfDataFilename, Is.EqualTo(bi.NetCdfDataFilename));
            Assert.That(ai.ModelVarToNcVar, Is.EquivalentTo(bi.ModelVarToNcVar));
            Assert.That(ai.ModelVarToNcVar.Count, Is.GreaterThan(0));
            Assert.That(ai.CellIdentifiers, Is.Not.Null);
            Assert.That(bi.CellIdentifiers, Is.Not.Null);
            Assert.That(ai.CellIdentifiers, Is.EquivalentTo(bi.CellIdentifiers));

            // state init
            SimpleStateForcingInitialization asi = (SimpleStateForcingInitialization)a.StateInitialization;
            SimpleStateForcingInitialization bsi = (SimpleStateForcingInitialization)b.StateInitialization;

            Assert.That(asi.InitialStates, Is.EquivalentTo(bsi.InitialStates));
            Assert.That(asi.InitialStates.Count, Is.GreaterThan(0));

            // outputs
            ModelPropertiesOutputRecordingDefinition ao = (ModelPropertiesOutputRecordingDefinition)a.Outputs;
            ModelPropertiesOutputRecordingDefinition bo = (ModelPropertiesOutputRecordingDefinition)b.Outputs;

            Assert.That(ao.RecordedModelOutputs, Is.EquivalentTo(bo.RecordedModelOutputs));
            Assert.That(ao.RecordedModelOutputs.Count, Is.GreaterThan(0));

            // parameters
            ParameterSet ap = ((SimpleParameterization)a.Parameterization).ParameterSet;
            ParameterSet bp = ((SimpleParameterization)b.Parameterization).ParameterSet;

            Assert.That(ap.Attributes, Is.EquivalentTo(bp.Attributes));
            Assert.That(ap.modelType, Is.SameAs(bp.modelType));
            Assert.That(ap.Count, Is.EqualTo(bp.Count));
        }