@Test
public void forcedPeriodicityTest2() {

	// Same as above but check results with different trend and lowpass settings.
	double[] data = new double[144];
	for (int i = 0; i < data.length; ++i) {
		data[i] = fNonRobustNoisySinusoidResults[i][0];
	}
	SeasonalTrendLoess.Builder builder = new SeasonalTrendLoess.Builder().setPeriodLength(12);
	builder = builder.setSeasonalWidth(100000001).setSeasonalDegree(0).setSeasonalJump(100000001); // Force periodic by hand
	builder = builder.setTrendWidth(23).setTrendDegree(0).setTrendJump(100000);
	builder = builder.setLowpassWidth(13).setLowpassDegree(0).setLowpassJump(1);
	builder = builder.setInnerIterations(2).setRobustnessIterations(0);
	SeasonalTrendLoess smoother = builder.buildSmoother(data);
	SeasonalTrendLoess.Decomposition stl = smoother.decompose();
	double epsilon = 1.0e-10; // Doing absolute differences and some values > 10
	double[] seasonal = stl.getSeasonal();
	for (int i = 0; i < 12; ++i) {
		for (int p = 0; p < 12; ++p) {
			assertEquals(seasonal[i], seasonal[i + p * 12], epsilon);
		}
	}
}