Ejemplo n.º 1
0
            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++;
                }
            }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        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();
            }
        }
Ejemplo n.º 5
0
            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++;
                }
            }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
            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();
            }