public void ManyCohorts_Grow()
        {
            SpeciesCohorts cohorts = MakeCohorts(10, 20, 50, 100, 150);

            cohorts.Grow(10, new ActiveSite(), null);
            CheckAges(cohorts, 20, 30, 60, 110, 160);
        }
        public void OneCohort_GrowMaxAge()
        {
            SpeciesCohorts cohorts = MakeCohorts(species.Longevity);

            cohorts.Grow(1, new ActiveSite(), null);
            Assert.AreEqual(0, cohorts.Count);
        }
        public void NoCohorts_Grow()
        {
            SpeciesCohorts cohorts = MakeCohorts();

            cohorts.Grow(5, new ActiveSite(), null);
            Assert.AreEqual(0, cohorts.Count);
        }
        //---------------------------------------------------------------------

        private SpeciesCohorts CreateCohortsAndCombineYoung(int successionTimestep)
        {
            SpeciesCohorts cohorts = CreateCohorts(successionTimestep);

            cohorts.CombineYoungCohorts();
            return(cohorts);
        }
        public void ManyCohorts_GrowAllDie()
        {
            SpeciesCohorts cohorts = MakeCohorts(10, 20, 50, 100, 150);

            cohorts.Grow((ushort)species.Longevity, new ActiveSite(), null);
            Assert.AreEqual(0, cohorts.Count);
        }
예제 #6
0
        public void GetMaxAge_1SpeciesCohort()
        {
            int            age     = 10;
            SpeciesCohorts cohorts = MakeCohorts(species1, age);

            Assert.AreEqual(age, AgeCohortUtil.GetMaxAge(cohorts));
        }
        public void NoCohorts_Grow()
        {
            SpeciesCohorts cohorts = MakeCohorts();

            cohorts.Grow(5, null, null);
            Assert.AreEqual(0, Count(cohorts));
        }
        public void OneCohort_GrowMaxAge()
        {
            SpeciesCohorts cohorts = MakeCohorts(species.Longevity);

            cohorts.Grow(1, null, null);
            Assert.AreEqual(0, Count(cohorts));
        }
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes a new instance for a set of species cohorts.
        /// </summary>
        public OldToYoungIterator(SpeciesCohorts cohorts)
        {
            this.cohorts = cohorts;
            this.nextIndex = 0;
            this.currentCohortDied = false;
            MoveNext();
        }
		//---------------------------------------------------------------------

		private int Count(SpeciesCohorts cohorts)
		{
			int count = 0;
			foreach (ushort age in cohorts.Ages)
				count++;
			return count;
		}
        //---------------------------------------------------------------------

        /// <summary>
        /// Initializes a new instance for a set of species cohorts.
        /// </summary>
        public OldToYoungIterator(SpeciesCohorts cohorts)
        {
            this.cohorts = cohorts;
            this.currentCohortAge = cohorts[0];
            this.index = 0;
            this.nextIndex = 0;  // In case MoveNext is called before 1st call
                                 // to GrowCurrentCohort.
        }
        public void OneCohort_Grow()
        {
            SpeciesCohorts cohorts = MakeCohorts(10);

            cohorts.Grow(5, null, null);
            Assert.AreEqual(1, Count(cohorts));
            CheckAges(cohorts, 15);
        }
        public void OneCohort_Grow()
        {
            SpeciesCohorts cohorts = MakeCohorts(10);

            cohorts.Grow(5, new ActiveSite(), null);
            Assert.AreEqual(1, cohorts.Count);
            CheckAges(cohorts, 15);
        }
예제 #14
0
        public void OneCohort()
        {
            SpeciesCohorts cohorts = MakeCohorts(species.Longevity);

            cohorts.Grow(1, activeSite);
            Assert.AreEqual(0, Count(cohorts));
            CheckDeadCohorts(species.Longevity + 1);
        }
        public void ManyCohorts_GrowSomeDie()
        {
            SpeciesCohorts cohorts = MakeCohorts(10, 20, species.Longevity - 5,
                                                 species.Longevity);

            cohorts.Grow(10, new ActiveSite(), null);
            CheckAges(cohorts, 20, 30);
        }
예제 #16
0
        public void OneCohort()
        {
            SpeciesCohorts cohorts = MakeCohorts(species.Longevity);

            expectedSender = cohorts;
            cohorts.Grow(1, activeSite, null);
            Assert.AreEqual(0, cohorts.Count);
            CheckDeadCohorts(species.Longevity + 1);
        }
        //---------------------------------------------------------------------

        private int Count(SpeciesCohorts cohorts)
        {
            int count = 0;

            foreach (ushort age in cohorts.Ages)
            {
                count++;
            }
            return(count);
        }
