def test_bounding_ellipsoid(): """Test that bounding ellipsoid contains the points""" npoints = 100 print("\ntest_bounding_ellipsoid") for n in range(1, NMAX + 1): ell_gen = random_ellipsoid(n) # random elipsoid x = ell_gen.samples(npoints) # points within it ell = nestle.bounding_ellipsoid(x) for xi in x: assert ell.contains(xi) print("n={}: true_vol={} vol={}".format(n, ell_gen.vol, ell.vol))
def test_bounding_ellipsoid(): """Test that bounding ellipsoid contains the points""" npoints = 100 print("\ntest_bounding_ellipsoid") for n in range(1, NMAX+1): ell_gen = random_ellipsoid(n) # random elipsoid x = ell_gen.samples(npoints) # points within it ell = nestle.bounding_ellipsoid(x) for xi in x: assert ell.contains(xi) print("n={}: true_vol={} vol={}".format(n, ell_gen.vol, ell.vol))
def test_bounding_ellipsoid_robust(): """Test that bounding ellipsoid still works when npoints < dim but pointvol > 0.""" for n in range(1, NMAX + 1): ell_gen = random_ellipsoid(n) for npoints in range(1, n): x = ell_gen.samples(npoints) # check that it works ell = nestle.bounding_ellipsoid(x, pointvol=ell_gen.vol / npoints) # check that volume is as expected assert_allclose(ell.vol, ell_gen.vol) # check that points are contained for xi in x: assert ell.contains(xi)
def test_bounding_ellipsoid_robust(): """Test that bounding ellipsoid still works when npoints < dim but pointvol > 0.""" for n in range(1, NMAX+1): ell_gen = random_ellipsoid(n) for npoints in range(1, n): x = ell_gen.samples(npoints) # check that it works ell = nestle.bounding_ellipsoid(x, pointvol=ell_gen.vol/npoints) # check that volume is as expected assert_allclose(ell.vol, ell_gen.vol) # check that points are contained for xi in x: assert ell.contains(xi)
def update(self, points): pointvol = exp(-self.iter / len(points)) / len(points) self.ell = bounding_ellipsoid(numpy.asarray(points), pointvol=pointvol, minvol=True) self.ell.scale_to_vol(self.ell.vol * self.enlarge)