@SuppressWarnings({"rawtypes", "unchecked"})
 private void emitObjects(SortedMovingWindow win, Object[][] obj) {
   for (int i = 0; i < obj.length; i++) {
     win.beginWindow(i);
     for (int j = 0; j < obj[i].length; j++) {
       win.data.process(obj[i][j]);
     }
     win.endWindow();
   }
 }
  /** Test sorting simple comparable tuples within the sliding window */
  @Test
  public void testSortingSimpleNumberTuple() {
    SortedMovingWindow<Integer, Null> smw = new SortedMovingWindow<Integer, Null>();
    CollectorTestSink<Object> testSink = new CollectorTestSink<Object>();
    smw.outputPort.setSink(testSink);
    smw.setup(null);

    smw.setWindowSize(2);
    // The incoming 6 integer tuples are disordered among 4 windows
    emitObjects(smw, new Integer[][] {{1, 3}, {2, 5}, {4}, {6}});
    smw.beginWindow(4);
    smw.endWindow();
    smw.beginWindow(5);
    smw.endWindow();

    // The outcome is sorted
    Assert.assertEquals(Lists.newArrayList(1, 2, 3, 4, 5, 6), testSink.collectedTuples);
  }