Ejemplo n.º 1
0
  private void testNanoScheduler(final NanoSchedulerBasicTest test) throws InterruptedException {
    final SimpleTimer timer = new SimpleTimer().start();
    final NanoScheduler<Integer, Integer, Integer> nanoScheduler = test.makeScheduler();

    final ProgressCallback callback = new ProgressCallback();
    nanoScheduler.setProgressFunction(callback);

    if (test.bufferSize > -1)
      Assert.assertEquals(nanoScheduler.getBufferSize(), test.bufferSize, "bufferSize argument");
    Assert.assertEquals(nanoScheduler.getnThreads(), test.nThreads, "nThreads argument");

    final Integer sum =
        nanoScheduler.execute(
            test.makeReader(), test.makeMap(), test.initReduce(), test.makeReduce());
    Assert.assertNotNull(sum);
    Assert.assertEquals(
        (int) sum, test.expectedResult, "NanoScheduler sum not the same as calculated directly");

    Assert.assertTrue(
        callback.callBacks >= test.nExpectedCallbacks(),
        "Not enough callbacks detected.  Expected at least "
            + test.nExpectedCallbacks()
            + " but saw only "
            + callback.callBacks);
    nanoScheduler.shutdown();
  }