From 6af58dce947f52a5811ad6cc501f24bea5b05b88 Mon Sep 17 00:00:00 2001 From: Eugen Paraschiv Date: Wed, 30 Oct 2013 11:56:07 +0200 Subject: [PATCH] functional work --- .../guava/GuavaFunctionalExamplesTest.java | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java b/guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java index ae7d84e56b..6618e42583 100644 --- a/guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java +++ b/guava/src/test/java/org/baeldung/guava/GuavaFunctionalExamplesTest.java @@ -1,16 +1,24 @@ package org.baeldung.guava; +import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.lessThan; import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.Set; import org.junit.Test; +import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.Collections2; +import com.google.common.collect.Iterables; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; public class GuavaFunctionalExamplesTest { @@ -19,7 +27,7 @@ public class GuavaFunctionalExamplesTest { // predicates @Test - public final void whenFilteringStringsAccordingToACondition_thenCorrectResults() { + public final void whenFilteringNumbersAccordingToACondition_thenCorrectResults() { final List randomNumbers = Lists.newArrayList(1, 2, 3, 6, 8, 10, 34, 57, 89); final Predicate acceptEvenNumber = new Predicate() { @Override @@ -33,4 +41,38 @@ public class GuavaFunctionalExamplesTest { assertThat(found, lessThan(0)); } + @Test + public final void givenEvenNumbers_whenCheckingIfAllSatisfyTheEvenPredicate_thenYes() { + final List eventNumbers = Lists.newArrayList(2, 6, 8, 10, 34, 90); + final Predicate acceptEvenNumber = new Predicate() { + @Override + public final boolean apply(final Integer number) { + return (number % 2) == 0; + } + }; + + assertTrue(Iterables.all(eventNumbers, acceptEvenNumber)); + } + + // Set+Function => Map + + /** + * - see: http://code.google.com/p/guava-libraries/issues/detail?id=56 + */ + @Test + public final void whenMapIsBackedBySetAndFunction_thenCorrect() { + final Function powerOfTwo = new Function() { + @Override + public final Integer apply(final Integer input) { + return (int) Math.pow(input, 2); + } + }; + final Set lowNumbers = Sets.newHashSet(2, 3, 4); + + final Map numberToPowerOfTwoMuttable = Maps.asMap(lowNumbers, powerOfTwo); + final Map numberToPowerOfTwoImuttable = Maps.toMap(lowNumbers, powerOfTwo); + assertThat(numberToPowerOfTwoMuttable.get(2), equalTo(4)); + assertThat(numberToPowerOfTwoImuttable.get(2), equalTo(4)); + } + }