add statistics logging to sales forecast pipeline
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import importlib
|
||||
from datetime import datetime as Datetime
|
||||
from unittest.mock import patch
|
||||
|
||||
@@ -7,7 +6,6 @@ import pandas as pd
|
||||
import pytest
|
||||
from pydantic import ValidationError
|
||||
|
||||
import delta_barth.analysis.forecast
|
||||
from delta_barth.analysis import forecast as fc
|
||||
from delta_barth.api.requests import SalesPrognosisResponse, SalesPrognosisResponseEntry
|
||||
from delta_barth.errors import STATUS_HANDLER
|
||||
@@ -160,6 +158,7 @@ def test_preprocess_sales_FailOnTargetFeature(
|
||||
assert pipe.results is None
|
||||
|
||||
|
||||
@pytest.mark.new
|
||||
def test_process_sales_Success(sales_data_real_preproc):
|
||||
data = sales_data_real_preproc.copy()
|
||||
pipe = PipeResult(data, STATUS_HANDLER.SUCCESS)
|
||||
@@ -172,8 +171,17 @@ def test_process_sales_Success(sales_data_real_preproc):
|
||||
assert pipe.status == STATUS_HANDLER.SUCCESS
|
||||
assert pipe.data is not None
|
||||
assert pipe.results is None
|
||||
assert pipe.statistics is not None
|
||||
assert pipe.statistics.status_code == STATUS_HANDLER.SUCCESS.code
|
||||
assert pipe.statistics.status_dscr == STATUS_HANDLER.SUCCESS.description
|
||||
assert pipe.statistics.length_dataset is not None
|
||||
assert pipe.statistics.score_mae is not None
|
||||
assert pipe.statistics.score_r2 is not None
|
||||
assert pipe.statistics.best_start_year is not None
|
||||
assert pipe.statistics.XGB_params is not None
|
||||
|
||||
|
||||
@pytest.mark.new
|
||||
def test_process_sales_FailTooFewPoints(sales_data_real_preproc):
|
||||
data = sales_data_real_preproc.copy()
|
||||
data = data.iloc[:20, :]
|
||||
@@ -188,8 +196,19 @@ def test_process_sales_FailTooFewPoints(sales_data_real_preproc):
|
||||
assert pipe.status == STATUS_HANDLER.pipe_states.TOO_FEW_POINTS
|
||||
assert pipe.data is None
|
||||
assert pipe.results is None
|
||||
assert pipe.statistics is not None
|
||||
assert pipe.statistics.status_code == STATUS_HANDLER.pipe_states.TOO_FEW_POINTS.code
|
||||
assert (
|
||||
pipe.statistics.status_dscr == STATUS_HANDLER.pipe_states.TOO_FEW_POINTS.description
|
||||
)
|
||||
assert pipe.statistics.length_dataset is not None
|
||||
assert pipe.statistics.score_mae is None
|
||||
assert pipe.statistics.score_r2 is None
|
||||
assert pipe.statistics.best_start_year is None
|
||||
assert pipe.statistics.XGB_params is None
|
||||
|
||||
|
||||
@pytest.mark.new
|
||||
def test_process_sales_FailTooFewMonthPoints(sales_data_real_preproc):
|
||||
data = sales_data_real_preproc.copy()
|
||||
pipe = PipeResult(data, STATUS_HANDLER.SUCCESS)
|
||||
@@ -203,8 +222,20 @@ def test_process_sales_FailTooFewMonthPoints(sales_data_real_preproc):
|
||||
assert pipe.status == STATUS_HANDLER.pipe_states.TOO_FEW_MONTH_POINTS
|
||||
assert pipe.data is None
|
||||
assert pipe.results is None
|
||||
assert pipe.statistics is not None
|
||||
assert pipe.statistics.status_code == STATUS_HANDLER.pipe_states.TOO_FEW_MONTH_POINTS.code
|
||||
assert (
|
||||
pipe.statistics.status_dscr
|
||||
== STATUS_HANDLER.pipe_states.TOO_FEW_MONTH_POINTS.description
|
||||
)
|
||||
assert pipe.statistics.length_dataset is not None
|
||||
assert pipe.statistics.score_mae is None
|
||||
assert pipe.statistics.score_r2 is None
|
||||
assert pipe.statistics.best_start_year is None
|
||||
assert pipe.statistics.XGB_params is None
|
||||
|
||||
|
||||
@pytest.mark.new
|
||||
def test_process_sales_FailNoReliableForecast(sales_data_real_preproc):
|
||||
data = sales_data_real_preproc.copy()
|
||||
data["betrag"] = 10000
|
||||
@@ -237,6 +268,17 @@ def test_process_sales_FailNoReliableForecast(sales_data_real_preproc):
|
||||
assert pipe.status == STATUS_HANDLER.pipe_states.NO_RELIABLE_FORECAST
|
||||
assert pipe.data is None
|
||||
assert pipe.results is None
|
||||
assert pipe.statistics is not None
|
||||
assert pipe.statistics.status_code == STATUS_HANDLER.pipe_states.NO_RELIABLE_FORECAST.code
|
||||
assert (
|
||||
pipe.statistics.status_dscr
|
||||
== STATUS_HANDLER.pipe_states.NO_RELIABLE_FORECAST.description
|
||||
)
|
||||
assert pipe.statistics.length_dataset is not None
|
||||
assert pipe.statistics.score_mae is None
|
||||
assert pipe.statistics.score_r2 is None
|
||||
assert pipe.statistics.best_start_year is None
|
||||
assert pipe.statistics.XGB_params is None
|
||||
|
||||
|
||||
def test_postprocess_sales_Success(
|
||||
|
||||
Reference in New Issue
Block a user