public void DontStandardiseDisabledSoils() { Soil soil = CreateSimpleSoil(); Utilities.InitialiseModel(soil); Physical phys = soil.FindChild <Physical>(); // Remove a layer from BD - this will cause standardisation to fail. phys.BD = new double[phys.BD.Length - 1]; // Now disable the soil so it doesn't get standardised. soil.Enabled = false; // Chuck the soil in a simulation. Simulations sims = Utilities.GetRunnableSim(); Zone paddock = sims.FindDescendant <Zone>(); paddock.Children.Add(soil); soil.Parent = paddock; // Run the simulation - this shouldn't fail, because the soil is disabled. var runner = new Models.Core.Run.Runner(sims); List <Exception> errors = runner.Run(); Assert.AreEqual(0, errors.Count, "There should be no errors - the faulty soil is disabled"); }
private static Simulation CreateSimulation(string path) { path = PathUtilities.GetAbsolutePath(path, null); Simulations sims = FileFormat.ReadFromFile <Simulations>(path, e => throw e, false); foreach (Soil soil in sims.FindAllDescendants <Soil>()) { SoilStandardiser.Standardise(soil); } DataStore storage = sims.FindDescendant <DataStore>(); storage.UseInMemoryDB = true; Clock clock = sims.FindDescendant <Clock>(); clock.EndDate = clock.StartDate.AddYears(1); return(sims.FindDescendant <Simulation>()); }
public void AddNodeWithMissingLink() { Simulations sims = Utilities.GetRunnableSim(); Zone sim = sims.FindDescendant <Zone>(); Structure.Add(new Model0(), sim); Runner runner = new Runner(sims); List <Exception> errors = runner.Run(); Assert.AreEqual(1, errors.Count); }