📄 numericconversiontest.java
字号:
{ new Long(55), Short.class, new Short((short)55) },
{ new Float(55), Short.class, new Short((short)55) },
{ new BigInteger("55"), Short.class, new Short((short)55) },
{ new BigDecimal("55"), Short.class, new Short((short)55) },
/* To Long.class */
{ "55", Long.class, new Long(55) },
{ new Integer(55), Long.class, new Long(55) },
{ new Double(55), Long.class, new Long(55) },
{ Boolean.TRUE, Long.class, new Long(1) },
{ new Byte((byte)55), Long.class, new Long(55) },
{ new Character((char)55), Long.class, new Long(55) },
{ new Short((short)55), Long.class, new Long(55) },
{ new Long(55), Long.class, new Long(55) },
{ new Float(55), Long.class, new Long(55) },
{ new BigInteger("55"), Long.class, new Long(55) },
{ new BigDecimal("55"), Long.class, new Long(55) },
/* To Float.class */
{ "55.1234", Float.class, new Float(55.1234) },
{ new Integer(55), Float.class, new Float(55) },
{ new Double(55.1234), Float.class, new Float(55.1234) },
{ Boolean.TRUE, Float.class, new Float(1) },
{ new Byte((byte)55), Float.class, new Float(55) },
{ new Character((char)55), Float.class, new Float(55) },
{ new Short((short)55), Float.class, new Float(55) },
{ new Long(55), Float.class, new Float(55) },
{ new Float(55.1234), Float.class, new Float(55.1234) },
{ new BigInteger("55"), Float.class, new Float(55) },
{ new BigDecimal("55.1234"), Float.class, new Float(55.1234) },
/* To BigInteger.class */
{ "55", BigInteger.class, new BigInteger("55") },
{ new Integer(55), BigInteger.class, new BigInteger("55") },
{ new Double(55), BigInteger.class, new BigInteger("55") },
{ Boolean.TRUE, BigInteger.class, new BigInteger("1") },
{ new Byte((byte)55), BigInteger.class, new BigInteger("55") },
{ new Character((char)55), BigInteger.class, new BigInteger("55") },
{ new Short((short)55), BigInteger.class, new BigInteger("55") },
{ new Long(55), BigInteger.class, new BigInteger("55") },
{ new Float(55), BigInteger.class, new BigInteger("55") },
{ new BigInteger("55"), BigInteger.class, new BigInteger("55") },
{ new BigDecimal("55"), BigInteger.class, new BigInteger("55") },
/* To BigDecimal.class */
{ "55.1234", BigDecimal.class, new BigDecimal("55.1234") },
{ new Integer(55), BigDecimal.class, new BigDecimal("55") },
{ new Double(55.1234), BigDecimal.class, new BigDecimal("55.1234"), new Integer(4) },
{ Boolean.TRUE, BigDecimal.class, new BigDecimal("1") },
{ new Byte((byte)55), BigDecimal.class, new BigDecimal("55") },
{ new Character((char)55), BigDecimal.class, new BigDecimal("55") },
{ new Short((short)55), BigDecimal.class, new BigDecimal("55") },
{ new Long(55), BigDecimal.class, new BigDecimal("55") },
{ new Float(55.1234), BigDecimal.class, new BigDecimal("55.1234"), new Integer(4) },
{ new BigInteger("55"), BigDecimal.class, new BigDecimal("55") },
{ new BigDecimal("55.1234"), BigDecimal.class, new BigDecimal("55.1234") },
};
private Object value;
private Class toClass;
private Object expectedValue;
private int scale;
/*===================================================================
Public static methods
===================================================================*/
public static TestSuite suite()
{
TestSuite result = new TestSuite();
for (int i = 0; i < TESTS.length; i++) {
result.addTest(new NumericConversionTest(TESTS[i][0],
(Class)TESTS[i][1],
TESTS[i][2],
(TESTS[i].length > 3) ? ((Integer)TESTS[i][3]).intValue() : -1));
}
return result;
}
/*===================================================================
Constructors
===================================================================*/
public NumericConversionTest(Object value, Class toClass, Object expectedValue, int scale)
{
super(value + " [" + value.getClass().getName() + "] -> " + toClass.getName() + " == " + expectedValue + " [" + expectedValue.getClass().getName() + "]" + ((scale >= 0) ? (" (to within " + scale + " decimal places)") : ""));
this.value = value;
this.toClass = toClass;
this.expectedValue = expectedValue;
this.scale = scale;
}
/*===================================================================
Overridden methods
===================================================================*/
protected void runTest() throws OgnlException
{
Object result;
result = OgnlOps.convertValue(value, toClass);
if (!isEqual(result, expectedValue)) {
if (scale >= 0) {
double scalingFactor = Math.pow(10, scale),
v1 = ((Number)value).doubleValue() * scalingFactor,
v2 = ((Number)expectedValue).doubleValue() * scalingFactor;
assertTrue((int)v1 == (int)v2);
} else {
fail();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -