public CoolingProfileGenerator([NotNull] Profile temperatures, double coolingTemperature, double roomTemperature, [NotNull] ILogger logger) { if (temperatures.EnergyOrPower != EnergyOrPower.Temperatures) { throw new FlaException("Not a temperature profile"); } _logger = logger; _hdp = new CoolingDegreeProfile(temperatures, coolingTemperature, roomTemperature); }
public void RunTest() { Profile prof = Profile.MakeRandomProfile(new Random(), "myprofi", Profile.ProfileResolution.QuarterHour, -20, 40); CoolingDegreeProfile hdp = new CoolingDegreeProfile(prof, 25, 23); hdp.InitializeDailyAmounts(1000); Info("sum degree days: " + hdp.CalculateHeatingDegreeDaySum()); Info("sum energy: " + hdp.CalculateYearlyConsumptionSum()); foreach (var day in hdp.CoolingDegreeHours) { Info(day.ToString()); if (day.DegreeHours < 0) { throw new FlaException("Negative degree hours"); } } hdp.CalculateYearlyConsumptionSum().Should().BeApproximately(1000, 1); }