def test_periodic_decomposition(self): series = TimeSeries([ (1, 100), (2, 200), (3, 100), (4, 200), (5, 100) ]) decomposed = series.decompose(2, periodic=True).round() self.assertTrue(isinstance(decomposed, DataFrame)) self.assertEquals(len(decomposed), 3) for series in decomposed.itervalues(): self.assertListEqual(series.timestamps, [1, 2, 3, 4, 5]) self.assertListEqual(decomposed['trend'].values, [150] * 5) self.assertListEqual(decomposed['seasonal'].values, [-50, 50, -50, 50, -50]) self.assertListEqual(decomposed['residual'].values, [0] * 5)