def test_setup_number_of_weights(self): "Test setup weight with number of weights" for n in range(1, 20): p = IMP.Particle(self.m) w = Weight.setup_particle(p, n) self.assertTrue(Weight.get_is_setup(p)) self.assertEqual(w.get_number_of_weights(), n) for k in range(n): self.assertAlmostEqual(w.get_weight(k), 1.0 / n, delta=1e-6)
def test_setup_weights(self): "Test setup weight with initial values" for n in range(1, 20): p = IMP.Particle(self.m) ws = np.random.uniform(size=n) w = Weight.setup_particle(p, ws) self.assertTrue(Weight.get_is_setup(p)) self.assertEqual(w.get_number_of_weights(), n) self.assertSequenceAlmostEqual( w.get_weights(), IMP.algebra.get_projected( w.get_unit_simplex(), IMP.algebra.VectorKD(ws) ), )