import pytest from model_data.EpcClean import EpcClean from model_data.analysis.SapModel import SapModel from model_data.tests.test_data.sap_model_data import data class TestSapModel: @pytest.fixture def cleaner(self): cleaner = EpcClean(data=data) cleaner.clean() return cleaner @pytest.fixture def model(self, cleaner): model = SapModel(data, cleaner=cleaner) return model def test_run(self, model): assert model.final_model is None assert model.test_model is None model.run() assert model.final_model is not None assert model.test_model is not None # Note - this will potentially be different on different machines so may need to adjust these tests accordingly # when running in CI/CD assert (model.fit_error['Median Absolute Error'] - 1.7316860436422203) < 0.00001 assert (model.predict_error['Median Absolute Error'] - 2.85481857667385) < 0.00001 # final model doesn't do that well on this test data assert (model.final_error['Median Absolute Error'] - 10.050349496213855) < 0.00001