summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/422-type-conversion/src/Main.java37
1 files changed, 36 insertions, 1 deletions
diff --git a/test/422-type-conversion/src/Main.java b/test/422-type-conversion/src/Main.java
index 997491997b..d2ffc5bdfc 100644
--- a/test/422-type-conversion/src/Main.java
+++ b/test/422-type-conversion/src/Main.java
@@ -25,9 +25,33 @@ public class Main {
}
public static void main(String[] args) {
+ byteToLong();
+ shortToLong();
intToLong();
}
+ private static void byteToLong() {
+ assertEquals(1L, $opt$ByteToLong((byte)1));
+ assertEquals(0L, $opt$ByteToLong((byte)0));
+ assertEquals(-1L, $opt$ByteToLong((byte)-1));
+ assertEquals(51L, $opt$ByteToLong((byte)51));
+ assertEquals(-51L, $opt$ByteToLong((byte)-51));
+ assertEquals(127L, $opt$ByteToLong((byte)127)); // (2^7) - 1
+ assertEquals(-127L, $opt$ByteToLong((byte)-127)); // -(2^7) - 1
+ assertEquals(-128L, $opt$ByteToLong((byte)-128)); // -(2^7)
+ }
+
+ private static void shortToLong() {
+ assertEquals(1L, $opt$ShortToLong((short)1));
+ assertEquals(0L, $opt$ShortToLong((short)0));
+ assertEquals(-1L, $opt$ShortToLong((short)-1));
+ assertEquals(51L, $opt$ShortToLong((short)51));
+ assertEquals(-51L, $opt$ShortToLong((short)-51));
+ assertEquals(32767L, $opt$ShortToLong((short)32767)); // (2^15) - 1
+ assertEquals(-32767L, $opt$ShortToLong((short)-32767)); // -(2^15) - 1
+ assertEquals(-32768L, $opt$ShortToLong((short)-32768)); // -(2^15)
+ }
+
private static void intToLong() {
assertEquals(1L, $opt$IntToLong(1));
assertEquals(0L, $opt$IntToLong(0));
@@ -39,7 +63,18 @@ public class Main {
assertEquals(-2147483648L, $opt$IntToLong(-2147483648)); // -(2^31)
}
- static long $opt$IntToLong(int a){
+ static long $opt$ByteToLong(byte a) {
+ // Translates to an int-to-long Dex instruction.
+ return a;
+ }
+
+ static long $opt$ShortToLong(short a) {
+ // Translates to an int-to-long Dex instruction.
+ return a;
+ }
+
+ static long $opt$IntToLong(int a) {
+ // Translates to an int-to-long Dex instruction.
return a;
}
}