Search in sources :

Example 6 with Configuration

use of teetime.framework.Configuration in project TeeTime by teetime-framework.

the class ThreeStagesPushPullIT method shouldExecutePipelineCorrectlyManyElements.

private void shouldExecutePipelineCorrectlyManyElements(final int numElements, final int numThreads) {
    List<Integer> processedElements = new ArrayList<>();
    IntStream inputElements = IntStream.iterate(0, i -> i + 1).limit(numElements);
    Configuration config = new Configuration().from(new StreamProducer<>(inputElements)).to(new Counter<>()).end(new CollectorSink<>(processedElements));
    TeeTimeScheduler scheduling = new PushPullScheduling(config);
    Execution<Configuration> execution = new Execution<>(config, true, scheduling);
    execution.executeBlocking();
    for (int i = 0; i < numElements; i++) {
        Integer actualElement = processedElements.get(i);
        assertThat(actualElement, is(i));
    }
    assertThat(processedElements, hasSize(numElements));
}
Also used : IntStream(java.util.stream.IntStream) MethodSorters(org.junit.runners.MethodSorters) StreamProducer(teetime.stage.StreamProducer) PushPullScheduling(teetime.framework.scheduling.pushpullmodel.PushPullScheduling) Matchers(org.hamcrest.Matchers) Test(org.junit.Test) TeeTimeScheduler(teetime.framework.TeeTimeScheduler) ArrayList(java.util.ArrayList) Configuration(teetime.framework.Configuration) List(java.util.List) CollectorSink(teetime.stage.CollectorSink) Execution(teetime.framework.Execution) Assert(org.junit.Assert) FixMethodOrder(org.junit.FixMethodOrder) Counter(teetime.stage.Counter) Configuration(teetime.framework.Configuration) ArrayList(java.util.ArrayList) PushPullScheduling(teetime.framework.scheduling.pushpullmodel.PushPullScheduling) Counter(teetime.stage.Counter) Execution(teetime.framework.Execution) TeeTimeScheduler(teetime.framework.TeeTimeScheduler) IntStream(java.util.stream.IntStream)

Example 7 with Configuration

use of teetime.framework.Configuration in project TeeTime by teetime-framework.

the class DynamicTaskFarmStageTest method testDynamicTaskFarmStage.

@Test
@Ignore("declareActive at runtime is required, but not yet implemented/merged")
public void testDynamicTaskFarmStage() throws Exception {
    final Integer[] elements = { 1, 2, 3 };
    final ElementTrigger<Integer> producer = new ElementTrigger<Integer>(elements);
    final DynamicTaskFarmStage<Integer, Integer, Counter<Integer>> dynamicTaskFarmStage = new DynamicTaskFarmStage<Integer, Integer, Counter<Integer>>(new Counter<Integer>(), 1);
    final CollectorSink<Integer> collectorSink = new CollectorSink<Integer>();
    Configuration configuration = new Configuration() {

        {
            connectPorts(producer.getOutputPort(), dynamicTaskFarmStage.getInputPort());
            connectPorts(dynamicTaskFarmStage.getOutputPort(), collectorSink.getInputPort());
        }
    };
    Execution<Configuration> execution = new Execution<Configuration>(configuration);
    execution.executeNonBlocking();
    producer.trigger();
    assertThat(dynamicTaskFarmStage.getMerger().isActive(), is(false));
    dynamicTaskFarmStage.addStageAtRuntime();
    producer.trigger();
    // assertThat(dynamicTaskFarmStage.getMerger().isActive(), is(true)); // TODO uncomment if "declareActive at runtime" is implemented
    dynamicTaskFarmStage.removeStageAtRuntime();
    producer.trigger();
    // assertThat(dynamicTaskFarmStage.getMerger().isActive(), is(false)); // TODO uncomment if "declareActive at runtime" is implemented
    execution.abortEventually();
}
Also used : Configuration(teetime.framework.Configuration) CollectorSink(teetime.stage.CollectorSink) Counter(teetime.stage.Counter) Execution(teetime.framework.Execution) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

Configuration (teetime.framework.Configuration)7 Execution (teetime.framework.Execution)7 ArrayList (java.util.ArrayList)5 Test (org.junit.Test)5 CollectorSink (teetime.stage.CollectorSink)4 List (java.util.List)3 IntStream (java.util.stream.IntStream)3 Matchers (org.hamcrest.Matchers)3 Assert (org.junit.Assert)3 TeeTimeScheduler (teetime.framework.TeeTimeScheduler)3 Counter (teetime.stage.Counter)3 StreamProducer (teetime.stage.StreamProducer)3 FixMethodOrder (org.junit.FixMethodOrder)2 MethodSorters (org.junit.runners.MethodSorters)2 File (java.io.File)1 Ignore (org.junit.Ignore)1 GlobalTaskPoolScheduling (teetime.framework.scheduling.globaltaskpool.GlobalTaskPoolScheduling)1 PushPullScheduling (teetime.framework.scheduling.pushpullmodel.PushPullScheduling)1 CipherStage (teetime.stage.CipherStage)1 InitialElementProducer (teetime.stage.InitialElementProducer)1