Files
simulationexam/tests/test_gibbs.py
T
2015-12-20 13:43:45 -05:00

36 lines
1.0 KiB
Python

from unittest import TestCase
from random import Random
from math import sqrt
from collections import defaultdict
from network.gibbs import get_random_networks, estimate_number_of_activated_antenna
def standard_deviation(lst):
sum_x = 0
sum_x_2 = 0
for elm in lst:
sum_x += elm
sum_x_2 += elm * elm
n = len(lst)
return sqrt(sum_x_2 / n - (sum_x / n)**2)
class TestGibbs(TestCase):
def test_get_random_networks(self):
counter = defaultdict(int)
random, n = Random(555), 1000
for _, network in zip(range(n), get_random_networks(2, random)):
counter[network] += 1
self.assertSetEqual(set(counter.keys()), {0, 1, 2, 4, 6, 8, 9})
self.assertLess(standard_deviation(counter.values()) / n, 0.1)
def test_estimate_number_of_activated_antenna(self):
random = Random(666)
est = estimate_number_of_activated_antenna(100, 2, random)
real = (0 + 1 + 1 + 1 + 1 + 2 + 2) / 7
assert abs(est - real) < 0.1