Esempio n. 1
0
 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;
     }
   }
 }