public void testGetArgumentConversionPrice() { // Unknown number types: assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice(RationalNumber.class, Integer.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, RationalNumber.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice(RationalNumber.class, Float.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice(Float.class, RationalNumber.class)); assertEquals( 0, OverloadedNumberUtil.getArgumentConversionPrice( RationalNumber.class, RationalNumber.class)); // Fully check some rows (not all of them; the code is generated anyways): assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, Byte.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, Short.class)); assertEquals(0, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, Integer.class)); assertEquals(10004, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, Long.class)); assertEquals( 10005, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, BigInteger.class)); assertEquals( 30006, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, Float.class)); assertEquals( 20007, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, Double.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, BigDecimal.class)); assertEquals( 45001, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, Byte.class)); assertEquals( 44002, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, Short.class)); assertEquals( 41003, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, Integer.class)); assertEquals( 41004, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, Long.class)); assertEquals( 40005, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, BigInteger.class)); assertEquals( 33006, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, Float.class)); assertEquals( 32007, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, Double.class)); assertEquals( 0, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, BigDecimal.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, Byte.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, Short.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, Integer.class)); assertEquals( 21004, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, Long.class)); assertEquals( 21005, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, BigInteger.class)); assertEquals( 40006, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, Float.class)); assertEquals( 0, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, Double.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, BigDecimal.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, Byte.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, Short.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, Integer.class)); assertEquals( Integer.MAX_VALUE, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, Long.class)); assertEquals( 0, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, BigInteger.class)); assertEquals( 40006, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, Float.class)); assertEquals( 20007, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, Double.class)); assertEquals( 10008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, BigDecimal.class)); // Check if all fromC is present: assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice(Byte.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice(Short.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice(Integer.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice(Long.class, BigDecimal.class)); assertEquals( 10008, OverloadedNumberUtil.getArgumentConversionPrice(BigInteger.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice(Float.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice(Double.class, BigDecimal.class)); assertEquals( 0, OverloadedNumberUtil.getArgumentConversionPrice(BigDecimal.class, BigDecimal.class)); assertEquals( 0, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.IntegerBigDecimal.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrFloat.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.FloatOrByte.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrShort.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.FloatOrByte.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.FloatOrShort.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.FloatOrInteger.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrByte.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrIntegerOrFloat.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrInteger.class, BigDecimal.class)); assertEquals( 20008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.DoubleOrLong.class, BigDecimal.class)); assertEquals( 10008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrByte.class, BigDecimal.class)); assertEquals( 10008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrShort.class, BigDecimal.class)); assertEquals( 10008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrInteger.class, BigDecimal.class)); assertEquals( 10008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrLong.class, BigDecimal.class)); assertEquals( 10008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrFloat.class, BigDecimal.class)); assertEquals( 10008, OverloadedNumberUtil.getArgumentConversionPrice( OverloadedNumberUtil.BigIntegerOrDouble.class, BigDecimal.class)); }