Search in sources :

Example 11 with Spouts.of

use of cyclops.reactive.Spouts.of in project cyclops by aol.

the class FlatMapTest method flatMapAsync2.

@Test
public void flatMapAsync2() {
    for (int k = 0; k < 100; k++) {
        List<Integer> res = Spouts.of(1, 2, 3).flatMap(i -> nextAsync()).toList();
        assertThat(res.size(), equalTo(Arrays.asList(1, 2, 1, 2, 1, 2).size()));
        assertThat(res, hasItems(1, 2));
        int one = 0;
        int two = 0;
        for (Integer next : res) {
            if (next == 1) {
                one++;
            }
            if (next == 2) {
                two++;
            }
        }
        assertThat(one, equalTo(3));
        assertThat(two, equalTo(3));
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Maybe(cyclops.control.Maybe) Arrays(java.util.Arrays) Spouts.of(cyclops.reactive.Spouts.of) Spouts(cyclops.reactive.Spouts) ReactiveSubscriber(com.oath.cyclops.types.reactive.ReactiveSubscriber) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) Matchers(org.hamcrest.Matchers) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Test(org.junit.Test) Collectors(java.util.stream.Collectors) Matchers.hasItems(org.hamcrest.Matchers.hasItems) ReactiveSeq(cyclops.reactive.ReactiveSeq) Flux(reactor.core.publisher.Flux) AtomicLong(java.util.concurrent.atomic.AtomicLong) List(java.util.List) Stream(java.util.stream.Stream) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ForkJoinPool(java.util.concurrent.ForkJoinPool) Subscription(org.reactivestreams.Subscription) Schedulers(reactor.core.scheduler.Schedulers) AsyncSubscriber(com.oath.cyclops.types.reactive.AsyncSubscriber) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Assert(org.junit.Assert) Subscriber(org.reactivestreams.Subscriber) Test(org.junit.Test)

Example 12 with Spouts.of

use of cyclops.reactive.Spouts.of in project cyclops by aol.

the class IterableFlatMapTest method flatMapAsyncRS2.

@Test
public void flatMapAsyncRS2() {
    for (int k = 0; k < 1000; k++) {
        System.out.println("********0---------------------K " + k);
        ReactiveSubscriber<Integer> sub = Spouts.reactiveSubscriber();
        Spouts.of(1, 2, 3).peek(System.out::println).concatMap(i -> nextAsyncRS()).subscribe(sub);
        List<Integer> res = sub.reactiveStream().collect(Collectors.toList());
        System.out.println(res);
        assertThat(res.size(), equalTo(Arrays.asList(1, 2, 1, 2, 1, 2).size()));
        assertThat(res, hasItems(1, 2));
        int one = 0;
        int two = 0;
        for (Integer next : res) {
            if (next == 1) {
                one++;
            }
            if (next == 2) {
                two++;
            }
        }
        assertThat(one, equalTo(3));
        assertThat(two, equalTo(3));
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Maybe(cyclops.control.Maybe) Arrays(java.util.Arrays) Spouts.of(cyclops.reactive.Spouts.of) Spouts(cyclops.reactive.Spouts) ReactiveSubscriber(com.oath.cyclops.types.reactive.ReactiveSubscriber) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) Matchers(org.hamcrest.Matchers) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Test(org.junit.Test) Collectors(java.util.stream.Collectors) Matchers.hasItems(org.hamcrest.Matchers.hasItems) ReactiveSeq(cyclops.reactive.ReactiveSeq) Flux(reactor.core.publisher.Flux) AtomicLong(java.util.concurrent.atomic.AtomicLong) List(java.util.List) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ForkJoinPool(java.util.concurrent.ForkJoinPool) Subscription(org.reactivestreams.Subscription) Schedulers(reactor.core.scheduler.Schedulers) AsyncSubscriber(com.oath.cyclops.types.reactive.AsyncSubscriber) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Assert(org.junit.Assert) Subscriber(org.reactivestreams.Subscriber) Test(org.junit.Test)

Example 13 with Spouts.of

use of cyclops.reactive.Spouts.of in project cyclops by aol.

the class FlatMapPublisherTest method flatMapPAsync2Iterator.

@Test
public void flatMapPAsync2Iterator() {
    for (int k = 0; k < 500; k++) {
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k + "*************************!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        List<Integer> res = new ArrayList<>();
        Iterator<Integer> it = Spouts.of(1, 2, 3).mergeMap(i -> nextAsync()).iterator();
        while (it.hasNext()) {
            res.add(it.next());
        }
        System.out.println("Result is " + res);
        assertThat(res.size(), equalTo(Arrays.asList(1, 2, 1, 2, 1, 2).size()));
        assertThat(res, hasItems(1, 2));
        int one = 0;
        int two = 0;
        for (Integer next : res) {
            if (next == 1) {
                one++;
            }
            if (next == 2) {
                two++;
            }
        }
        assertThat(one, equalTo(3));
        assertThat(two, equalTo(3));
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Arrays(java.util.Arrays) Spouts.of(cyclops.reactive.Spouts.of) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Matchers.hasItems(org.hamcrest.Matchers.hasItems) ArrayList(java.util.ArrayList) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Schedulers(reactor.core.scheduler.Schedulers) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Subscriber(org.reactivestreams.Subscriber) Maybe(cyclops.control.Maybe) Spouts(cyclops.reactive.Spouts) Iterator(java.util.Iterator) ReactiveSubscriber(com.oath.cyclops.types.reactive.ReactiveSubscriber) Executor(java.util.concurrent.Executor) Matchers(org.hamcrest.Matchers) Test(org.junit.Test) Collectors(java.util.stream.Collectors) Executors(java.util.concurrent.Executors) ReactiveSeq(cyclops.reactive.ReactiveSeq) Flux(reactor.core.publisher.Flux) List(java.util.List) MatcherAssert(org.hamcrest.MatcherAssert) ForkJoinPool(java.util.concurrent.ForkJoinPool) Subscription(org.reactivestreams.Subscription) Assert(org.junit.Assert) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 14 with Spouts.of

use of cyclops.reactive.Spouts.of in project cyclops by aol.

the class FlatMapPublisherTest method concurrentFlatMapP1.

@Test
public void concurrentFlatMapP1() {
    for (int k = 0; k < 500; k++) {
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k);
        System.out.println("****************************NEXT ITERATION " + k + "*************************!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        List<Integer> res = Spouts.of(1, 2, 3).mergeMap(2, i -> nextAsync()).toList();
        System.out.println("Result is " + res);
        assertThat(res.size(), equalTo(Arrays.asList(1, 2, 1, 2, 1, 2).size()));
        assertThat(res, hasItems(1, 2));
        int one = 0;
        int two = 0;
        for (Integer next : res) {
            if (next == 1) {
                one++;
            }
            if (next == 2) {
                two++;
            }
        }
        assertThat(one, equalTo(3));
        assertThat(two, equalTo(3));
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Arrays(java.util.Arrays) Spouts.of(cyclops.reactive.Spouts.of) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Matchers.hasItems(org.hamcrest.Matchers.hasItems) ArrayList(java.util.ArrayList) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Schedulers(reactor.core.scheduler.Schedulers) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Subscriber(org.reactivestreams.Subscriber) Maybe(cyclops.control.Maybe) Spouts(cyclops.reactive.Spouts) Iterator(java.util.Iterator) ReactiveSubscriber(com.oath.cyclops.types.reactive.ReactiveSubscriber) Executor(java.util.concurrent.Executor) Matchers(org.hamcrest.Matchers) Test(org.junit.Test) Collectors(java.util.stream.Collectors) Executors(java.util.concurrent.Executors) ReactiveSeq(cyclops.reactive.ReactiveSeq) Flux(reactor.core.publisher.Flux) List(java.util.List) MatcherAssert(org.hamcrest.MatcherAssert) ForkJoinPool(java.util.concurrent.ForkJoinPool) Subscription(org.reactivestreams.Subscription) Assert(org.junit.Assert) Test(org.junit.Test)

Example 15 with Spouts.of

use of cyclops.reactive.Spouts.of in project cyclops by aol.

the class FlatMapPublisherTest method asyncFlatMap.

@Test
public void asyncFlatMap() {
    List<Integer> res = Spouts.of(1, 2, 3).map(i -> nextAsync()).grouped(3).mergeMap(l -> Spouts.mergeLatest(l)).toList();
    assertThat(res.size(), equalTo(Arrays.asList(1, 2, 1, 2, 1, 2).size()));
    assertThat(res, hasItems(1, 2));
    int one = 0;
    int two = 0;
    for (Integer next : res) {
        if (next == 1) {
            one++;
        }
        if (next == 2) {
            two++;
        }
    }
    assertThat(one, equalTo(3));
    assertThat(two, equalTo(3));
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Arrays(java.util.Arrays) Spouts.of(cyclops.reactive.Spouts.of) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Matchers.hasItems(org.hamcrest.Matchers.hasItems) ArrayList(java.util.ArrayList) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Schedulers(reactor.core.scheduler.Schedulers) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Subscriber(org.reactivestreams.Subscriber) Maybe(cyclops.control.Maybe) Spouts(cyclops.reactive.Spouts) Iterator(java.util.Iterator) ReactiveSubscriber(com.oath.cyclops.types.reactive.ReactiveSubscriber) Executor(java.util.concurrent.Executor) Matchers(org.hamcrest.Matchers) Test(org.junit.Test) Collectors(java.util.stream.Collectors) Executors(java.util.concurrent.Executors) ReactiveSeq(cyclops.reactive.ReactiveSeq) Flux(reactor.core.publisher.Flux) List(java.util.List) MatcherAssert(org.hamcrest.MatcherAssert) ForkJoinPool(java.util.concurrent.ForkJoinPool) Subscription(org.reactivestreams.Subscription) Assert(org.junit.Assert) Test(org.junit.Test)

Aggregations

ReactiveSubscriber (com.oath.cyclops.types.reactive.ReactiveSubscriber)26 Maybe (cyclops.control.Maybe)26 ReactiveSeq (cyclops.reactive.ReactiveSeq)26 Spouts (cyclops.reactive.Spouts)26 Spouts.of (cyclops.reactive.Spouts.of)26 Arrays (java.util.Arrays)26 List (java.util.List)26 ForkJoinPool (java.util.concurrent.ForkJoinPool)26 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)26 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)26 Collectors (java.util.stream.Collectors)26 CoreMatchers.equalTo (org.hamcrest.CoreMatchers.equalTo)26 MatcherAssert.assertThat (org.hamcrest.MatcherAssert.assertThat)26 Matchers (org.hamcrest.Matchers)26 Matchers.hasItems (org.hamcrest.Matchers.hasItems)26 Assert (org.junit.Assert)26 Test (org.junit.Test)26 Subscriber (org.reactivestreams.Subscriber)26 Subscription (org.reactivestreams.Subscription)26 Flux (reactor.core.publisher.Flux)26