X Tutup
Skip to content

Commit c41d565

Browse files
committed
3.4 Added more examples for zip
1 parent 5e2efd0 commit c41d565

File tree

1 file changed

+76
-6
lines changed

1 file changed

+76
-6
lines changed

tests/java/itrx/chapter3/combining/ZipTest.java

Lines changed: 76 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package itrx.chapter3.combining;
22

3-
import java.io.IOException;
43
import java.util.Arrays;
54
import java.util.concurrent.TimeUnit;
65

@@ -12,11 +11,6 @@
1211
import rx.schedulers.TestScheduler;
1312

1413
public class ZipTest {
15-
16-
public static void main(String[] args) throws IOException {
17-
new ZipTest().exampleZipWithIterable();
18-
System.in.read();
19-
}
2014

2115
public void example() {
2216
Observable.zip(
@@ -52,6 +46,35 @@ public void example() {
5246
// 5 - 5
5347
}
5448

49+
public void exampleZipMultiple() {
50+
Observable.zip(
51+
Observable.interval(100, TimeUnit.MILLISECONDS),
52+
Observable.interval(150, TimeUnit.MILLISECONDS),
53+
Observable.interval(050, TimeUnit.MILLISECONDS),
54+
(i1,i2,i3) -> i1 + " - " + i2 + " - " + i3)
55+
.take(6)
56+
.subscribe(System.out::println);
57+
58+
// 0 - 0 - 0
59+
// 1 - 1 - 1
60+
// 2 - 2 - 2
61+
// 3 - 3 - 3
62+
// 4 - 4 - 4
63+
// 5 - 5 - 5
64+
}
65+
66+
public void exampleZipUneven() {
67+
Observable.zip(
68+
Observable.range(0, 5),
69+
Observable.range(0, 3),
70+
Observable.range(0, 8),
71+
(i1,i2,i3) -> i1 + " - " + i2 + " - " + i3)
72+
.count()
73+
.subscribe(System.out::println);
74+
75+
// 3
76+
}
77+
5578
public void exampleZipWith() {
5679
Observable.interval(100, TimeUnit.MILLISECONDS)
5780
.zipWith(
@@ -107,6 +130,49 @@ public void test() {
107130
"3 - 3"
108131
));
109132
tester.assertNoErrors();
133+
134+
tester.unsubscribe();
135+
}
136+
137+
@Test
138+
public void testZipMultiple() {
139+
TestSubscriber<String> tester = new TestSubscriber<>();
140+
TestScheduler scheduler = Schedulers.test();
141+
142+
Observable.zip(
143+
Observable.interval(100, TimeUnit.MILLISECONDS, scheduler),
144+
Observable.interval(150, TimeUnit.MILLISECONDS, scheduler),
145+
Observable.interval(050, TimeUnit.MILLISECONDS, scheduler),
146+
(i1,i2,i3) -> i1 + " - " + i2 + " - " + i3)
147+
.subscribe(tester);
148+
149+
scheduler.advanceTimeBy(600, TimeUnit.MILLISECONDS);
150+
tester.assertReceivedOnNext(Arrays.asList(
151+
"0 - 0 - 0",
152+
"1 - 1 - 1",
153+
"2 - 2 - 2",
154+
"3 - 3 - 3"
155+
));
156+
tester.assertNoErrors();
157+
158+
tester.unsubscribe();
159+
}
160+
161+
@Test
162+
public void testZipUneven() {
163+
TestSubscriber<Integer> tester = new TestSubscriber<>();
164+
165+
Observable.zip(
166+
Observable.range(0, 5),
167+
Observable.range(0, 3),
168+
Observable.range(0, 8),
169+
(i1,i2,i3) -> i1 + " - " + i2 + " - " + i3)
170+
.count()
171+
.subscribe(tester);
172+
173+
tester.assertReceivedOnNext(Arrays.asList(3));
174+
175+
tester.unsubscribe();
110176
}
111177

112178
@Test
@@ -128,6 +194,8 @@ public void testZipWith() {
128194
"3 - 3"
129195
));
130196
tester.assertNoErrors();
197+
198+
tester.unsubscribe();
131199
}
132200

133201
@Test
@@ -149,6 +217,8 @@ public void testZipWithIterable() {
149217
));
150218
tester.assertTerminalEvent();
151219
tester.assertNoErrors();
220+
221+
tester.unsubscribe();
152222
}
153223

154224
}

0 commit comments

Comments
 (0)
X Tutup