diff --git a/tests/cross_validation/test_air_passengers_cross_valid.py b/tests/cross_validation/test_air_passengers_cross_valid.py
new file mode 100644
index 000000000..12fe6a8bf
--- /dev/null
+++ b/tests/cross_validation/test_air_passengers_cross_valid.py
@@ -0,0 +1,48 @@
+import pandas as pd
+import numpy as np
+
+import pyaf.ForecastEngine as autof
+import pyaf.Bench.TS_datasets as tsds
+
+b1 = tsds.load_airline_passengers()
+df = b1.mPastData
+
+df.head()
+
+
+lEngine = autof.cForecastEngine()
+lEngine
+
+H = b1.mHorizon;
+# lEngine.mOptions.enable_slow_mode();
+lEngine.mOptions.mCrossValidationOptions.mMethod = "TSCV";
+
+lEngine.mOptions.mParallelMode = True;
+lEngine.train(df , b1.mTimeVar , b1.mSignalVar, H);
+lEngine.getModelInfo();
+print(lEngine.mSignalDecomposition.mTrPerfDetails.head());
+
+lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution
+
+lEngine.standardPlots(name = "outputs/my_airline_passengers_cross_valid")
+
+dfapp_in = df.copy();
+dfapp_in.tail()
+
+#H = 12
+dfapp_out = lEngine.forecast(dfapp_in, H);
+dfapp_out.tail(2 * H)
+print("Forecast Columns " , dfapp_out.columns);
+lForecastColumnName = b1.mSignalVar + '_Forecast'
+Forecast_DF = dfapp_out[[b1.mTimeVar , b1.mSignalVar, lForecastColumnName , lForecastColumnName + '_Lower_Bound', lForecastColumnName + '_Upper_Bound' ]]
+print(Forecast_DF.info())
+print("Forecasts\n" , Forecast_DF.tail(2*H));
+
+print("\n\n")
+print(lEngine.to_json());
+print("\n\n")
+print("\n\n")
+print(Forecast_DF.tail(2*H).to_json(date_format='iso'))
+print("\n\n")
+
+# lEngine.standardPlots(name = "outputs/airline_passengers")
diff --git a/tests/cross_validation/test_ozone_cross_valid.py b/tests/cross_validation/test_ozone_cross_valid.py
new file mode 100644
index 000000000..3837c784b
--- /dev/null
+++ b/tests/cross_validation/test_ozone_cross_valid.py
@@ -0,0 +1,52 @@
+from __future__ import absolute_import
+
+import pandas as pd
+import numpy as np
+
+
+import pyaf.ForecastEngine as autof
+import pyaf.Bench.TS_datasets as tsds
+
+
+b1 = tsds.load_ozone()
+df = b1.mPastData
+
+#df.tail(10)
+#df[:-10].tail()
+#df[:-10:-1]
+#df.describe()
+
+
+lEngine = autof.cForecastEngine()
+lEngine
+
+H = b1.mHorizon;
+# lEngine.mOptions.enable_slow_mode();
+lEngine.mOptions.mCrossValidationOptions.mMethod = "TSCV";
+lEngine.train(df , b1.mTimeVar , b1.mSignalVar, H);
+lEngine.getModelInfo();
+print(lEngine.mSignalDecomposition.mTrPerfDetails.head());
+
+lEngine.mSignalDecomposition.mBestModel.mTimeInfo.mResolution
+
+lEngine.standardPlots("outputs/my_ozone_cross_valid");
+
+dfapp_in = df.copy();
+dfapp_in.tail()
+
+#H = 12
+dfapp_out = lEngine.forecast(dfapp_in, H);
+#dfapp_out.to_csv("outputs/ozone_apply_out.csv")
+dfapp_out.tail(2 * H)
+print("Forecast Columns " , dfapp_out.columns);
+Forecast_DF = dfapp_out[[b1.mTimeVar , b1.mSignalVar, b1.mSignalVar + '_Forecast']]
+print(Forecast_DF.info())
+print("Forecasts\n" , Forecast_DF.tail(H));
+
+print("\n\n")
+print(lEngine.to_json());
+print("\n\n")
+print("\n\n")
+print(Forecast_DF.tail(2*H).to_json(date_format='iso'))
+print("\n\n")
+