File tree Expand file tree Collapse file tree 2 files changed +54
-0
lines changed
main/java/com/jnape/palatable/lambda/functions/builtin/fn2
test/java/com/jnape/palatable/lambda/functions/builtin/fn2 Expand file tree Collapse file tree 2 files changed +54
-0
lines changed Original file line number Diff line number Diff line change
1
+ package com .jnape .palatable .lambda .functions .builtin .fn2 ;
2
+
3
+ import com .jnape .palatable .lambda .functions .Fn1 ;
4
+ import com .jnape .palatable .lambda .functions .Fn2 ;
5
+
6
+ /**
7
+ * Type-safe equality in function form; uses {@link Object#equals}, not <code>==</code>.
8
+ *
9
+ * @param <A> the type to compare for equality
10
+ */
11
+ public final class Eq <A > implements Fn2 <A , A , Boolean > {
12
+
13
+ private Eq () {
14
+ }
15
+
16
+ @ Override
17
+ public Boolean apply (A x , A y ) {
18
+ return x == null ? y == null : x .equals (y );
19
+ }
20
+
21
+ public static <A > Eq <A > eq () {
22
+ return new Eq <>();
23
+ }
24
+
25
+ public static <A > Fn1 <A , Boolean > eq (A x ) {
26
+ return Eq .<A >eq ().apply (x );
27
+ }
28
+
29
+ public static <A > Boolean eq (A x , A y ) {
30
+ return eq (x ).apply (y );
31
+ }
32
+ }
Original file line number Diff line number Diff line change
1
+ package com .jnape .palatable .lambda .functions .builtin .fn2 ;
2
+
3
+ import org .junit .Test ;
4
+
5
+ import static com .jnape .palatable .lambda .functions .builtin .fn2 .Eq .eq ;
6
+ import static org .junit .Assert .assertFalse ;
7
+ import static org .junit .Assert .assertTrue ;
8
+
9
+ public class EqTest {
10
+
11
+ @ Test
12
+ public void testsValueEquality () {
13
+ Eq <String > stringEq = eq ();
14
+
15
+ assertTrue (stringEq .apply ("a" , "a" ));
16
+ assertFalse (stringEq .apply ("a" , "b" ));
17
+ assertFalse (stringEq .apply ("b" , "a" ));
18
+ assertTrue (stringEq .apply (null , null ));
19
+ assertFalse (stringEq .apply ("a" , null ));
20
+ assertFalse (stringEq .apply (null , "a" ));
21
+ }
22
+ }
You can’t perform that action at this time.
0 commit comments