def test_local_weights(self): ass=self.assignments score_bmrb1=ScoreFunction(bmrb=1) score_sym1=ScoreFunction(symmetry=1) score_cons1=ScoreFunction(consistency=1) #apply scores to fill local score-info score_bmrb1(ass) score_sym1(ass) score_cons1(ass) cache=ass.scores.atomic key=cache.keys()[0] self.assertEqual(0,score_sym1.evaluate_local_scores(cache[key])) self.assertNotEqual(0,score_bmrb1.evaluate_local_scores(cache[key])) cache=ass.scores.assignments #find a non-zero symmetry entry for key in cache.iterkeys(): if cache[key]['symmetry'].score!=0: break self.assertNotEqual(0,score_sym1.evaluate_local_scores(cache[key])) self.assertEqual(0,score_bmrb1.evaluate_local_scores(cache[key])) cache=ass.scores.atomic key=cache.keys()[0] bmrb1=score_bmrb1.evaluate_local_scores(cache[key]) cons1=score_cons1.evaluate_local_scores(cache[key]) self.assertEqual(bmrb1*0.2+cons1*3.2,ScoreFunction(bmrb=0.2,consistency=3.2).evaluate_local_scores(cache[key])) self.assertEqual(-bmrb1+cons1*3.2,ScoreFunction(bmrb=-1,consistency=3.2).evaluate_local_scores(cache[key]))