예제 #18
0
        public void ManyCohort()
        {
            SpeciesCohorts cohorts = MakeCohorts(10, 20,
                                                 species.Longevity - 9,
                                                 species.Longevity - 5,
                                                 species.Longevity);

            cohorts.Grow(10, activeSite);
            Assert.AreEqual(2, Count(cohorts));
            CheckDeadCohorts(species.Longevity + 1,
                             species.Longevity + 5,
                             species.Longevity + 10);
        }
예제 #19
0
        public void GetMaxAge_ManySiteCohorts()
        {
            SpeciesCohorts cohorts1 = MakeCohorts(species1, 10, 20, 50, 100, 150);
            SpeciesCohorts cohorts2 = MakeCohorts(species2, 170, 190, 200);

            List <ISpeciesCohorts> list = new List <ISpeciesCohorts>();

            list.Add(cohorts1);
            list.Add(cohorts2);

            SiteCohorts siteCohorts = new SiteCohorts(list);

            Assert.AreEqual(200, AgeCohortUtil.GetMaxAge(siteCohorts));
        }
예제 #20
0
        public void ManyCohort()
        {
            SpeciesCohorts cohorts = MakeCohorts(10, 20,
                                                 species.Longevity - 9,
                                                 species.Longevity - 5,
                                                 species.Longevity);

            expectedSender = cohorts;
            cohorts.Grow(10, activeSite, null);
            Assert.AreEqual(2, cohorts.Count);
            CheckDeadCohorts(species.Longevity + 1,
                             species.Longevity + 5,
                             species.Longevity + 10);
        }
        //---------------------------------------------------------------------

        private void CheckAges(SpeciesCohorts cohorts,
                               params int[]   agesAsInts)
        {
            ushort[] ages = ToUShorts(agesAsInts);
            System.Array.Sort(ages);

            ushort[] cohortAges = (new List <ushort>(cohorts.Ages)).ToArray();
            System.Array.Sort(cohortAges);

            Assert.AreEqual(ages.Length, cohortAges.Length);
            foreach (int i in Indexes.Of(ages))
            {
                Assert.AreEqual(ages[i], cohortAges[i]);
            }
        }
        //---------------------------------------------------------------------

        private SpeciesCohorts CreateCohorts(int successionTimestep)
        {
            Landis.Biomass.Cohorts.Initialize(successionTimestep,
                                              mockCalculator);

            const int initialBiomass = 500;
            SpeciesCohorts cohorts = new SpeciesCohorts(betualle, initialBiomass);

            Assert.AreEqual(1, cohorts.Count);
            ICohort cohort = cohorts[0];
            Assert.IsNotNull(cohort);
            Assert.AreEqual(betualle, cohort.Species);
            Assert.AreEqual(1, cohort.Age);
            Assert.AreEqual(initialBiomass, cohort.Biomass);

            return cohorts;
        }
        //---------------------------------------------------------------------

        private SpeciesCohorts CreateCohorts(int successionTimestep)
        {
            Landis.Biomass.Cohorts.Initialize(successionTimestep,
                                              mockCalculator);

            const int      initialBiomass = 500;
            SpeciesCohorts cohorts        = new SpeciesCohorts(betualle, initialBiomass);

            Assert.AreEqual(1, cohorts.Count);
            ICohort cohort = cohorts[0];

            Assert.IsNotNull(cohort);
            Assert.AreEqual(betualle, cohort.Species);
            Assert.AreEqual(1, cohort.Age);
            Assert.AreEqual(initialBiomass, cohort.Biomass);

            return(cohorts);
        }
        //---------------------------------------------------------------------

        private void CheckAges(SpeciesCohorts cohorts,
                               params int[]   agesAsInts)
        {
            ushort[] ages = ToUShorts(agesAsInts);
            System.Array.Sort(ages);

            List <ushort> cohortAgeList = new List <ushort>(cohorts.Count);

            foreach (ICohort cohort in cohorts)
            {
                cohortAgeList.Add(cohort.Age);
            }
            ushort[] cohortAges = cohortAgeList.ToArray();
            System.Array.Sort(cohortAges);

            Assert.AreEqual(ages.Length, cohortAges.Length);
            foreach (int i in Indexes.Of(ages))
            {
                Assert.AreEqual(ages[i], cohortAges[i]);
            }
        }
        //---------------------------------------------------------------------

        private OldToYoungIterator CreateAndUseItor(SpeciesCohorts cohorts)
        {
            Assert.AreEqual(1, cohorts.Count);
            ICohort cohort         = cohorts[0];
            ushort  initialAge     = cohort.Age;
            int     initialBiomass = cohort.Biomass;

            OldToYoungIterator itor = cohorts.OldToYoung;

            Assert.IsNotNull(itor);
            Assert.AreEqual(cohorts, itor.SpeciesCohorts);
            Assert.AreEqual(cohort.Age, itor.Age);

            const int initialSiteBiomass = 1234;
            int       siteBiomass        = initialSiteBiomass;
            const int prevYearMortality  = 55;

            const int biomassChange = 111;

            mockCalculator.Change    = biomassChange;
            mockCalculator.Mortality = 20;

            int mortality = itor.GrowCurrentCohort(activeSite, ref siteBiomass,
                                                   prevYearMortality);

            Assert.AreEqual(mockCalculator.Mortality, mortality);

            Assert.AreEqual(1, cohorts.Count);
            cohort = cohorts[0];
            Assert.IsNotNull(cohort);
            Assert.AreEqual(betualle, cohort.Species);
            Assert.AreEqual(initialAge + 1, cohort.Age);
            Assert.AreEqual(initialBiomass + biomassChange, cohort.Biomass);

            Assert.IsFalse(itor.MoveNext());
            return(itor);
        }
        //---------------------------------------------------------------------

        private OldToYoungIterator CreateAndUseItor(SpeciesCohorts cohorts)
        {
            Assert.AreEqual(1, cohorts.Count);
            ICohort cohort = cohorts[0];
            ushort initialAge = cohort.Age;
            int initialBiomass = cohort.Biomass;

            OldToYoungIterator itor = cohorts.OldToYoung;
            Assert.IsNotNull(itor);
            Assert.AreEqual(cohorts, itor.SpeciesCohorts);
            Assert.AreEqual(cohort.Age, itor.Age);

            const int initialSiteBiomass = 1234;
            int siteBiomass = initialSiteBiomass;
            const int prevYearMortality = 55;

            const int biomassChange = 111;
            mockCalculator.Change = biomassChange;
            mockCalculator.Mortality = 20;

            int mortality = itor.GrowCurrentCohort(activeSite, ref siteBiomass,
                                                   prevYearMortality);
            Assert.AreEqual(mockCalculator.Mortality, mortality);

            Assert.AreEqual(1, cohorts.Count);
            cohort = cohorts[0];
            Assert.IsNotNull(cohort);
            Assert.AreEqual(betualle, cohort.Species);
            Assert.AreEqual(initialAge + 1, cohort.Age);
            Assert.AreEqual(initialBiomass + biomassChange, cohort.Biomass);

            Assert.IsFalse(itor.MoveNext());
            return itor;
        }
