@Test(dependsOnMethods = {"testQueryAbsent2"})
    public void testQueryAbsent3() throws InterruptedException {
        log.info("Test the query (e1 -> every not e2 for 900 milliseconds) within 2 sec without sending e2");

        SiddhiManager siddhiManager = new SiddhiManager();

        String streams = "" +
                "@app:playback " +
                "define stream Stream1 (symbol string, price float, volume int); " +
                "define stream Stream2 (symbol string, price float, volume int); " +
                "define stream TimerStream (symbol string); ";
        String query = "" +
                "@info(name = 'query1') " +
                "from (e1=Stream1[price>20] -> every not Stream2[price>e1.price] for 900 milliseconds) within 2 sec " +
                "select e1.symbol as symbol1 " +
                "insert into OutputStream ;";

        SiddhiAppRuntime siddhiAppRuntime = siddhiManager.createSiddhiAppRuntime(streams + query);

        TestUtil.TestCallback callback = TestUtil.addQueryCallback(siddhiAppRuntime, "query1", new Object[]{"WSO2"},
                new Object[]{"WSO2"});

        InputHandler stream1 = siddhiAppRuntime.getInputHandler("Stream1");
        InputHandler timerStream = siddhiAppRuntime.getInputHandler("TimerStream");

        siddhiAppRuntime.start();

        long timestamp = System.currentTimeMillis();
        stream1.send(timestamp, new Object[]{"WSO2", 55.6f, 100});
        timestamp += 1000;
        timerStream.send(timestamp, new Object[]{"UPDATE-TIME"});
        Thread.sleep(100);
        AssertJUnit.assertEquals("Number of success events after first timeout", 1, callback.getInEventCount());

        timestamp += 1000;
        timerStream.send(timestamp, new Object[]{"UPDATE-TIME"});
        Thread.sleep(100);
        AssertJUnit.assertEquals("Number of success events after second timeout", 2, callback.getInEventCount());

        timestamp += 1000;
        timerStream.send(timestamp, new Object[]{"UPDATE-TIME"});
        Thread.sleep(100);

        callback.throwAssertionErrors();
        AssertJUnit.assertEquals("Number of success events", 2, callback.getInEventCount());
        AssertJUnit.assertEquals("Number of remove events", 0, callback.getRemoveEventCount());
        AssertJUnit.assertTrue("Event not arrived", callback.isEventArrived());

        siddhiAppRuntime.shutdown();
    }
Test the patterns:
- 'A -> every(not B for 1 sec)'
- 'every (not A for 1 sec) -> B'
- 'A -> every(not B and C)'
- 'every(not A and B) -> C'
- 'A -> every(not B for 1 sec and C)'
- 'every(not A for 1 sec and B) -> C'
modules/siddhi-core/src/test/java/io/siddhi/core/query/pattern/absent/EveryAbsentPatternTestCase.java