private UniformPair <String[]> RenderReceived(String[] fields) { String[] renderNew = RenderReceived(_listener.GetNewDataListFlattened(), fields); String[] renderOld = RenderReceived(_listener.GetOldDataListFlattened(), fields); return(new UniformPair <String[]>(renderNew, renderOld)); }
public void TestTimeAccum() { long startTime = 1000; SendTimer(startTime); EPStatement stmt = _epService.EPAdministrator.CreateEPL( "select irstream * from " + typeof(SupportMarketDataBean).FullName + "#time_accum(10 sec)"); stmt.Events += _listener.Update; EPRuntime engine = _epService.EPRuntime; SendTimer(startTime + 10000); Assert.IsFalse(_listener.IsInvoked); // 1st at 10 sec engine.SendEvent(_events[0]); Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[0]); // 2nd event at 14 sec SendTimer(startTime + 14000); engine.SendEvent(_events[1]); Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[1]); // 3nd event at 14 sec SendTimer(startTime + 14000); engine.SendEvent(_events[2]); Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[2]); // 3rd event at 23 sec SendTimer(startTime + 23000); engine.SendEvent(_events[3]); Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[3]); // no event till 33 sec SendTimer(startTime + 32999); Assert.IsFalse(_listener.IsInvoked); SendTimer(startTime + 33000); Assert.IsNull(_listener.LastNewData); Assert.AreEqual(1, _listener.OldDataList.Count); Assert.AreEqual(4, _listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new Object[] { _events[0], _events[1], _events[2], _events[3] }, _listener.GetOldDataListFlattened()); _listener.Reset(); // no events till 50 sec SendTimer(startTime + 50000); Assert.IsFalse(_listener.IsInvoked); // next two events at 55 sec SendTimer(startTime + 55000); engine.SendEvent(_events[4]); Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[4]); engine.SendEvent(_events[5]); Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[5]); // no event till 65 sec SendTimer(startTime + 64999); Assert.IsFalse(_listener.IsInvoked); SendTimer(startTime + 65000); Assert.IsNull(_listener.LastNewData); Assert.AreEqual(1, _listener.OldDataList.Count); Assert.AreEqual(2, _listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new Object[] { _events[4], _events[5] }, _listener.GetOldDataListFlattened()); _listener.Reset(); // next window engine.SendEvent(_events[6]); Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[6]); SendTimer(startTime + 74999); engine.SendEvent(_events[7]); Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[7]); SendTimer(startTime + 74999 + 10000); Assert.IsNull(_listener.LastNewData); Assert.AreEqual(1, _listener.OldDataList.Count); Assert.AreEqual(2, _listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new Object[] { _events[6], _events[7] }, _listener.GetOldDataListFlattened()); _listener.Reset(); }
private void RunAssertionGroupedWindow(EPServiceProvider epService, SupportMarketDataBean[] events) { long startTime = 1000; SendTimer(epService, startTime); EPStatement stmt = epService.EPAdministrator.CreateEPL( "select irstream * from " + typeof(SupportMarketDataBean).FullName + "#groupwin(symbol)#time_accum(10 sec)"); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; EPRuntime engine = epService.EPRuntime; // 1st S1 event SendTimer(epService, startTime + 10000); engine.SendEvent(events[1]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[1]); // 1st S2 event SendTimer(epService, startTime + 12000); engine.SendEvent(events[2]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[2]); // 2nd S1 event SendTimer(epService, startTime + 15000); engine.SendEvent(events[11]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[11]); // 2nd S2 event SendTimer(epService, startTime + 18000); engine.SendEvent(events[12]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[12]); // 3rd S1 event SendTimer(epService, startTime + 21000); engine.SendEvent(events[21]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[21]); SendTimer(epService, startTime + 28000); Assert.IsNull(listener.LastNewData); Assert.AreEqual(1, listener.OldDataList.Count); Assert.AreEqual(2, listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[2], events[12] }, listener.GetOldDataListFlattened()); listener.Reset(); // 3rd S2 event SendTimer(epService, startTime + 29000); engine.SendEvent(events[32]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[32]); SendTimer(epService, startTime + 31000); Assert.IsNull(listener.LastNewData); Assert.AreEqual(1, listener.OldDataList.Count); Assert.AreEqual(3, listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[1], events[11], events[21] }, listener.GetOldDataListFlattened()); listener.Reset(); SendTimer(epService, startTime + 39000); Assert.IsNull(listener.LastNewData); Assert.AreEqual(1, listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[32] }, listener.GetOldDataListFlattened()); listener.Reset(); stmt.Dispose(); }
private void RunAssertionTimeAccum(EPServiceProvider epService, SupportMarketDataBean[] events) { long startTime = 1000; SendTimer(epService, startTime); EPStatement stmt = epService.EPAdministrator.CreateEPL( "select irstream * from " + typeof(SupportMarketDataBean).FullName + "#time_accum(10 sec)"); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; EPRuntime engine = epService.EPRuntime; SendTimer(epService, startTime + 10000); Assert.IsFalse(listener.IsInvoked); // 1st at 10 sec engine.SendEvent(events[0]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[0]); // 2nd event at 14 sec SendTimer(epService, startTime + 14000); engine.SendEvent(events[1]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[1]); // 3nd event at 14 sec SendTimer(epService, startTime + 14000); engine.SendEvent(events[2]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[2]); // 3rd event at 23 sec SendTimer(epService, startTime + 23000); engine.SendEvent(events[3]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[3]); // no event till 33 sec SendTimer(epService, startTime + 32999); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 33000); Assert.IsNull(listener.LastNewData); Assert.AreEqual(1, listener.OldDataList.Count); Assert.AreEqual(4, listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[0], events[1], events[2], events[3] }, listener.GetOldDataListFlattened()); listener.Reset(); // no events till 50 sec SendTimer(epService, startTime + 50000); Assert.IsFalse(listener.IsInvoked); // next two events at 55 sec SendTimer(epService, startTime + 55000); engine.SendEvent(events[4]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[4]); engine.SendEvent(events[5]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[5]); // no event till 65 sec SendTimer(epService, startTime + 64999); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 65000); Assert.IsNull(listener.LastNewData); Assert.AreEqual(1, listener.OldDataList.Count); Assert.AreEqual(2, listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[4], events[5] }, listener.GetOldDataListFlattened()); listener.Reset(); // next window engine.SendEvent(events[6]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[6]); SendTimer(epService, startTime + 74999); engine.SendEvent(events[7]); Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[7]); SendTimer(epService, startTime + 74999 + 10000); Assert.IsNull(listener.LastNewData); Assert.AreEqual(1, listener.OldDataList.Count); Assert.AreEqual(2, listener.LastOldData.Length); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[6], events[7] }, listener.GetOldDataListFlattened()); listener.Reset(); stmt.Dispose(); }
private void RunAssertionTimeLengthBatch(EPServiceProvider epService, SupportMarketDataBean[] events) { long startTime = 1000; SendTimer(epService, startTime); EPStatement stmt = epService.EPAdministrator.CreateEPL( "select irstream * from " + typeof(SupportMarketDataBean).FullName + "#time_length_batch(10 sec, 3)"); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; EPRuntime engine = epService.EPRuntime; // Send 3 events in batch engine.SendEvent(events[0]); Assert.IsFalse(listener.IsInvoked); engine.SendEvent(events[1]); Assert.IsFalse(listener.IsInvoked); engine.SendEvent(events[2]); Assert.AreEqual(1, listener.NewDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[0], events[1], events[2] }, listener.GetNewDataListFlattened()); listener.Reset(); // Send another 3 events in batch engine.SendEvent(events[3]); engine.SendEvent(events[4]); Assert.IsFalse(listener.IsInvoked); engine.SendEvent(events[5]); Assert.AreEqual(1, listener.NewDataList.Count); Assert.AreEqual(1, listener.OldDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[0], events[1], events[2] }, listener.GetOldDataListFlattened()); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[3], events[4], events[5] }, listener.GetNewDataListFlattened()); listener.Reset(); // Expire the last 3 events by moving time SendTimer(epService, startTime + 9999); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 10000); Assert.AreEqual(1, listener.NewDataList.Count); Assert.AreEqual(1, listener.OldDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[3], events[4], events[5] }, listener.GetOldDataListFlattened()); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] {}, listener.GetNewDataListFlattened()); listener.Reset(); SendTimer(epService, startTime + 10001); Assert.IsFalse(listener.IsInvoked); // Send an event, let the timer send the batch SendTimer(epService, startTime + 10100); engine.SendEvent(events[6]); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 19999); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 20000); Assert.AreEqual(1, listener.NewDataList.Count); Assert.AreEqual(1, listener.OldDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] {}, listener.GetOldDataListFlattened()); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[6] }, listener.GetNewDataListFlattened()); listener.Reset(); SendTimer(epService, startTime + 20001); Assert.IsFalse(listener.IsInvoked); // Send two events, let the timer send the batch SendTimer(epService, startTime + 29998); engine.SendEvent(events[7]); engine.SendEvent(events[8]); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 29999); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 30000); Assert.AreEqual(1, listener.NewDataList.Count); Assert.AreEqual(1, listener.OldDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[6] }, listener.GetOldDataListFlattened()); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[7], events[8] }, listener.GetNewDataListFlattened()); listener.Reset(); // Send three events, the the 3 events batch SendTimer(epService, startTime + 30001); Assert.IsFalse(listener.IsInvoked); engine.SendEvent(events[9]); engine.SendEvent(events[10]); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 39000); Assert.IsFalse(listener.IsInvoked); engine.SendEvent(events[11]); Assert.AreEqual(1, listener.NewDataList.Count); Assert.AreEqual(1, listener.OldDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[7], events[8] }, listener.GetOldDataListFlattened()); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[9], events[10], events[11] }, listener.GetNewDataListFlattened()); listener.Reset(); // Send 1 event, let the timer to do the batch SendTimer(epService, startTime + 39000 + 9999); Assert.IsFalse(listener.IsInvoked); engine.SendEvent(events[12]); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 39000 + 10000); Assert.AreEqual(1, listener.NewDataList.Count); Assert.AreEqual(1, listener.OldDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[9], events[10], events[11] }, listener.GetOldDataListFlattened()); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[12] }, listener.GetNewDataListFlattened()); listener.Reset(); SendTimer(epService, startTime + 39000 + 10001); Assert.IsFalse(listener.IsInvoked); // Send no events, let the timer to do the batch SendTimer(epService, startTime + 39000 + 19999); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 39000 + 20000); Assert.AreEqual(1, listener.NewDataList.Count); Assert.AreEqual(1, listener.OldDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[12] }, listener.GetOldDataListFlattened()); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] {}, listener.GetNewDataListFlattened()); listener.Reset(); SendTimer(epService, startTime + 39000 + 20001); Assert.IsFalse(listener.IsInvoked); // Send no events, let the timer to do NO batch SendTimer(epService, startTime + 39000 + 29999); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 39000 + 30000); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 39000 + 30001); Assert.IsFalse(listener.IsInvoked); // Send 1 more event SendTimer(epService, startTime + 90000); Assert.IsFalse(listener.IsInvoked); engine.SendEvent(events[13]); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 99999); Assert.IsFalse(listener.IsInvoked); SendTimer(epService, startTime + 100000); Assert.AreEqual(1, listener.NewDataList.Count); Assert.AreEqual(1, listener.OldDataList.Count); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] {}, listener.GetOldDataListFlattened()); EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[13] }, listener.GetNewDataListFlattened()); listener.Reset(); stmt.Dispose(); }