def test_min_score(self): """Test the MinimumPairScore""" m= IMP.Model() s= [] for i in range(0,5): s.append(IMP._ConstPairScore(i)) ps= IMP.container.MinimumPairScore(s, 3) p= self.create_particle_pair(m) ps.set_was_used(True) v= ps.evaluate(p, None) self.assertEqual(v, 3)
def test_evaluate(self): """Check TypedPairScore::evaluate()""" ps = IMP.core.TypedPairScore(typekey) cps = IMP._ConstPairScore(5) ps.set_pair_score(cps, 0, 1) # Keep Python reference to the model so that the particles # aren't destroyed m = IMP.Model() pa, pb = self._make_particles(m, (0, 1)) da = IMP.DerivativeAccumulator() # The ordering of the particles should not matter: pab=(pa, pb) pba=(pb, pa) self.assertEqual(ps.evaluate(pab, da), 5.0) self.assertEqual(ps.evaluate(pba, da), 5.0)
def test_evaluate(self): """Check TypedPairScore::evaluate()""" ps = IMP.core.TypedPairScore(typekey) cps = IMP._ConstPairScore(5) ps.set_pair_score(cps, 0, 1) # Keep Python reference to the model so that the particles # aren't destroyed m = IMP.Model() pa, pb = self._make_particles(m, (0, 1)) da = IMP.DerivativeAccumulator() # The ordering of the particles should not matter: pab = (pa, pb) pba = (pb, pa) self.assertEqual(ps.evaluate_index(m, pab, da), 5.0) self.assertEqual(ps.evaluate_index(m, pba, da), 5.0)
def test_restraint(self): """Simple test of the PairsRestraint""" m = IMP.Model() cps = IMP._ConstPairScore(1) ps = [m.add_particle("P%d" % i) for i in range(0, 10)] psc = IMP.container.ListSingletonContainer(m, ps) apc = IMP.container.AllPairContainer(psc) r = IMP.container.PairsRestraint(cps, apc) self.assertEqual(r.evaluate(False), len(apc.get_indexes())) lpc = IMP.container.ListPairContainer(m, apc.get_indexes()) r2 = IMP.container.PairsRestraint(cps, lpc) self.assertEqual(r2.evaluate(False), len(apc.get_indexes())) self.assertEqual(r2.evaluate(False), len(apc.get_indexes())) sf = IMP.core.RestraintsScoringFunction([r2]) self.assertEqual(sf.evaluate(False), len(apc.get_indexes())) self.assertEqual(sf.evaluate(False), len(apc.get_indexes()))
def test_rops(self): """Checking refine pairs pair score""" IMP.set_log_level(IMP.VERBOSE) m = IMP.Model() pp = m.add_particle("p") hpp = IMP.core.Hierarchy.setup_particle(m, pp) c = [] for i in range(0, 10): p = IMP.Particle(m) hp = IMP.core.Hierarchy.setup_particle(p) hpp.add_child(hp) c.append(p) pr = IMP.core.ChildrenRefiner(IMP.core.Hierarchy.get_default_traits()) cps = IMP._ConstPairScore(1) rps = IMP.core.RefinedPairsPairScore(pr, cps) ppp = (pp, pp) print(type(rps)) print(type(rps.evaluate_index)) da = IMP.DerivativeAccumulator() print(type(pp)) print(type(ppp)) self.assertEqual(rps.evaluate_index(m, ppp, da), 100)