77#include " CForecastModelPersistTest.h"
88
99#include < core/CLogger.h>
10+ #include < core/Constants.h>
1011#include < core/CoreTypes.h>
1112
1213#include < maths/CNormalMeanPrecConjugate.h>
@@ -28,26 +29,34 @@ void CForecastModelPersistTest::testPersistAndRestore() {
2829 SModelParams params{bucketLength};
2930 params.s_DecayRate = 0.001 ;
3031 params.s_LearnRate = 1.0 ;
32+ params.s_MinimumTimeToDetectChange = 6 * core::constants::HOUR;
33+ params.s_MaximumTimeToTestForChange = core::constants::DAY;
3134 maths::CTimeSeriesDecomposition trend (params.s_DecayRate , bucketLength);
35+
3236 maths::CNormalMeanPrecConjugate prior{maths::CNormalMeanPrecConjugate::nonInformativePrior (
3337 maths_t ::E_ContinuousData, params.s_DecayRate )};
34- maths::CModelParams timeSeriesModelParams{bucketLength, params.s_LearnRate ,
38+ maths::CModelParams timeSeriesModelParams{bucketLength,
39+ params.s_LearnRate ,
3540 params.s_DecayRate ,
36- minimumSeasonalVarianceScale};
41+ minimumSeasonalVarianceScale,
42+ params.s_MinimumTimeToDetectChange ,
43+ params.s_MaximumTimeToTestForChange };
3744 maths::CUnivariateTimeSeriesModel timeSeriesModel{timeSeriesModelParams, 1 , trend, prior};
3845
3946 CForecastModelPersist::CPersist persister (ml::test::CTestTmpDir::tmpDir ());
4047 persister.addModel (&timeSeriesModel, model_t ::EFeature::E_IndividualCountByBucketAndPerson,
4148 " some_by_field" );
42-
49+ trend. dataType ( maths_t ::E_MixedData);
4350 maths::CNormalMeanPrecConjugate otherPrior{maths::CNormalMeanPrecConjugate::nonInformativePrior (
4451 maths_t ::E_MixedData, params.s_DecayRate )};
52+
4553 maths::CUnivariateTimeSeriesModel otherTimeSeriesModel{timeSeriesModelParams,
4654 2 , trend, otherPrior};
4755
4856 persister.addModel (&otherTimeSeriesModel, model_t ::EFeature::E_IndividualLowMeanByPerson,
4957 " some_other_by_field" );
5058
59+ trend.dataType (maths_t ::E_DiscreteData);
5160 maths::CNormalMeanPrecConjugate otherPriorEmptyByField{
5261 maths::CNormalMeanPrecConjugate::nonInformativePrior (maths_t ::E_DiscreteData,
5362 params.s_DecayRate )};
@@ -83,7 +92,10 @@ void CForecastModelPersistTest::testPersistAndRestore() {
8392 CPPUNIT_ASSERT_EQUAL (params.s_DecayRate , restoredModel->params ().decayRate ());
8493 CPPUNIT_ASSERT_EQUAL (minimumSeasonalVarianceScale,
8594 restoredModel->params ().minimumSeasonalVarianceScale ());
86-
95+ CPPUNIT_ASSERT_EQUAL (params.s_MinimumTimeToDetectChange ,
96+ restoredModel->params ().minimumTimeToDetectChange ());
97+ CPPUNIT_ASSERT_EQUAL (params.s_MaximumTimeToTestForChange ,
98+ restoredModel->params ().maximumTimeToTestForChange ());
8799 CPPUNIT_ASSERT_EQUAL (timeSeriesModelForForecast->checksum (42 ),
88100 restoredModel->checksum (42 ));
89101
@@ -103,6 +115,10 @@ void CForecastModelPersistTest::testPersistAndRestore() {
103115 CPPUNIT_ASSERT_EQUAL (params.s_DecayRate , restoredModel->params ().decayRate ());
104116 CPPUNIT_ASSERT_EQUAL (minimumSeasonalVarianceScale,
105117 restoredModel->params ().minimumSeasonalVarianceScale ());
118+ CPPUNIT_ASSERT_EQUAL (params.s_MinimumTimeToDetectChange ,
119+ restoredModel->params ().minimumTimeToDetectChange ());
120+ CPPUNIT_ASSERT_EQUAL (params.s_MaximumTimeToTestForChange ,
121+ restoredModel->params ().maximumTimeToTestForChange ());
106122 CPPUNIT_ASSERT_EQUAL (otherTimeSeriesModelForForecast->checksum (42 ),
107123 restoredModel->checksum (42 ));
108124
0 commit comments