private void HandleEvent(EventBean eventBean) { SupportTradeEvent tradeevent1 = (SupportTradeEvent) eventBean.Get("tradeevent1"); SupportTradeEvent tradeevent2 = (SupportTradeEvent) eventBean.Get("tradeevent2"); SupportTradeEvent tradeevent3 = (SupportTradeEvent) eventBean.Get("tradeevent3"); if (( tradeevent1.UserId.Equals(tradeevent2.UserId) || tradeevent1.UserId.Equals(tradeevent3.UserId) || tradeevent2.UserId.Equals(tradeevent3.UserId))) { /* * Console.Out.WriteLine("Bad Match : "); * Console.Out.WriteLine(tradeevent1); * Console.Out.WriteLine(tradeevent2); * Console.Out.WriteLine(tradeevent3 + "\n"); */ BadMatchCount++; } else { GoodMatchCount++; } }
public void TestFollowedByFilter() { // Test for ESPER-121 Configuration config = SupportConfigFactory.GetConfiguration(); config.AddEventType <SupportTradeEvent>("FxTradeEvent"); EPServiceProvider epService = EPServiceProviderManager.GetProvider( "testRFIDZoneEnter", config); epService.Initialize(); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.StartTest(epService, GetType(), GetType().FullName); } String expression = "every tradeevent1=FxTradeEvent(userId in ('U1000','U1001','U1002') ) -> " + "(tradeevent2=FxTradeEvent(userId in ('U1000','U1001','U1002') and " + " userId != tradeevent1.userId and " + " ccypair = tradeevent1.ccypair and " + " direction = tradeevent1.direction) -> " + " tradeevent3=FxTradeEvent(userId in ('U1000','U1001','U1002') and " + " userId != tradeevent1.userId and " + " userId != tradeevent2.userId and " + " ccypair = tradeevent1.ccypair and " + " direction = tradeevent1.direction)" + ") where timer:within(600 sec)"; EPStatement statement = epService.EPAdministrator.CreatePattern(expression); MyUpdateListener listener = new MyUpdateListener(); statement.Events += (sender, e) => listener.Update(e.NewEvents, e.OldEvents); Random random = new Random(); String[] users = { "U1000", "U1001", "U1002" }; String[] ccy = { "USD", "JPY", "EUR" }; String[] direction = { "B", "S" }; for (int i = 0; i < 100; i++) { SupportTradeEvent theEvent = new SupportTradeEvent( i, users[random.Next(0, users.Length)], ccy[random.Next(0, ccy.Length)], direction[random.Next(0, direction.Length)]); epService.EPRuntime.SendEvent(theEvent); } Assert.AreEqual(0, listener.BadMatchCount); epService.Dispose(); if (InstrumentationHelper.ENABLED) { InstrumentationHelper.EndTest(); } }
public void Run() { var stmtText = "every event1=SupportEvent(userId in ('100','101'),amount>=1000)"; var statement = _engine.EPAdministrator.CreatePattern(stmtText); statement.Events += _listener.Update; var countLoops = 0; while (!_isShutdown) { countLoops++; var matches = new List <SupportTradeEvent>(); for (var i = 0; i < 10000; i++) { SupportTradeEvent bean; if (i % 1000 == 1) { bean = new SupportTradeEvent(i, "100", 1001); matches.Add(bean); } else { bean = new SupportTradeEvent(i, "101", 10); } _engine.EPRuntime.SendEvent(bean); } // check results var received = _listener.GetNewDataListFlattened(); Assert.AreEqual(matches.Count, received.Length); for (var i = 0; i < received.Length; i++) { Assert.AreSame(matches[i], received[i].Get("event1")); } // Log.Info("Found " + received.Length + " matches in loop #" + countLoops); _listener.Reset(); } }
public void Run() { String stmtText = "every event1=SupportEvent(UserId in ('100','101'),Amount>=1000)"; EPStatement statement = engine.EPAdministrator.CreatePattern(stmtText); statement.Events += listener.Update; int countLoops = 0; while (!Shutdown) { countLoops++; IList <SupportTradeEvent> matches = new List <SupportTradeEvent>(); for (int i = 0; i < 10000; i++) { SupportTradeEvent bean; if (i % 1000 == 1) { bean = new SupportTradeEvent(i, "100", 1001); matches.Add(bean); } else { bean = new SupportTradeEvent(i, "101", 10); } engine.EPRuntime.SendEvent(bean); } // check results EventBean[] received = listener.GetNewDataListFlattened(); Assert.AreEqual(matches.Count, received.Length); for (int i = 0; i < received.Length; i++) { Assert.AreSame(matches[i], received[i].Get("event1")); } // Console.Out.WriteLine("Found " + received.Length + " matches in loop #" + countLoops); listener.Reset(); } }
private void HandleEvent(EventBean eventBean) { SupportTradeEvent tradeevent1 = (SupportTradeEvent) eventBean.Get("tradeevent1"); SupportTradeEvent tradeevent2 = (SupportTradeEvent) eventBean.Get("tradeevent2"); SupportTradeEvent tradeevent3 = (SupportTradeEvent) eventBean.Get("tradeevent3"); if (tradeevent1.UserId.Equals(tradeevent2.UserId) || tradeevent1.UserId.Equals(tradeevent3.UserId) || tradeevent2.UserId.Equals(tradeevent3.UserId)) { /* * Log.Info("Bad Match : "); * Log.Info(tradeevent1); * Log.Info(tradeevent2); * Log.Info(tradeevent3 + "\n"); */ _badMatchCount++; } }
private void RunAssertionFollowedByFilter(EPServiceProvider epService) { // Test for ESPER-121 epService.EPAdministrator.Configuration.AddEventType("FxTradeEvent", typeof(SupportTradeEvent)); string expression = "every tradeevent1=FxTradeEvent(userId in ('U1000','U1001','U1002') ) -> " + "(tradeevent2=FxTradeEvent(userId in ('U1000','U1001','U1002') and " + " userId != tradeevent1.userId and " + " ccypair = tradeevent1.ccypair and " + " direction = tradeevent1.direction) -> " + " tradeevent3=FxTradeEvent(userId in ('U1000','U1001','U1002') and " + " userId != tradeevent1.userId and " + " userId != tradeevent2.userId and " + " ccypair = tradeevent1.ccypair and " + " direction = tradeevent1.direction)" + ") where timer:within(600 sec)"; EPStatement statement = epService.EPAdministrator.CreatePattern(expression); var listener = new MyUpdateListener(); statement.Events += listener.Update; var random = new Random(); string[] users = { "U1000", "U1001", "U1002" }; string[] ccy = { "USD", "JPY", "EUR" }; string[] direction = { "B", "S" }; for (int i = 0; i < 100; i++) { var theEvent = new SupportTradeEvent(i, users[random.Next(users.Length)], ccy[random.Next(ccy.Length)], direction[random.Next(direction.Length)]); epService.EPRuntime.SendEvent(theEvent); } Assert.AreEqual(0, listener.BadMatchCount); statement.Dispose(); }
public void Run(RegressionEnvironment env) { var expression = "@Name('s0') select * from pattern [" + "every tradeevent1=SupportTradeEvent(UserId in ('U1000','U1001','U1002') ) -> " + "(tradeevent2=SupportTradeEvent(UserId in ('U1000','U1001','U1002') and " + " UserId != tradeevent1.UserId and " + " Ccypair = tradeevent1.Ccypair and " + " Direction = tradeevent1.Direction) -> " + " tradeevent3=SupportTradeEvent(UserId in ('U1000','U1001','U1002') and " + " UserId != tradeevent1.UserId and " + " UserId != tradeevent2.UserId and " + " Ccypair = tradeevent1.Ccypair and " + " Direction = tradeevent1.Direction)" + ") where timer:within(600 sec)]"; env.CompileDeploy(expression); var listener = new MyUpdateListener(); env.Statement("s0").AddListener(listener); var random = new Random(); string[] users = {"U1000", "U1001", "U1002"}; string[] ccy = {"USD", "JPY", "EUR"}; string[] direction = {"B", "S"}; for (var i = 0; i < 100; i++) { var theEvent = new SupportTradeEvent( i, users[random.Next(users.Length)], ccy[random.Next(ccy.Length)], direction[random.Next(direction.Length)]); env.SendEventBean(theEvent); } Assert.AreEqual(0, listener.BadMatchCount); env.UndeployAll(); }