20
20
import com .google .common .base .Predicate ;
21
21
import com .google .common .base .Predicates ;
22
22
import com .google .common .collect .Collections2 ;
23
+ import com .google .common .collect .FluentIterable ;
23
24
import com .google .common .collect .Iterables ;
24
25
import com .google .common .collect .Lists ;
25
26
import com .google .common .collect .Maps ;
@@ -75,14 +76,14 @@ public final boolean apply(final Integer number) {
75
76
@ Test
76
77
public final void givenCollectionOfEvenNumbers_whenCheckingThatCollectionContainsNoOddNumber_thenTrue () {
77
78
final List <Integer > evenNumbers = Lists .newArrayList (2 , 6 , 8 , 10 , 34 , 90 );
78
- final Predicate <Integer > acceptEvenNumber = new Predicate <Integer >() {
79
+ final Predicate <Integer > acceptOddNumber = new Predicate <Integer >() {
79
80
@ Override
80
81
public final boolean apply (final Integer number ) {
81
82
return (number % 2 ) != 0 ;
82
83
}
83
84
};
84
85
85
- assertTrue (Iterables .all (evenNumbers , Predicates .not (acceptEvenNumber )));
86
+ assertTrue (Iterables .all (evenNumbers , Predicates .not (acceptOddNumber )));
86
87
}
87
88
88
89
// try - 1
@@ -97,6 +98,13 @@ public final void givenUnmodifiableViewOverIterable_whenTryingToRemove_thenNotAl
97
98
}
98
99
}
99
100
101
+ // char predicates
102
+
103
+ @ Test
104
+ public final void when_thenCorrect () {
105
+ // CharMatcher.forPredicate(predicate)
106
+ }
107
+
100
108
// functions
101
109
102
110
@ Test
@@ -116,6 +124,26 @@ public final void whenUsingAnIntermediaryFunctionToOrder_thenCorerctlyOrderedInA
116
124
assertThat (expectedAlphabeticalOrderingOfNumbers , equalTo (alphabeticalOrderingOfNumbers ));
117
125
}
118
126
127
+ @ Test
128
+ public final void whenChainingPredicatesAndFunctions_thenCorrectResults () {
129
+ final List <Integer > numbersToSort = Arrays .asList (2 , 1 , 11 , 100 , 8 , 14 );
130
+ final Predicate <Integer > acceptEvenNumber = new Predicate <Integer >() {
131
+ @ Override
132
+ public final boolean apply (final Integer number ) {
133
+ return (number % 2 ) == 0 ;
134
+ }
135
+ };
136
+ final Function <Integer , Integer > powerOfTwo = new Function <Integer , Integer >() {
137
+ @ Override
138
+ public final Integer apply (final Integer input ) {
139
+ return (int ) Math .pow (input , 2 );
140
+ }
141
+ };
142
+
143
+ final FluentIterable <Integer > powerOfTwoOnlyForEvenNumbers = FluentIterable .from (numbersToSort ).filter (acceptEvenNumber ).transform (powerOfTwo );
144
+ assertThat (powerOfTwoOnlyForEvenNumbers , contains (4 , 10000 , 64 , 196 ));
145
+ }
146
+
119
147
// Set+Function => Map
120
148
121
149
/**
0 commit comments