def testVariance(self): # np.var is population variance mm = Variance(dependency='close', isPopulation=True) mm2 = Variance(dependency='close', ) for i, value in enumerate(self.samplesClose): mm.push(dict(close=value)) mm2.push(dict(close=value)) expected = np.var(self.samplesClose[:i + 1]) calculated = mm.result() if i == 0: with self.assertRaises(ArithmeticError): _ = mm2.result() self.assertAlmostEqual(expected, calculated, 10, "at index {0:d}\n" "expected var: {1:f}\n" "calculated var: {2:f}".format(i, expected, calculated)) if i >= 1: calculated = mm2.result() * i / (i + 1) # transform sample variance to population variance self.assertAlmostEqual(expected, calculated, 10, "at index {0:d}\n" "expected var: {1:f}\n" "calculated var: {2:f}".format(i, expected, calculated))
def testVariance(self): # np.var is population variance mm = Variance(dependency='close', isPopulation=True) mm2 = Variance(dependency='close', ) for i, value in enumerate(self.samplesClose): mm.push(dict(close=value)) mm2.push(dict(close=value)) expected = np.var(self.samplesClose[:i + 1]) calculated = mm.result() if i == 0: self.assertTrue(np.isnan(mm2.result())) self.assertAlmostEqual( expected, calculated, 10, "at index {0:d}\n" "expected var: {1:f}\n" "calculated var: {2:f}".format(i, expected, calculated)) if i >= 1: calculated = mm2.result() * i / ( i + 1) # transform sample variance to population variance self.assertAlmostEqual( expected, calculated, 10, "at index {0:d}\n" "expected var: {1:f}\n" "calculated var: {2:f}".format(i, expected, calculated))