@Test public void testWindowTriggerTimeAlignment() { try { @SuppressWarnings("unchecked") final Output<StreamRecord<String>> mockOut = mock(Output.class); final StreamTask<?, ?> mockTask = createMockTask(); AggregatingProcessingTimeWindowOperator<String, String> op; op = new AggregatingProcessingTimeWindowOperator<>( mockFunction, mockKeySelector, StringSerializer.INSTANCE, StringSerializer.INSTANCE, 5000, 1000); op.setup(mockTask, new StreamConfig(new Configuration()), mockOut); op.open(); assertTrue(op.getNextSlideTime() % 1000 == 0); assertTrue(op.getNextEvaluationTime() % 1000 == 0); op.dispose(); op = new AggregatingProcessingTimeWindowOperator<>( mockFunction, mockKeySelector, StringSerializer.INSTANCE, StringSerializer.INSTANCE, 1000, 1000); op.setup(mockTask, new StreamConfig(new Configuration()), mockOut); op.open(); assertTrue(op.getNextSlideTime() % 1000 == 0); assertTrue(op.getNextEvaluationTime() % 1000 == 0); op.dispose(); op = new AggregatingProcessingTimeWindowOperator<>( mockFunction, mockKeySelector, StringSerializer.INSTANCE, StringSerializer.INSTANCE, 1500, 1000); op.setup(mockTask, new StreamConfig(new Configuration()), mockOut); op.open(); assertTrue(op.getNextSlideTime() % 500 == 0); assertTrue(op.getNextEvaluationTime() % 1000 == 0); op.dispose(); op = new AggregatingProcessingTimeWindowOperator<>( mockFunction, mockKeySelector, StringSerializer.INSTANCE, StringSerializer.INSTANCE, 1200, 1100); op.setup(mockTask, new StreamConfig(new Configuration()), mockOut); op.open(); assertTrue(op.getNextSlideTime() % 100 == 0); assertTrue(op.getNextEvaluationTime() % 1100 == 0); op.dispose(); } catch (Exception e) { e.printStackTrace(); fail(e.getMessage()); } }
@Test public void testWindowSizeAndSlide() { try { AggregatingProcessingTimeWindowOperator<String, String> op; op = new AggregatingProcessingTimeWindowOperator<>( mockFunction, mockKeySelector, StringSerializer.INSTANCE, StringSerializer.INSTANCE, 5000, 1000); assertEquals(5000, op.getWindowSize()); assertEquals(1000, op.getWindowSlide()); assertEquals(1000, op.getPaneSize()); assertEquals(5, op.getNumPanesPerWindow()); op = new AggregatingProcessingTimeWindowOperator<>( mockFunction, mockKeySelector, StringSerializer.INSTANCE, StringSerializer.INSTANCE, 1000, 1000); assertEquals(1000, op.getWindowSize()); assertEquals(1000, op.getWindowSlide()); assertEquals(1000, op.getPaneSize()); assertEquals(1, op.getNumPanesPerWindow()); op = new AggregatingProcessingTimeWindowOperator<>( mockFunction, mockKeySelector, StringSerializer.INSTANCE, StringSerializer.INSTANCE, 1500, 1000); assertEquals(1500, op.getWindowSize()); assertEquals(1000, op.getWindowSlide()); assertEquals(500, op.getPaneSize()); assertEquals(3, op.getNumPanesPerWindow()); op = new AggregatingProcessingTimeWindowOperator<>( mockFunction, mockKeySelector, StringSerializer.INSTANCE, StringSerializer.INSTANCE, 1200, 1100); assertEquals(1200, op.getWindowSize()); assertEquals(1100, op.getWindowSlide()); assertEquals(100, op.getPaneSize()); assertEquals(12, op.getNumPanesPerWindow()); } catch (Exception e) { e.printStackTrace(); fail(e.getMessage()); } }