Skip to content

Commit cf73a09

Browse files
author
Eugen Paraschiv
committed
guava functional work
1 parent 625f4e1 commit cf73a09

File tree

2 files changed

+38
-21
lines changed

2 files changed

+38
-21
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static org.junit.Assert.assertTrue;
55

66
import java.util.Collection;
7+
import java.util.Iterator;
78
import java.util.List;
89
import java.util.Map;
910
import java.util.NoSuchElementException;
@@ -173,4 +174,16 @@ public final void whenTransformingCollectionsToImmutableViaBuilders_thenNoExcept
173174
final ImmutableMap<String, String> imuttableMap = ImmutableMap.<String, String> builder().putAll(muttableMap).build();
174175
}
175176

177+
// unmodifiable
178+
179+
@Test(expected = UnsupportedOperationException.class)
180+
public final void givenUnmodifiableViewOverIterable_whenTryingToRemove_thenNotAllowed() {
181+
final List<Integer> numbers = Lists.newArrayList(1, 2, 3);
182+
final Iterable<Integer> unmodifiableIterable = Iterables.unmodifiableIterable(numbers);
183+
final Iterator<Integer> iterator = unmodifiableIterable.iterator();
184+
if (iterator.hasNext()) {
185+
iterator.remove();
186+
}
187+
}
188+
176189
}

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

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import java.util.Arrays;
1010
import java.util.Collections;
11-
import java.util.Iterator;
1211
import java.util.List;
1312
import java.util.Map;
1413
import java.util.Set;
@@ -35,25 +34,25 @@ public class GuavaFunctionalExamplesTest {
3534

3635
@Test
3736
public final void whenFilteringNumbersAccordingToACondition_thenCorrectResults() {
38-
final List<Integer> randomNumbers = Lists.newArrayList(1, 2, 3, 6, 8, 10, 34, 57, 89);
37+
final List<Integer> numbers = Lists.newArrayList(1, 2, 3, 6, 8, 10, 34, 57, 89);
3938
final Predicate<Integer> acceptEvenNumber = new Predicate<Integer>() {
4039
@Override
4140
public final boolean apply(final Integer number) {
4241
return (number % 2) == 0;
4342
}
4443
};
45-
final List<Integer> evenNumbers = Lists.newArrayList(Collections2.filter(randomNumbers, acceptEvenNumber));
44+
final List<Integer> evenNumbers = Lists.newArrayList(Collections2.filter(numbers, acceptEvenNumber));
4645

4746
final Integer found = Collections.binarySearch(evenNumbers, 57);
4847
assertThat(found, lessThan(0));
4948
}
5049

5150
@Test
5251
public final void givenCollectionContainsNulls_whenNullsAreFilteredOut_thenResultingCollectionsHasNoNulls() {
53-
final List<String> collectionOfStringsWithNulls = Lists.newArrayList("a", "bc", null, "def", null, null, "ghij");
54-
final Iterable<String> collectionWithoutNulls = Iterables.filter(collectionOfStringsWithNulls, Predicates.notNull());
52+
final List<String> withNulls = Lists.newArrayList("a", "bc", null, "def");
53+
final Iterable<String> withoutNuls = Iterables.filter(withNulls, Predicates.notNull());
5554

56-
assertTrue(Iterables.all(collectionWithoutNulls, Predicates.notNull()));
55+
assertTrue(Iterables.all(withoutNuls, Predicates.notNull()));
5756
}
5857

5958
// predicates - checking
@@ -86,18 +85,6 @@ public final boolean apply(final Integer number) {
8685
assertTrue(Iterables.all(evenNumbers, Predicates.not(acceptOddNumber)));
8786
}
8887

89-
// try - 1
90-
91-
@Test(expected = UnsupportedOperationException.class)
92-
public final void givenUnmodifiableViewOverIterable_whenTryingToRemove_thenNotAllowed() {
93-
final List<Integer> numbers = Lists.newArrayList(1, 2, 3);
94-
final Iterable<Integer> unmodifiableIterable = Iterables.unmodifiableIterable(numbers);
95-
final Iterator<Integer> iterator = unmodifiableIterable.iterator();
96-
if (iterator.hasNext()) {
97-
iterator.remove();
98-
}
99-
}
100-
10188
// other predicates
10289

10390
@Test
@@ -118,10 +105,10 @@ public final void whenApplyingSimpleFunctionToInputs_thenCorrectlyTransformed()
118105
public final void whenUsingAnIntermediaryFunctionToOrder_thenCorerctlyOrderedInAlphabeticalOrder() {
119106
final List<Integer> numbersToSort = Arrays.asList(2, 1, 11, 100, 8, 14);
120107
final Ordering<Object> ordering = Ordering.natural().onResultOf(Functions.toStringFunction());
121-
final List<Integer> alphabeticalOrderingOfNumbers = ordering.sortedCopy(numbersToSort);
108+
final List<Integer> inAlphabeticalOrder = ordering.sortedCopy(numbersToSort);
122109

123-
final List<Integer> expectedAlphabeticalOrderingOfNumbers = Lists.newArrayList(1, 100, 11, 14, 2, 8);
124-
assertThat(expectedAlphabeticalOrderingOfNumbers, equalTo(alphabeticalOrderingOfNumbers));
110+
final List<Integer> correctAlphabeticalOrder = Lists.newArrayList(1, 100, 11, 14, 2, 8);
111+
assertThat(correctAlphabeticalOrder, equalTo(inAlphabeticalOrder));
125112
}
126113

127114
@Test
@@ -179,4 +166,21 @@ public final Integer apply(final Integer input) {
179166
assertThat(numberToPowerOfTwoImuttable.get(2), equalTo(4));
180167
}
181168

169+
// Predicate => Function
170+
171+
@Test
172+
public final void whenConvertingPredicateToFunction_thenCorrect() {
173+
final List<Integer> numbers = Lists.newArrayList(1, 2, 3, 6);
174+
final Predicate<Integer> acceptEvenNumber = new Predicate<Integer>() {
175+
@Override
176+
public final boolean apply(final Integer number) {
177+
return (number % 2) == 0;
178+
}
179+
};
180+
final Function<Integer, Boolean> isEventNumberFunction = Functions.forPredicate(acceptEvenNumber);
181+
final List<Boolean> areNumbersEven = Lists.transform(numbers, isEventNumberFunction);
182+
183+
assertThat(areNumbersEven, contains(false, true, false, true));
184+
}
185+
182186
}

0 commit comments

Comments
 (0)