@Test
public void testNumber()
{

   assertTrue(newModel().set(3).isDefined());
   assertEquals(ModelValue.ModelValueType.NUMBER, newModel().set(3).getValueType());
   assertEquals(ModelNumber.ModelNumberType.INT, newModel().set(3).getNumberType());
   assertEquals(3, newModel().set(3).getInt());
   assertTrue(newModel().set(3L).isDefined());
   assertEquals(ModelValue.ModelValueType.NUMBER, newModel().set(3L).getValueType());
   assertEquals(ModelNumber.ModelNumberType.LONG, newModel().set(3L).getNumberType());
   assertEquals(3L, newModel().set(3L).getInt());
   assertTrue(newModel().set(Math.PI).isDefined());
   assertEquals(ModelValue.ModelValueType.NUMBER, newModel().set(Math.PI).getValueType());
   assertEquals(ModelNumber.ModelNumberType.DOUBLE, newModel().set(Math.PI).getNumberType());
   assertEquals(Math.PI, newModel().set(Math.PI).getDouble(), 0);
   BigInteger bi = new BigInteger("3");
   assertTrue(newModel().set(bi).isDefined());
   assertEquals(ModelValue.ModelValueType.NUMBER, newModel().set(bi).getValueType());
   assertEquals(ModelNumber.ModelNumberType.BIG_INTEGER, newModel().set(bi).getNumberType());
   assertEquals(BigInteger.valueOf(3), newModel().set(bi).getBigInteger());
   BigDecimal bd = new BigDecimal(String.valueOf(Math.PI));
   assertTrue(newModel().set(bd).isDefined());
   assertEquals(ModelValue.ModelValueType.NUMBER, newModel().set(bd).getValueType());
   assertEquals(ModelNumber.ModelNumberType.BIG_DECIMAL, newModel().set(bd).getNumberType());
   assertEquals(BigDecimal.valueOf(Math.PI), newModel().set(bd).getBigDecimal());
}