diff --git a/src/main/java/learnrxjava/ComposableListSolutions.java b/src/main/java/learnrxjava/ComposableListSolutions.java index 5df5b0b..c2256d2 100644 --- a/src/main/java/learnrxjava/ComposableListSolutions.java +++ b/src/main/java/learnrxjava/ComposableListSolutions.java @@ -793,7 +793,7 @@ public static ComposableList exercise19() { return v.boxarts.reduce((max, box) -> { int maxSize = max.height * max.width; int boxSize = box.height * box.width; - if(boxSize > maxSize) { + if(boxSize < maxSize) { return box; } else { return max; diff --git a/src/main/java/learnrxjava/ObservableExercises.java b/src/main/java/learnrxjava/ObservableExercises.java index 9f7f408..a7c5d00 100644 --- a/src/main/java/learnrxjava/ObservableExercises.java +++ b/src/main/java/learnrxjava/ObservableExercises.java @@ -7,7 +7,7 @@ public class ObservableExercises { /** - * Return an Observable that emits a single value "Hello World" + * Return an Observable that emits a single value "Hello World!" * * @return "Hello World!" */ @@ -72,7 +72,7 @@ public Observable exerciseReduce(Observable nums) { } /** - * Retrieve the id, title, and smallest box art url for every video. + * Retrieve the id, title, and smallest box art url for every video. * * Now let's try combining reduce() with our other functions to build more complex queries. * diff --git a/src/main/java/learnrxjava/ObservableSolutions.java b/src/main/java/learnrxjava/ObservableSolutions.java index 908ea57..405682a 100644 --- a/src/main/java/learnrxjava/ObservableSolutions.java +++ b/src/main/java/learnrxjava/ObservableSolutions.java @@ -98,7 +98,7 @@ public Observable exerciseMovie(Observable movies) { return v.boxarts.reduce((max, box) -> { int maxSize = max.height * max.width; int boxSize = box.height * box.width; - if (boxSize > maxSize) { + if (boxSize < maxSize) { return box; } else { return max; diff --git a/src/main/java/learnrxjava/examples/ScanVsReduceExample.java b/src/main/java/learnrxjava/examples/ScanVsReduceExample.java index 35afce5..2c2ec65 100644 --- a/src/main/java/learnrxjava/examples/ScanVsReduceExample.java +++ b/src/main/java/learnrxjava/examples/ScanVsReduceExample.java @@ -7,14 +7,14 @@ public class ScanVsReduceExample { public static void main(String... args) { - Observable.range(0, 10).reduce(() -> new ArrayList(), (list, i) -> { + Observable.range(0, 10).reduce(new ArrayList<>(), (list, i) -> { list.add(i); return list; }).forEach(System.out::println); System.out.println("... vs ..."); - Observable.range(0, 10).scan(() -> new ArrayList(), (list, i) -> { + Observable.range(0, 10).scan(new ArrayList<>(), (list, i) -> { list.add(i); return list; }).forEach(System.out::println); diff --git a/src/main/java/learnrxjava/examples/UnitTesting.java b/src/main/java/learnrxjava/examples/UnitTesting.java index 398d4b2..c8f3221 100644 --- a/src/main/java/learnrxjava/examples/UnitTesting.java +++ b/src/main/java/learnrxjava/examples/UnitTesting.java @@ -1,5 +1,29 @@ package learnrxjava.examples; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import rx.Observable; +import rx.observers.TestSubscriber; +import rx.schedulers.Schedulers; +import rx.schedulers.TestScheduler; + public class UnitTesting { + public static void main(String... args) { + TestScheduler test = Schedulers.test(); + TestSubscriber ts = new TestSubscriber<>(); + + Observable.interval(200, TimeUnit.MILLISECONDS, test) + .map(i -> { + return i + " value"; + }).subscribe(ts); + + test.advanceTimeBy(200, TimeUnit.MILLISECONDS); + ts.assertReceivedOnNext(Arrays.asList("0 value")); + + test.advanceTimeTo(1000, TimeUnit.MILLISECONDS); + ts.assertReceivedOnNext(Arrays.asList("0 value", "1 value", "2 value", "3 value", "4 value")); + } + } diff --git a/src/test/java/learnrxjava/ObservableSolutionsTest.java b/src/test/java/learnrxjava/ObservableSolutionsTest.java index d75ac96..a7e2fa7 100644 --- a/src/test/java/learnrxjava/ObservableSolutionsTest.java +++ b/src/test/java/learnrxjava/ObservableSolutionsTest.java @@ -168,13 +168,13 @@ public void exerciseMovie() { Map map = getImpl().exerciseMovie(movies).toMap(i -> (int) i.get("id")).toBlocking().single(); System.out.println(map); assertTrue(map.containsKey(70111470)); - assertEquals(map.get(70111470).toString(), "{boxart=http://cdn-0.nflximg.com/images/2891/DieHard200.jpg, id=70111470, title=Die Hard}"); + assertEquals(map.get(70111470).toString(), "{boxart=http://cdn-0.nflximg.com/images/2891/DieHard150.jpg, id=70111470, title=Die Hard}"); assertTrue(map.containsKey(654356453)); - assertEquals(map.get(654356453).toString(), "{boxart=http://cdn-0.nflximg.com/images/2891/BadBoys200.jpg, id=654356453, title=Bad Boys}"); + assertEquals(map.get(654356453).toString(), "{boxart=http://cdn-0.nflximg.com/images/2891/BadBoys140.jpg, id=654356453, title=Bad Boys}"); assertTrue(map.containsKey(65432445)); - assertEquals(map.get(65432445).toString(), "{boxart=http://cdn-0.nflximg.com/images/2891/TheChamber200.jpg, id=65432445, title=The Chamber}"); + assertEquals(map.get(65432445).toString(), "{boxart=http://cdn-0.nflximg.com/images/2891/TheChamber130.jpg, id=65432445, title=The Chamber}"); assertTrue(map.containsKey(675465)); - assertEquals(map.get(675465).toString(), "{boxart=http://cdn-0.nflximg.com/images/2891/Fracture300.jpg, id=675465, title=Fracture}"); + assertEquals(map.get(675465).toString(), "{boxart=http://cdn-0.nflximg.com/images/2891/Fracture120.jpg, id=675465, title=Fracture}"); } @Test