// 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"); }
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); } }