def test_variance(): data = [4, 7, 13, 16] def naive_var(data): n = len(data) return ((sum(di**2 for di in data) - sum(data)**2 / n) / (n - 1)) from pytools import variance orig_variance = variance(data, entire_pop=False) assert abs(naive_var(data) - orig_variance) < 1e-15 data = [1e9 + x for x in data] assert abs(variance(data, entire_pop=False) - orig_variance) < 1e-15
def test_variance(): data = [4, 7, 13, 16] def naive_var(data): n = len(data) return (( sum(di**2 for di in data) - sum(data)**2/n) /(n-1)) from pytools import variance orig_variance = variance(data, entire_pop=False) assert abs(naive_var(data) - orig_variance) < 1e-15 data = [1e9 + x for x in data] assert abs(variance(data, entire_pop=False) - orig_variance) < 1e-15
def test_variance(): def sg_variance(iterable, entire_pop): from pyrticle._internal import StatsGatherer sg = StatsGatherer() for i in iterable: sg.add(i) if entire_pop: return sg.variance() else: return sg.variance_sample() for entire_pop in [False, True]: data = [4, 7, 13, 16] from pytools import variance orig_variance = variance(data, entire_pop) assert abs(sg_variance(data, entire_pop) - orig_variance) < 1e-15 data = [1e9 + x for x in data] assert abs(sg_variance(data, entire_pop) - orig_variance) < 1e-15