/usr/lib/python2.7/dist-packages/csb/test/cases/statistics/maxent.py is in python-csb 1.2.3+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import numpy
import csb.test as test
import csb.io
from scipy.optimize import fmin_powell
from csb.numeric import log_sum_exp
from csb.statistics.maxent import MaxentModel, MaxentPosterior
@test.functional
class TestMaxent(test.Case):
def setUp(self):
super(TestMaxent, self).setUp()
self.data_fn = self.config.getTestFile('maxent.pickle')
@test.skip("slow")
def testMaxent(self):
k = 2
data = csb.io.load(self.data_fn)
model = MaxentModel(k)
model.sample_weights()
posterior = MaxentPosterior(model, data[:100000] / 180. * numpy.pi)
model.get() * 1.
x0 = posterior.model.get().flatten()
target = lambda w:-posterior(w, n=50)
x = fmin_powell(target, x0, disp=False)
self.assertTrue(x != None)
self.assertTrue(len(x) == k * k * 4)
posterior.model.set(x)
posterior.model.normalize(True)
xx = numpy.linspace(0 , 2 * numpy.pi, 500)
fx = posterior.model.log_prob(xx, xx)
self.assertAlmostEqual(posterior.model.log_z(integration='simpson'),
posterior.model.log_z(integration='trapezoidal'),
places=2)
self.assertTrue(fx != None)
z = numpy.exp(log_sum_exp(numpy.ravel(fx)))
self.assertAlmostEqual(z * xx[1] ** 2, 1., places=1)
if __name__ == '__main__':
test.Console()
|