public void correct_period_of_forecast_errors_from_one_day()
        {
            // Arrange
            const int numberOfForecastErrors = 20;

            // Act
            var forecastErrors = ModelUtilities.GenerateHourlyForecastErrors(
                _installationId,
                _startDate,
                numberOfForecastErrors)
                                 .ToList();

            // Assert
            Assert.Equal(ForecastErrorPeriod.Hour, forecastErrors[0].Period);
        }
        public void correct_end_date_of_forecast_errors_from_one_day(
            int numberOfForecastErrors)
        {
            // Arrange
            var endDate = _startDate.AddHours(numberOfForecastErrors);

            // Act
            var forecastErrors = ModelUtilities.GenerateHourlyForecastErrors(
                _installationId,
                _startDate,
                numberOfForecastErrors)
                                 .ToList();

            // Assert
            Assert.Equal(endDate.ToLocalTime(), forecastErrors.Last().TillDateTime);
        }
        public void correct_period_of_forecast_errors_from_many_days()
        {
            // Arrange
            const short numberOfDays = 15;
            const short numberOfForecastErrorsInDay = 23;

            // Act
            var forecastErrors = ModelUtilities.GenerateHourlyForecastErrors(
                _installationId,
                _startDate,
                numberOfDays,
                numberOfForecastErrorsInDay)
                                 .ToList();

            // Assert
            Assert.Equal(ForecastErrorPeriod.Hour, forecastErrors[0].Period);
        }
        public void correct_last_request_date_of_forecast_errors_from_many_days(
            short numberOfDays,
            short numberOfForecastErrorsInDay,
            short lastDayRequestInterval)
        {
            // Arrange
            var endRequestDate = _startDate
                                 .AddDays(numberOfDays)
                                 .AddHours(lastDayRequestInterval - 24)
                                 .AddMinutes(ModelUtilities.RequestMinutesOffset);

            // Act
            var forecastErrors = ModelUtilities.GenerateHourlyForecastErrors(
                _installationId,
                _startDate,
                numberOfDays,
                numberOfForecastErrorsInDay)
                                 .ToList();

            // Assert
            Assert.Equal(
                endRequestDate.ToLocalTime(),
                forecastErrors.Last().RequestDateTime);
        }