1 from unittest import TestCase
2 from bluechips.tests import *
3 from bluechips import model
4 from bluechips.model import meta
5 from webhelpers.number import standard_deviation as std_dev
7 class TestSplitRandom(TestCase):
13 def tearDownClass(cls):
22 def test_splitTotal(self):
23 for e in meta.Session.query(model.Expenditure):
24 self.assertEqual(sum(s.share for s in e.splits), e.amount)
26 def test_splitDistribution(self):
27 for e in meta.Session.query(model.Expenditure):
28 even_total = (e.amount / meta.Session.query(model.User).count())
29 self.assert_(std_dev(list(s.share for s in e.splits)) <= even_total, \
30 "Expenditure doesn't appear to be evenly distributed")