def test_movavg(self): """ Test movavg """ R = Table.inputfromfile('test_csv/real_sales1.csv') expect = Table.inputfromfile('test_csv/moving_avg_of_step_1.csv') R1 = Table.movavg(R, ['qty', 1]) expect = Table.sort(expect, ['saleid']) R1 = Table.sort(R1, ['saleid']) self.assertEqual(len(R1.table), len(expect.table)) for i in range(len(R1.table)): self.assertAlmostEqual(R1.table[i]['avg(qty)'], expect.table[i]['avg(qty)'], places=4) expect = Table.inputfromfile('test_csv/moving_avg_of_step_3.csv') R1 = Table.movavg(R, ['qty', 3]) expect = Table.sort(expect, ['saleid']) R1 = Table.sort(R1, ['saleid']) self.assertEqual(len(R1.table), len(expect.table)) for i in range(len(R1.table)): self.assertAlmostEqual(R1.table[i]['avg(qty)'], expect.table[i]['avg(qty)'], places=4) expect = Table.inputfromfile('test_csv/moving_avg_of_step_n.csv') R1 = Table.movavg(R, ['qty', len(R.table)]) expect = Table.sort(expect, ['saleid']) R1 = Table.sort(R1, ['saleid']) self.assertEqual(len(R1.table), len(expect.table)) for i in range(len(R1.table)): self.assertAlmostEqual(R1.table[i]['avg(qty)'], expect.table[i]['avg(qty)'], places=3)