Beispiel #1
0
 def test_nuisance_down(self):
     n = IMP.Particle(self.m)
     Nuisance.setup_particle(n, 1.0)
     Nuisance(n).set_lower(0.5)
     Nuisance(n).set_upper(1.5)
     n.set_value(Nuisance.get_nuisance_key(), 0.1)
     self.rs.evaluate(False)
     self.assertAlmostEqual(n.get_value(Nuisance.get_nuisance_key()),
                            0.5, delta=1e-7)
     self.assertAlmostEqual(self.rs.values[0], 0.5)
Beispiel #2
0
 def testdsigma(self):
     "Test LognormalRestraint(3) sigma derivative"
     gr = LognormalRestraint(*self.all)
     for i in range(100):
         map(self.change_value, self.all)
         gr.evaluate(True)
         self.assertAlmostEqual(
             Nuisance(self.sigma).get_nuisance_derivative(),
             self.deriv_sigma(*self.all))
Beispiel #3
0
 def testdmu(self):
     "Test LognormalRestraint(3) mu derivative"
     gr = LognormalRestraint(*self.all)
     self.m.add_restraint(gr)
     for i in range(100):
         map(self.change_value, self.all)
         self.m.evaluate(True)
         self.assertAlmostEqual(
             Nuisance(self.mu).get_nuisance_derivative(),
             self.deriv_mu(*self.all))
Beispiel #4
0
 def testdmu(self):
     "Test GaussianRestraint(3) mu derivative"
     gr = GaussianRestraint(*self.all)
     for i in range(100):
         map(self.change_value, self.all)
         map(self.change_sign, self.locations)
         gr.evaluate(True)
         self.assertAlmostEqual(
             Nuisance(self.mu).get_nuisance_derivative(),
             self.deriv_mu(*self.all))
Beispiel #5
0
 def testdx(self):
     "Test GaussianRestraint(3) x derivative"
     gr = GaussianRestraint(*self.all)
     self.m.add_restraint(gr)
     for i in xrange(100):
         map(self.change_value, self.all)
         map(self.change_sign, self.locations)
         self.m.evaluate(True)
         self.assertAlmostEqual(
             Nuisance(self.x).get_nuisance_derivative(),
             self.deriv_x(*self.all))
Beispiel #6
0
 def change_value(self, p, min=0.1, max=100):
     try:
         n = Nuisance(p)
     except:
         return
     n.set_nuisance(random.uniform(min, max))
Beispiel #7
0
 def get_value(self, p):
     try:
         v = Nuisance(p).get_nuisance()
     except:
         v = p
     return v
Beispiel #8
0
 def change_sign(self, p):
     try:
         n = Nuisance(p)
     except:
         return
     n.set_nuisance(n.get_nuisance() * (2 * random.randint(2) - 1))