From c257a33969bc7fa331b80a55ccdf85085f2cca34 Mon Sep 17 00:00:00 2001 From: Eugen Paraschiv Date: Wed, 30 Oct 2013 12:45:36 +0200 Subject: [PATCH] functional work --- .../guava/GuavaFunctionalExamplesTest.java | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java b/guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java index 46b249324d..26a05a7023 100644 --- a/guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java +++ b/guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java @@ -20,6 +20,7 @@ import com.google.common.base.Functions; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Collections2; +import com.google.common.collect.FluentIterable; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -75,14 +76,14 @@ public class GuavaFunctionalExamplesTest { @Test public final void givenCollectionOfEvenNumbers_whenCheckingThatCollectionContainsNoOddNumber_thenTrue() { final List evenNumbers = Lists.newArrayList(2, 6, 8, 10, 34, 90); - final Predicate acceptEvenNumber = new Predicate() { + final Predicate acceptOddNumber = new Predicate() { @Override public final boolean apply(final Integer number) { return (number % 2) != 0; } }; - assertTrue(Iterables.all(evenNumbers, Predicates.not(acceptEvenNumber))); + assertTrue(Iterables.all(evenNumbers, Predicates.not(acceptOddNumber))); } // try - 1 @@ -97,6 +98,13 @@ public class GuavaFunctionalExamplesTest { } } + // char predicates + + @Test + public final void when_thenCorrect() { + // CharMatcher.forPredicate(predicate) + } + // functions @Test @@ -116,6 +124,26 @@ public class GuavaFunctionalExamplesTest { assertThat(expectedAlphabeticalOrderingOfNumbers, equalTo(alphabeticalOrderingOfNumbers)); } + @Test + public final void whenChainingPredicatesAndFunctions_thenCorrectResults() { + final List numbersToSort = Arrays.asList(2, 1, 11, 100, 8, 14); + final Predicate acceptEvenNumber = new Predicate() { + @Override + public final boolean apply(final Integer number) { + return (number % 2) == 0; + } + }; + final Function powerOfTwo = new Function() { + @Override + public final Integer apply(final Integer input) { + return (int) Math.pow(input, 2); + } + }; + + final FluentIterable powerOfTwoOnlyForEvenNumbers = FluentIterable.from(numbersToSort).filter(acceptEvenNumber).transform(powerOfTwo); + assertThat(powerOfTwoOnlyForEvenNumbers, contains(4, 10000, 64, 196)); + } + // Set+Function => Map /**