blob: 2eff88bfa0f10eef7d67e6e2e419af2f1b4decd9 [file] [log] [blame]
package groovy
/**
* Test numeric literal types (with and without suffixes)
* @see org.codehaus.groovy.syntax.parser/ASTBuilder#createIntegralNumber()
* @see org.codehaus.groovy.syntax.parser/ASTBuilder#createDecimalNumber()
*
* @author Brian Larson
*/
class LiteralTypesTest extends GroovyTestCase {
void testIntegral() {
def x = 42;
assert x instanceof Integer;
x = 42I;
assert x instanceof Integer;
x = 42i;
assert x instanceof Integer;
x = 42L;
assert x instanceof Long;
x = 42G;
assert x instanceof BigInteger;
x = 0xFF; //Hex
assert x instanceof Integer;
assert x == new Integer("255");
x = 0xFFL; //Hex
assert x instanceof Long;
assert x == new Long("255");
x = 0xFFG; //Hex
assert x instanceof BigInteger;
assert x == new BigInteger("FF",16);
x = 0x9000000000000000;
assert x instanceof BigInteger;
assert x == new BigInteger("9000000000000000",16);
x = 077; //octal
assert x instanceof Integer;
assert x == new Integer("63");
x = 077l; //octal
assert x instanceof Long;
assert x == new Long("63");
x = 077g; //octal
assert x instanceof BigInteger;
assert x == new BigInteger("77",8);
x = 2147483647; // max integer value
assert x instanceof Integer;
assert x == new Integer("2147483647");
x = -2147483648; // min integer constant
assert x < 0
assert x == new Integer("-2147483648");
assert x instanceof Integer, x.class;
x = -2147483649; // min integer value - 1
assert x == new Long("-2147483649");
assert x instanceof Long;
x = 2147483648; // 1 + max integer value
assert x == new Long("2147483648");
assert x instanceof Long;
x = 9223372036854775807; // max long value
assert x == new Long("9223372036854775807");
assert x instanceof Long;
x = -9223372036854775808; // min long value
assert x == new Long("-9223372036854775808");
assert x instanceof Long;
x = -9223372036854775809; // min long value - 1
assert x == new BigInteger("-9223372036854775809");
assert x instanceof BigInteger;
x = 9223372036854775808; // 1 + max long value
assert x == new BigInteger("9223372036854775808");
assert x instanceof BigInteger;
}
void testDecimal() {
def x = 3.2;
assert x instanceof BigDecimal;
assert x == new BigDecimal("3.2");
x = 3.2G;
assert x instanceof BigDecimal;
assert x == new BigDecimal("3.2");
x = 3.2g;
assert x instanceof BigDecimal;
assert x == new BigDecimal("3.2");
x = -3.2;
assert x instanceof BigDecimal;
assert x == new BigDecimal("-3.2");
x = 3.2D;
assert x instanceof Double;
assert x == new Double("3.2");
x = -3.2d;
assert x instanceof Double;
assert x == new Double("-3.2");
x = 3.2F;
assert x instanceof Float;
assert x == new Float("3.2");
x = -3.2f;
assert x instanceof Float;
assert x == new Float("-3.2");
}
void testExponential() {
def x = 3.1415926535e42;
assert x instanceof BigDecimal;
assert x == new BigDecimal("3.1415926535e42");
x = 3.2e+2;
assert x instanceof BigDecimal;
assert x == new BigDecimal("3.2e+2");
x = 3.2e-2;
assert x instanceof BigDecimal;
assert x == new BigDecimal("3.2e-2");
x = 3.2e2d;
assert x instanceof Double;
assert x == new Double("3.2e2");
x = 3.2e2f;
assert x instanceof Float;
assert x == new Float("3.2e2");
}
}