def testMovingHistoricalWindow(self): # test simple historical value holder window = 5 mh = MovingHistoricalWindow(window, "x") benchmarkContainer = deque(maxlen=window) for i, data in enumerate(self.sample): mh.push(dict(x=data)) benchmarkContainer.append(data) if i == 0: with self.assertRaises(ValueError): _ = mh[1] for k in range(mh.size()): expected = benchmarkContainer[mh.size() - 1 - k] calculated = mh[k] self.assertAlmostEqual(expected, calculated) # test compounded historical value holder ma = MovingSum(window, 'x') mh = MovingHistoricalWindow(window, ma) benchmarkContainer = deque(maxlen=window) for i, data in enumerate(self.sample): ma.push(dict(x=data)) mh.push(dict(x=data)) benchmarkContainer.append(ma.value) if i == 0: with self.assertRaises(ValueError): _ = mh[1] for k in range(mh.size()): expected = benchmarkContainer[mh.size() - 1 - k] calculated = mh[k] self.assertAlmostEqual( expected, calculated, 12, "at index {0} and position {1}\n" "expected: {2}\n" "calculated: {3}".format(i, k, expected, calculated))
def testMovingHistoricalWindow(self): # test simple historical value holder window = 5 mh = MovingHistoricalWindow(window, "x") benchmarkContainer = deque(maxlen=window) for i, data in enumerate(self.sample): mh.push(dict(x=data)) benchmarkContainer.append(data) if i == 0: with self.assertRaises(ValueError): _ = mh[1] for k in range(mh.size): expected = benchmarkContainer[mh.size - 1 - k] calculated = mh[k] self.assertAlmostEqual(expected, calculated) # test compounded historical value holder ma = MovingSum(window, 'x') mh = MovingHistoricalWindow(window, ma) benchmarkContainer = deque(maxlen=window) for i, data in enumerate(self.sample): ma.push(dict(x=data)) mh.push(dict(x=data)) benchmarkContainer.append(ma.value) if i == 0: with self.assertRaises(ValueError): _ = mh[1] for k in range(mh.size): expected = benchmarkContainer[mh.size - 1 - k] calculated = mh[k] self.assertAlmostEqual(expected, calculated, 12, "at index {0} and position {1}\n" "expected: {2}\n" "calculated: {3}".format(i, k, expected, calculated))
def testMovingSum(self): window = 120 total = 2500 mv = MovingSum(window, dependency='z') runningSum = 0.0 con = [] for i in range(total): value = float(i) con.append(value) mv.push(dict(z=value)) runningSum += value if i >= window: runningSum -= con[0] con = con[1:] if i >= window - 1: expected = runningSum calculated = mv.result() self.assertAlmostEqual( calculated, expected, 15, "at index {0:d}\n" "Sum expected: {1:f}\n" "Sum calculated: {2:f}".format(i, expected, calculated))
def testMovingSum(self): window = 120 total = 2500 mv = MovingSum(window, dependency=['z']) runningSum = 0.0 con = [] for i in range(total): value = float(i) con.append(value) mv.push(dict(z=value)) runningSum += value if i >= window: runningSum -= con[0] con = con[1:] if i >= window - 1: expected = runningSum calculated = mv.result() self.assertAlmostEqual(calculated, expected, 15, "at index {0:d}\n" "Sum expected: {1:f}\n" "Sum calculated: {2:f}".format(i, expected, calculated))