@Test
  public void testConversionVeryBig() {
    long veryBig = (long) Integer.MAX_VALUE * 3;

    ColumnChunkMetaData md = newMD(veryBig);
    assertTrue(md instanceof LongColumnChunkMetaData);
    assertEquals(veryBig, md.getFirstDataPageOffset());
  }
  @Test
  public void testConversionNeg() {
    long neg = -1;

    ColumnChunkMetaData md = newMD(neg);
    assertTrue(md instanceof LongColumnChunkMetaData);
    assertEquals(neg, md.getFirstDataPageOffset());
  }
  @Test
  public void testConversionSmall() {
    long small = 1;

    ColumnChunkMetaData md = newMD(small);
    assertTrue(md instanceof IntColumnChunkMetaData);
    assertEquals(small, md.getFirstDataPageOffset());
  }
 private ColumnChunkMetaData newMD(long big) {
   Set<Encoding> e = new HashSet<Encoding>();
   PrimitiveTypeName t = BINARY;
   ColumnPath p = ColumnPath.get("foo");
   CompressionCodecName c = CompressionCodecName.GZIP;
   BinaryStatistics s = new BinaryStatistics();
   ColumnChunkMetaData md = ColumnChunkMetaData.get(p, t, c, e, s, big, 0, 0, 0, 0);
   return md;
 }