69 lines
1.8 KiB
Java
69 lines
1.8 KiB
Java
package com.baeldung.lossyconversion;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
public class ConversionTechniquesUnitTest {
|
|
|
|
@Test
|
|
public void testPrimitiveConversion() {
|
|
|
|
long longNum = 24;
|
|
short shortNum = (short) longNum;
|
|
assertEquals(24, shortNum);
|
|
|
|
double doubleNum = 15.6;
|
|
int integerNum = (int) doubleNum;
|
|
assertEquals(15, integerNum);
|
|
|
|
long largeLongNum = 32768;
|
|
short minShortNum = (short) largeLongNum;
|
|
assertEquals(-32768, minShortNum);
|
|
|
|
long smallLongNum = -32769;
|
|
short maxShortNum = (short) smallLongNum;
|
|
assertEquals(32767, maxShortNum);
|
|
|
|
long maxLong = Long.MAX_VALUE;
|
|
int minInt = (int) maxLong;
|
|
assertEquals(-1, minInt);
|
|
|
|
long minLong = Long.MIN_VALUE;
|
|
int maxInt = (int) minLong;
|
|
assertEquals(0, maxInt);
|
|
}
|
|
|
|
@Test
|
|
public void testWrapperToPrimitiveConversion() {
|
|
|
|
Float floatNum = 17.564f;
|
|
long longNum = floatNum.longValue();
|
|
assertEquals(17, longNum);
|
|
|
|
Double doubleNum = 15.9999;
|
|
longNum = doubleNum.longValue();
|
|
assertEquals(15, longNum);
|
|
}
|
|
|
|
@Test
|
|
public void testWrapperToPrimitiveConversionUsingMathRound() {
|
|
|
|
Double doubleNum = 15.9999;
|
|
long longNum = Math.round(doubleNum);
|
|
assertEquals(16, longNum);
|
|
}
|
|
|
|
@Test
|
|
public void testWrapperConversion() {
|
|
|
|
Double doubleNum = 10.3;
|
|
double dbl = doubleNum.doubleValue(); //unboxing
|
|
int intgr = (int) dbl; //downcasting
|
|
Integer intNum = Integer.valueOf(intgr);
|
|
assertEquals(Integer.valueOf(10), intNum);
|
|
}
|
|
|
|
}
|