diff --git a/src/forecaster/service/Forecaster.py b/src/forecaster/service/Forecaster.py index 1f0f606ca12442dcc33940182a6c1bcedb610780..d2b5b4d09af35752ffa221eabaf40b1d22515d32 100644 --- a/src/forecaster/service/Forecaster.py +++ b/src/forecaster/service/Forecaster.py @@ -24,10 +24,19 @@ def compute_forecast(samples : pandas.DataFrame, kpi_id : KpiId) -> float: samples = samples[samples.kpi_id == kpi_uuid].copy() num_samples = samples.shape[0] + if num_samples <= 0: + MSG = 'KpiId({:s}): Wrong number of samples: {:d}' + raise Exception(MSG.format(kpi_uuid, num_samples)) + num_samples_test = math.ceil(num_samples / FORECAST_TO_HISTORY_RATIO) + if num_samples_test <= 0: + MSG = 'KpiId({:s}): Wrong number of test samples: {:d}' + raise Exception(MSG.format(kpi_uuid, num_samples_test )) + num_samples_train = num_samples - num_samples_test - if num_samples_train <= 0: raise Exception('Wrong number of train samples: {:d}'.format(num_samples_train)) - if num_samples_test <= 0: raise Exception('Wrong number of test samples: {:d}'.format(num_samples_test )) + if num_samples_train <= 0: + MSG = 'KpiId({:s}): Wrong number of train samples: {:d}' + raise Exception(MSG.format(kpi_uuid, num_samples_train)) samples['timestamp'] = pandas.to_datetime(samples['timestamp']) - datetime(1970, 1, 1, tzinfo=timezone.utc) samples['timestamp'] = samples['timestamp'].dt.total_seconds() diff --git a/src/forecaster/tests/test_unitary.py b/src/forecaster/tests/test_unitary.py index eb952cfda4d3a804d5be1b106e20f7c5a2e45200..a4063931f2a020a6f3101785023e02291ce0b9ad 100644 --- a/src/forecaster/tests/test_unitary.py +++ b/src/forecaster/tests/test_unitary.py @@ -34,8 +34,12 @@ from .PrepareTestScenario import ( # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) +logging.getLogger('common.tests.InMemoryObjectDatabase').setLevel(logging.INFO) +logging.getLogger('common.tests.InMemoryTimeSeriesDatabase').setLevel(logging.INFO) logging.getLogger('common.tests.MockServicerImpl_Context').setLevel(logging.INFO) +logging.getLogger('common.tests.MockServicerImpl_Monitoring').setLevel(logging.INFO) logging.getLogger('context.client.ContextClient').setLevel(logging.INFO) +logging.getLogger('monitoring.client.MonitoringClient').setLevel(logging.INFO) JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID)