2
2
3
3
import org .junit .Test ;
4
4
5
- import static com .jnape .palatable .lambda .adt .hlist .HList .cons ;
6
- import static com .jnape .palatable .lambda .adt .hlist .HList .nil ;
7
- import static com .jnape .palatable .lambda .adt .hlist .HList .singletonHList ;
8
- import static com .jnape .palatable .lambda .adt .hlist .HList .tuple ;
9
- import static org .junit .Assert .assertEquals ;
10
- import static org .junit .Assert .assertFalse ;
11
- import static org .junit .Assert .assertNotEquals ;
12
- import static org .junit .Assert .assertSame ;
13
- import static org .junit .Assert .assertTrue ;
5
+ import static com .jnape .palatable .lambda .adt .hlist .HList .*;
6
+ import static org .hamcrest .CoreMatchers .instanceOf ;
7
+ import static org .junit .Assert .*;
14
8
15
9
public class HListTest {
16
10
@@ -36,6 +30,18 @@ public void convenienceStaticFactoryMethods() {
36
30
assertEquals (nil ().cons (false ).cons (4.0 ).cons ("3" ).cons ('2' ).cons (1 ), tuple (1 , '2' , "3" , 4.0 , false ));
37
31
}
38
32
33
+ @ Test
34
+ public void autoPromotion () {
35
+ assertThat (cons (1 , nil ()), instanceOf (SingletonHList .class ));
36
+ assertThat (cons (1 , singletonHList (1 )), instanceOf (Tuple2 .class ));
37
+ assertThat (cons (1 , tuple (1 , 1 )), instanceOf (Tuple3 .class ));
38
+ assertThat (cons (1 , tuple (1 , 1 , 1 )), instanceOf (Tuple4 .class ));
39
+ assertThat (cons (1 , tuple (1 , 1 , 1 , 1 )), instanceOf (Tuple5 .class ));
40
+ assertThat (cons (1 , tuple (1 , 1 , 1 , 1 , 1 )), instanceOf (Tuple6 .class ));
41
+ assertThat (cons (1 , tuple (1 , 1 , 1 , 1 , 1 , 1 )), instanceOf (Tuple7 .class ));
42
+ assertThat (cons (1 , tuple (1 , 1 , 1 , 1 , 1 , 1 , 1 )), instanceOf (Tuple8 .class ));
43
+ }
44
+
39
45
@ Test
40
46
public void nilReusesInstance () {
41
47
assertSame (nil (), nil ());
0 commit comments