Skip to content

Commit 111ff51

Browse files
committed
Examples 2.3 Reducing
1 parent 3101649 commit 111ff51

File tree

2 files changed

+132
-0
lines changed

2 files changed

+132
-0
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
package itrx.chapter2.reducing;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
7+
import org.junit.Test;
8+
9+
import rx.Observable;
10+
import rx.Subscription;
11+
import rx.observers.TestSubscriber;
12+
13+
public class DistinctTest {
14+
15+
@Test
16+
public void testDistinct() {
17+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
18+
19+
Observable<Integer> values = Observable.create(o -> {
20+
o.onNext(1);
21+
o.onNext(1);
22+
o.onNext(2);
23+
o.onNext(3);
24+
o.onNext(2);
25+
o.onCompleted();
26+
});
27+
28+
Subscription subscription = values
29+
.distinct()
30+
.subscribe(tester);
31+
32+
tester.assertReceivedOnNext(Arrays.asList(1,2,3));
33+
tester.assertTerminalEvent();
34+
tester.assertNoErrors();
35+
}
36+
37+
@Test
38+
public void testDistinctKey() {
39+
TestSubscriber<String> tester = new TestSubscriber<String>();
40+
41+
Observable<String> values = Observable.create(o -> {
42+
o.onNext("First");
43+
o.onNext("Second");
44+
o.onNext("Third");
45+
o.onNext("Fourth");
46+
o.onNext("Fifth");
47+
o.onCompleted();
48+
});
49+
50+
Subscription subscription = values
51+
.distinct(v -> v.charAt(0))
52+
.subscribe(tester);
53+
54+
tester.assertReceivedOnNext(Arrays.asList("First", "Second", "Third"));
55+
tester.assertTerminalEvent();
56+
tester.assertNoErrors();
57+
}
58+
59+
@Test
60+
public void testDistinctUntilChanged() {
61+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
62+
63+
Observable<Integer> values = Observable.create(o -> {
64+
o.onNext(1);
65+
o.onNext(1);
66+
o.onNext(2);
67+
o.onNext(3);
68+
o.onNext(2);
69+
o.onCompleted();
70+
});
71+
72+
Subscription subscription = values
73+
.distinctUntilChanged()
74+
.subscribe(tester);
75+
76+
tester.assertReceivedOnNext(Arrays.asList(1,2,3,2));
77+
tester.assertTerminalEvent();
78+
tester.assertNoErrors();
79+
}
80+
81+
@Test
82+
public void testDistinctUntilChangedKey() {
83+
TestSubscriber<String> tester = new TestSubscriber<String>();
84+
85+
Observable<String> values = Observable.create(o -> {
86+
o.onNext("First");
87+
o.onNext("Second");
88+
o.onNext("Third");
89+
o.onNext("Fourth");
90+
o.onNext("Fifth");
91+
o.onCompleted();
92+
});
93+
94+
Subscription subscription = values
95+
.distinctUntilChanged(v -> v.charAt(0))
96+
.subscribe(tester);
97+
98+
tester.assertReceivedOnNext(Arrays.asList("First", "Second", "Third", "Fourth"));
99+
tester.assertTerminalEvent();
100+
tester.assertNoErrors();
101+
}
102+
103+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package itrx.chapter2.reducing;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
7+
import org.junit.Test;
8+
9+
import rx.Observable;
10+
import rx.Subscription;
11+
import rx.observers.TestSubscriber;
12+
13+
public class FilterTest {
14+
15+
@Test
16+
public void test() {
17+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
18+
19+
Observable<Integer> values = Observable.range(0,10);
20+
Subscription oddNumbers = values
21+
.filter(v -> v % 2 == 0)
22+
.subscribe(tester);
23+
24+
tester.assertReceivedOnNext(Arrays.asList(0,2,4,6,8));
25+
tester.assertTerminalEvent();
26+
tester.assertNoErrors();
27+
}
28+
29+
}

0 commit comments

Comments
 (0)