Skip to content

Commit 579a2ce

Browse files
committed
Add tests for lambdas that perform simeltaneous primitive widening and boxing/unboxing
1 parent 3942780 commit 579a2ce

16 files changed

+128
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CORE
2+
PrimitiveWideningWithBoxing
3+
--function PrimitiveWideningWithBoxing\.testByteToLong --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
4+
\[java::PrimitiveWideningWithBoxing\.testByteToLong:\(\)V\.assertion\.1\] line 26 assertion at file PrimitiveWideningWithBoxing\.java line 26 function java::PrimitiveWideningWithBoxing\.testByteToLong:\(\)V bytecode-index 15: SUCCESS
5+
\[java::PrimitiveWideningWithBoxing\.testByteToLong:\(\)V\.assertion\.2\] line 27 assertion at file PrimitiveWideningWithBoxing\.java line 27 function java::PrimitiveWideningWithBoxing\.testByteToLong:\(\)V bytecode-index 21: FAILURE
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CORE
2+
PrimitiveWideningWithBoxing
3+
--function PrimitiveWideningWithBoxing\.testDoubleToFloat --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
4+
\[java::PrimitiveWideningWithBoxing\.testDoubleToFloat:\(\)V\.assertion\.1\] line 66 assertion at file PrimitiveWideningWithBoxing\.java line 66 function java::PrimitiveWideningWithBoxing\.testDoubleToFloat:\(\)V bytecode-index 13: SUCCESS
5+
\[java::PrimitiveWideningWithBoxing\.testDoubleToFloat:\(\)V\.assertion\.2\] line 67 assertion at file PrimitiveWideningWithBoxing\.java line 67 function java::PrimitiveWideningWithBoxing\.testDoubleToFloat:\(\)V bytecode-index 19: FAILURE
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CORE
2+
PrimitiveWideningWithBoxing
3+
--function PrimitiveWideningWithBoxing\.testFloatToDouble --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
4+
\[java::PrimitiveWideningWithBoxing\.testFloatToDouble:\(\)V\.assertion\.1\] line 44 assertion at file PrimitiveWideningWithBoxing\.java line 44 function java::PrimitiveWideningWithBoxing\.testFloatToDouble:\(\)V bytecode-index 15: SUCCESS
5+
\[java::PrimitiveWideningWithBoxing\.testFloatToDouble:\(\)V\.assertion\.2\] line 45 assertion at file PrimitiveWideningWithBoxing\.java line 45 function java::PrimitiveWideningWithBoxing\.testFloatToDouble:\(\)V bytecode-index 21: FAILURE
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CORE
2+
PrimitiveWideningWithBoxing
3+
--function PrimitiveWideningWithBoxing\.testIntToLong --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
4+
\[java::PrimitiveWideningWithBoxing\.testIntToLong:\(\)V\.assertion\.1\] line 38 assertion at file PrimitiveWideningWithBoxing\.java line 38 function java::PrimitiveWideningWithBoxing\.testIntToLong:\(\)V bytecode-index 15: SUCCESS
5+
\[java::PrimitiveWideningWithBoxing\.testIntToLong:\(\)V\.assertion\.2\] line 39 assertion at file PrimitiveWideningWithBoxing\.java line 39 function java::PrimitiveWideningWithBoxing\.testIntToLong:\(\)V bytecode-index 21: FAILURE
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CORE
2+
PrimitiveWideningWithBoxing
3+
--function PrimitiveWideningWithBoxing\.testLongToByte --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
4+
\[java::PrimitiveWideningWithBoxing\.testLongToByte:\(\)V\.assertion\.1\] line 72 assertion at file PrimitiveWideningWithBoxing\.java line 72 function java::PrimitiveWideningWithBoxing\.testLongToByte:\(\)V bytecode-index 13: SUCCESS
5+
\[java::PrimitiveWideningWithBoxing\.testLongToByte:\(\)V\.assertion\.2\] line 73 assertion at file PrimitiveWideningWithBoxing\.java line 73 function java::PrimitiveWideningWithBoxing\.testLongToByte:\(\)V bytecode-index 19: FAILURE
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CORE
2+
PrimitiveWideningWithBoxing
3+
--function PrimitiveWideningWithBoxing\.testLongToInt --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
4+
\[java::PrimitiveWideningWithBoxing\.testLongToInt:\(\)V\.assertion\.1\] line 84 assertion at file PrimitiveWideningWithBoxing\.java line 84 function java::PrimitiveWideningWithBoxing\.testLongToInt:\(\)V bytecode-index 13: SUCCESS
5+
\[java::PrimitiveWideningWithBoxing\.testLongToInt:\(\)V\.assertion\.2\] line 85 assertion at file PrimitiveWideningWithBoxing\.java line 85 function java::PrimitiveWideningWithBoxing\.testLongToInt:\(\)V bytecode-index 19: FAILURE
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CORE
2+
PrimitiveWideningWithBoxing
3+
--function PrimitiveWideningWithBoxing\.testLongToShort --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
4+
\[java::PrimitiveWideningWithBoxing\.testLongToShort:\(\)V\.assertion\.1\] line 78 assertion at file PrimitiveWideningWithBoxing\.java line 78 function java::PrimitiveWideningWithBoxing\.testLongToShort:\(\)V bytecode-index 13: SUCCESS
5+
\[java::PrimitiveWideningWithBoxing\.testLongToShort:\(\)V\.assertion\.2\] line 79 assertion at file PrimitiveWideningWithBoxing\.java line 79 function java::PrimitiveWideningWithBoxing\.testLongToShort:\(\)V bytecode-index 19: FAILURE
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
public class PrimitiveWideningWithBoxing {
2+
3+
// Tests for widening a parameter, accompanied by boxing and unboxing:
4+
5+
public interface ByteToLong {
6+
public Long accept(Byte b);
7+
}
8+
9+
public interface ShortToLong {
10+
public Long accept(Short s);
11+
}
12+
13+
public interface IntToLong {
14+
public Long accept(Integer i);
15+
}
16+
17+
public interface FloatToDouble {
18+
public Double accept(Float f);
19+
}
20+
21+
public static long longToLong(long x) { return x + 1L; }
22+
public static double doubleToDouble(double x) { return x + 1.0; }
23+
24+
public static void testByteToLong() {
25+
ByteToLong b2l = PrimitiveWideningWithBoxing::longToLong;
26+
assert b2l.accept((byte)1) == 2L;
27+
assert false;
28+
}
29+
30+
public static void testShortToLong() {
31+
ShortToLong s2l = PrimitiveWideningWithBoxing::longToLong;
32+
assert s2l.accept((short)1) == 2L;
33+
assert false;
34+
}
35+
36+
public static void testIntToLong() {
37+
IntToLong i2l = PrimitiveWideningWithBoxing::longToLong;
38+
assert i2l.accept(1) == 2L;
39+
assert false;
40+
}
41+
42+
public static void testFloatToDouble() {
43+
FloatToDouble f2d = PrimitiveWideningWithBoxing::doubleToDouble;
44+
assert f2d.accept(1.0f) == 2.0;
45+
assert false;
46+
}
47+
48+
// Tests for widening a return value, accompanied by boxing and unboxing:
49+
50+
public interface LongToLong {
51+
public long accept(long l);
52+
}
53+
54+
public static Byte longToByte(Long l) { return (byte)(l + 1); }
55+
public static Short longToShort(Long l) { return (short)(l + 1); }
56+
public static Integer longToInt(Long l) { return (int)(l + 1); }
57+
58+
public interface DoubleToDouble {
59+
public double accept(double d);
60+
}
61+
62+
public static Float doubleToFloat(Double d) { return (float)(d + 1); }
63+
64+
public static void testDoubleToFloat() {
65+
DoubleToDouble d2d = PrimitiveWideningWithBoxing::doubleToFloat;
66+
assert d2d.accept(1.0) == 2.0;
67+
assert false;
68+
}
69+
70+
public static void testLongToByte() {
71+
LongToLong l2l = PrimitiveWideningWithBoxing::longToByte;
72+
assert l2l.accept(1L) == 2L;
73+
assert false;
74+
}
75+
76+
public static void testLongToShort() {
77+
LongToLong l2l = PrimitiveWideningWithBoxing::longToShort;
78+
assert l2l.accept(1L) == 2L;
79+
assert false;
80+
}
81+
82+
public static void testLongToInt() {
83+
LongToLong l2l = PrimitiveWideningWithBoxing::longToInt;
84+
assert l2l.accept(1L) == 2L;
85+
assert false;
86+
}
87+
88+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CORE
2+
PrimitiveWideningWithBoxing
3+
--function PrimitiveWideningWithBoxing\.testShortToLong --cp `../../../../scripts/format_classpath.sh . ../../../lib/java-models-library/target/core-models.jar`
4+
\[java::PrimitiveWideningWithBoxing\.testShortToLong:\(\)V\.assertion\.1\] line 32 assertion at file PrimitiveWideningWithBoxing\.java line 32 function java::PrimitiveWideningWithBoxing\.testShortToLong:\(\)V bytecode-index 15: SUCCESS
5+
\[java::PrimitiveWideningWithBoxing\.testShortToLong:\(\)V\.assertion\.2\] line 33 assertion at file PrimitiveWideningWithBoxing\.java line 33 function java::PrimitiveWideningWithBoxing\.testShortToLong:\(\)V bytecode-index 21: FAILURE

0 commit comments

Comments
 (0)