public void testBigDecimal() throws IOException {
    ByteArrayOutputStream bo = new ByteArrayOutputStream();
    BigDecimal in = new BigDecimal("32599.00001");
    SmileGenerator g = smileGenerator(bo, false);
    g.writeNumber(in);
    g.close();
    byte[] data = bo.toByteArray();
    SmileParser p = _smileParser(data);
    assertToken(JsonToken.VALUE_NUMBER_FLOAT, p.nextToken());
    assertEquals(JsonParser.NumberType.BIG_DECIMAL, p.getNumberType());
    assertEquals(BigDecimal.class, p.getNumberValue().getClass());
    assertEquals(in, p.getDecimalValue());
    p.close();

    // second test; verify skipping works
    bo = new ByteArrayOutputStream();
    g = smileGenerator(bo, false);
    g.writeStartArray();
    g.writeNumber(in);
    g.writeEndArray();
    g.close();
    data = bo.toByteArray();
    p = _smileParser(data);
    assertToken(JsonToken.START_ARRAY, p.nextToken());
    assertToken(JsonToken.VALUE_NUMBER_FLOAT, p.nextToken());
    assertToken(JsonToken.END_ARRAY, p.nextToken());
    assertNull(p.nextToken());
    p.close();
  }
  public void testBigInteger() throws IOException {
    ByteArrayOutputStream bo = new ByteArrayOutputStream();
    BigInteger in = new BigInteger(String.valueOf(Long.MIN_VALUE) + "0012575934");
    SmileGenerator g = smileGenerator(bo, false);
    g.writeNumber(in);
    g.close();
    byte[] data = bo.toByteArray();
    SmileParser p = _smileParser(data);
    assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
    assertEquals(JsonParser.NumberType.BIG_INTEGER, p.getNumberType());
    assertEquals(BigInteger.class, p.getNumberValue().getClass());
    assertEquals(in, p.getBigIntegerValue());
    p.close();

    // second test; verify skipping works
    bo = new ByteArrayOutputStream();
    g = smileGenerator(bo, false);
    g.writeStartArray();
    g.writeNumber(in);
    g.writeEndArray();
    g.close();
    data = bo.toByteArray();
    p = _smileParser(data);
    assertToken(JsonToken.START_ARRAY, p.nextToken());
    assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
    assertToken(JsonToken.END_ARRAY, p.nextToken());
    assertNull(p.nextToken());
    p.close();
  }