예제 #27
0
        public void GetMaxAge_ManySpeciesCohorts()
        {
            SpeciesCohorts cohorts = MakeCohorts(species1, 10, 20, 50, 100, 150);

            Assert.AreEqual(150, AgeCohortUtil.GetMaxAge(cohorts));
        }
예제 #28
0
        public void GetMaxAge_NoSpeciesCohorts()
        {
            SpeciesCohorts cohorts = MakeCohorts(species1);

            Assert.AreEqual(0, AgeCohortUtil.GetMaxAge(cohorts));
        }
        public void OneCohort_Species()
        {
            SpeciesCohorts cohorts = MakeCohorts(10);

            Assert.AreEqual(species, cohorts.Species);
        }
        public void NoCohorts_Count()
        {
            SpeciesCohorts cohorts = MakeCohorts();

            Assert.AreEqual(0, cohorts.Count);
        }
        public void OneCohort_Count()
        {
            SpeciesCohorts cohorts = MakeCohorts(10);

            Assert.AreEqual(1, cohorts.Count);
        }
        public void ManyCohorts_Species()
        {
            SpeciesCohorts cohorts = MakeCohorts(10, 20, 50, 100, 150);

            Assert.AreEqual(species, cohorts.Species);
        }
        public void ManyCohorts_Count()
        {
            SpeciesCohorts cohorts = MakeCohorts(10, 20, 50, 100, 150);

            Assert.AreEqual(5, cohorts.Count);
        }
        public void NoCohorts_Species()
        {
            SpeciesCohorts cohorts = MakeCohorts();

            Assert.AreEqual(species, cohorts.Species);
        }
		//---------------------------------------------------------------------

		private void CheckAges(SpeciesCohorts cohorts,
		                       params int[]   agesAsInts)
		{
			ushort[] ages = ToUShorts(agesAsInts);
			System.Array.Sort(ages);

			ushort[] cohortAges = (new List<ushort>(cohorts.Ages)).ToArray();
			System.Array.Sort(cohortAges);

			Assert.AreEqual(ages.Length, cohortAges.Length);
			foreach (int i in Indexes.Of(ages))
				Assert.AreEqual(ages[i], cohortAges[i]);
		}