/usr/lib/python2.7/dist-packages/csb/test/cases/numeric/integrators.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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | import numpy as np
import csb.test as test
from math import cos
from csb.numeric.integrators import LeapFrog, FastLeapFrog, VelocityVerlet, AbstractGradient
from csb.statistics.samplers import State
@test.functional
class TestIntegrators(test.Case):
def setUp(self):
super(TestIntegrators, self).setUp()
self.dt = 0.1
self.grad = self._createGradient(1.)
self.nsteps = 100
self.state = State(np.array([1.]), np.array([0.]))
def _createGradient(self, sigma):
class Grad(AbstractGradient):
def evaluate(self, q, t):
return q / (sigma ** 2)
return Grad()
def _run(self, algorithm):
result = algorithm.integrate(self.state, self.nsteps).final.position
self.assertAlmostEqual(result, cos(self.nsteps * self.dt), delta=0.1)
def testLeapFrog(self):
algorithm = LeapFrog(self.dt, self.grad)
self._run(algorithm)
def testFastLeapFrog(self):
algorithm = FastLeapFrog(self.dt, self.grad)
self._run(algorithm)
def testVelocityVerlet(self):
algorithm = VelocityVerlet(self.dt, self.grad)
self._run(algorithm)
@test.regression
class ReferenceRegressions(test.Case):
"""
@see: [0000108]
"""
def setUp(self):
super(ReferenceRegressions, self).setUp()
self.dt = 0.1
self.grad = self._createGradient(1.)
self.nsteps = 100
self.state = State(np.array([1.]), np.array([0.]))
def _createGradient(self, sigma):
class Grad(AbstractGradient):
def evaluate(self, q, t):
return q / (sigma ** 2)
return Grad()
def _run(self, algorithm):
result = algorithm.integrate(self.state, self.nsteps, return_trajectory=True)
self.assertFalse(result[0].position[0] == result[10].position[0])
self.assertFalse(result[10].position[0] == result[20].position[0])
self.assertFalse(result[0].position == result.final.position)
def testLeapFrog(self):
algorithm = LeapFrog(self.dt, self.grad)
self._run(algorithm)
def testVelocityVerlet(self):
algorithm = VelocityVerlet(self.dt, self.grad)
self._run(algorithm)
if __name__ == '__main__':
test.Console()
|