public void test_query_disc_strict() throws Exception { System.out.println("Testing non-inclusive queryDisc()"); Random rng = new Random(5); for (int o = 0; o <= 5; ++o) { int npix = (int) HealpixProc.order2Npix(o); boolean[] map = new boolean[npix]; Vec3[] vmap = new Vec3[npix]; for (int m = 0; m < npix; ++m) { map[m] = false; vmap[m] = HealpixProc.pix2vecRing(o, m); } for (int m = 0; m < nsamples; ++m) { Pointing ptg = random_dir(rng); double rad = Math.PI * rng.nextDouble(); RangeSet rs = HealpixProc.queryDiscRing(o, ptg, rad); Vec3 vptg = new Vec3(ptg); double cosrad = Math.cos(rad); for (int i = 0; i < rs.nranges(); ++i) for (long j = rs.ivbegin(i); j < rs.ivend(i); ++j) map[(int) j] = true; for (int i = 0; i < npix; ++i) { boolean inside = vmap[i].dot(vptg) > cosrad; assertFalse("query_disc_strict problem", inside ^ map[i]); } for (int i = 0; i < rs.nranges(); ++i) for (long j = rs.ivbegin(i); j < rs.ivend(i); ++j) map[(int) j] = false; } } }