Ejemplo n.º 1
0
 @Test
 public void testSerialization4() throws IOException, ClassNotFoundException {
   final MutableRoaringBitmap rr = new MutableRoaringBitmap();
   for (int k = 1; k <= 10000000; k += 10) rr.add(k);
   final ByteArrayOutputStream bos = new ByteArrayOutputStream();
   // Note: you could use a file output steam instead of
   // ByteArrayOutputStream
   int howmuch = rr.serializedSizeInBytes();
   final DataOutputStream oo = new DataOutputStream(bos);
   rr.serialize(oo);
   oo.close();
   Assert.assertEquals(howmuch, bos.toByteArray().length);
   final MutableRoaringBitmap rrback = new MutableRoaringBitmap();
   final ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
   rrback.deserialize(new DataInputStream(bis));
   Assert.assertEquals(rr.getCardinality(), rrback.getCardinality());
   Assert.assertTrue(rr.equals(rrback));
 }
Ejemplo n.º 2
0
  @Test
  public void testContains() throws IOException {
    System.out.println("test contains");
    MutableRoaringBitmap rbm1 = new MutableRoaringBitmap();
    for (int k = 0; k < 1000; ++k) {
      rbm1.add(17 * k);
    }
    for (int k = 0; k < 17 * 1000; ++k) {
      Assert.assertTrue(rbm1.contains(k) == (k / 17 * 17 == k));
    }
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    DataOutputStream dos = new DataOutputStream(bos);
    rbm1.serialize(dos);
    dos.close();
    ByteBuffer bb = ByteBuffer.allocateDirect(bos.size());
    bb.put(bos.toByteArray());
    bb.flip();
    ImmutableRoaringBitmap rrback1 = new ImmutableRoaringBitmap(bb);
    for (int k = 0; k < 17 * 1000; ++k) {

      Assert.assertTrue(rrback1.contains(k) == (k / 17 * 17 == k));
    }
  }