// The new function is only monotonic for 35.2 < summerLength < 84.8
        private void verifyIsMonotonic(TemperatureEquation temperatureEquation, int summerLength)
        {
            double     lastTemp = -1000;
            double     temp;
            List <int> failures = new List <int>();

            for (int day = 1; day <= 60; day++)
            {
                temp = temperatureEquation.getTodaysTemp(day);
                if (temp < lastTemp)
                {
                    failures.Add(day);
                }
                lastTemp = temp;
            }
            for (int day = 61; day <= 120; day++)
            {
                temp = temperatureEquation.getTodaysTemp(day);
                if (temp > lastTemp)
                {
                    failures.Add(day);
                }
                lastTemp = temp;
            }
            Assert.AreEqual(0, failures.Count, "For summer of length " + summerLength + " there were " + failures.Count + " entries that were not monotonic: " + printList(failures));
        }
        public void HighVarianceTemperaturesCorrectTestCase()
        {
            TemperatureEquation temperatureEquation = new TemperatureEquation(20, 80, 60, 12.0);

            Console.WriteLine("High Variance");
            printYearOfTemps(temperatureEquation);
            assertBetween(1, temperatureEquation.getTodaysTemp(1), 20 - 12 / 2, 20 + 12 / 2 + 1);
            assertBetween(120, temperatureEquation.getTodaysTemp(120), 20 - 12 / 2, 20 + 12 / 2);
            assertBetween(61, temperatureEquation.getTodaysTemp(60), 80 - 12 / 2, 80 + 12 / 2 + 1);
            assertBetween(91, temperatureEquation.getTodaysTemp(90), 50 - 12 / 2, 50 + 12 / 2 + 1);
            assertBetween(31, temperatureEquation.getTodaysTemp(30), 50 - 12 / 2, 50 + 12 / 2 + 1);
        }
        public void LongSummerTemperaturesCorrectTestCase()
        {
            TemperatureEquation temperatureEquation = new TemperatureEquation(20, 80, 90, 6.0);

            Console.WriteLine("Long Summer");
            printYearOfTemps(temperatureEquation);
            assertBetween(1, temperatureEquation.getTodaysTemp(1), 20 - 6 / 2, 20 + 6 / 2 + 1);
            assertBetween(120, temperatureEquation.getTodaysTemp(120), 20 - 6 / 2, 20 + 6 / 2);
            assertBetween(61, temperatureEquation.getTodaysTemp(61), 80 - 6 / 2, 80 + 6 / 2 + 1);
            assertBetween(91, temperatureEquation.getTodaysTemp(106), 50 - 6 / 2, 50 + 6 / 2 + 1);
            assertBetween(31, temperatureEquation.getTodaysTemp(16), 50 - 6 / 2, 50 + 6 / 2 + 1);
        }
        public void NormalBoundariesTemperaturesCorrectTestCase()
        {
            TemperatureEquation temperatureEquation = new TemperatureEquation(20, 80, 60, 6.0);

            Console.WriteLine("Normal Boundaries");
            printYearOfTemps(temperatureEquation);
            assertBetween(1, temperatureEquation.getTodaysTemp(1), 20 - 6 / 2, 20 + 6 / 2 + 1);
            assertBetween(120, temperatureEquation.getTodaysTemp(120), 20 - 6 / 2, 20 + 6 / 2);
            assertBetween(61, temperatureEquation.getTodaysTemp(61), 80 - 6 / 2, 80 + 6 / 2 + 1);
            assertBetween(91, temperatureEquation.getTodaysTemp(91), 50 - 6 / 2, 50 + 6 / 2 + 1);
            assertBetween(31, temperatureEquation.getTodaysTemp(31), 50 - 6 / 2, 50 + 6 / 2 + 1);
        }
 private void printYearOfTemps(TemperatureEquation temperatureEquation)
 {
     for (int day = 1; day <= 120; day++)
     {
         int temp = temperatureEquation.getTodaysTemp(day);
         Console.Write(temp + ", ");
     }
     Console.Write("\n");
 }
Ejemplo n.º 6
0
 public void generateYearsTemps(int year)
 {
     int[] temps = new int[WorldDate.DAYS_PER_YEAR];
     for (int day = 1; day <= temps.Length; day++)
     {
         temps[day - 1] = temperatureEquation.getTodaysTemp(day);
     }
     dailyTemps = new DailyTemps(year, temps);
 }
        public void TemperatureInGeneralRangeTestCase()
        {
            TemperatureEquation temperatureEquation = new TemperatureEquation(20, 80, 60, 6.0);

            for (int day = 1; day <= 120; day++)
            {
                int temp = temperatureEquation.getTodaysTemp(day);
                assertBetween(day, temp, 20 - 6 / 2, 80 + 6 / 2);
            }
        }