Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c257a33

Browse files
author
Eugen Paraschiv
committed
functional work
1 parent b97de29 commit c257a33

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.google.common.base.Predicate;
2121
import com.google.common.base.Predicates;
2222
import com.google.common.collect.Collections2;
23+
import com.google.common.collect.FluentIterable;
2324
import com.google.common.collect.Iterables;
2425
import com.google.common.collect.Lists;
2526
import com.google.common.collect.Maps;
@@ -75,14 +76,14 @@ public final boolean apply(final Integer number) {
7576
@Test
7677
public final void givenCollectionOfEvenNumbers_whenCheckingThatCollectionContainsNoOddNumber_thenTrue() {
7778
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>() {
7980
@Override
8081
public final boolean apply(final Integer number) {
8182
return (number % 2) != 0;
8283
}
8384
};
8485

85-
assertTrue(Iterables.all(evenNumbers, Predicates.not(acceptEvenNumber)));
86+
assertTrue(Iterables.all(evenNumbers, Predicates.not(acceptOddNumber)));
8687
}
8788

8889
// try - 1
@@ -97,6 +98,13 @@ public final void givenUnmodifiableViewOverIterable_whenTryingToRemove_thenNotAl
9798
}
9899
}
99100

101+
// char predicates
102+
103+
@Test
104+
public final void when_thenCorrect() {
105+
// CharMatcher.forPredicate(predicate)
106+
}
107+
100108
// functions
101109

102110
@Test
@@ -116,6 +124,26 @@ public final void whenUsingAnIntermediaryFunctionToOrder_thenCorerctlyOrderedInA
116124
assertThat(expectedAlphabeticalOrderingOfNumbers, equalTo(alphabeticalOrderingOfNumbers));
117125
}
118126

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+
119147
// Set+Function => Map
120148

121149
/**

0 commit comments

Comments
 (0)