88
99import java .util .Arrays ;
1010import java .util .Collections ;
11- import java .util .Iterator ;
1211import java .util .List ;
1312import java .util .Map ;
1413import 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