private void RunAssertionEquals(string epl, SupportUpdateListener[] listeners)
        {
            // test function returns lookup value and "equals"
            for (var i = 0; i < listeners.Length; i++)
            {
                var stmt = _epService.EPAdministrator.CreateEPL(epl.Replace("!NUM!", i.ToString(CultureInfo.InvariantCulture)));
                stmt.AddListener(listeners[i]);
            }

            MyLib.ResetCountInvoked();

            var loops = 1000;
            var delta = PerformanceObserver.TimeMillis(
                () =>
            {
                for (var i = 0; i < loops; i++)
                {
                    _epService.EPRuntime.SendEvent(new SupportBean("E_" + i % listeners.Length, 0));
                    var listener = listeners[i % listeners.Length];
                    Assert.IsTrue(listener.GetAndClearIsInvoked());
                }
            });

            Assert.AreEqual(loops, MyLib.GetCountInvoked());

            Log.Info("Equals delta=" + delta);
            Assert.That(delta, Is.LessThan(1000), "Delta is " + delta);
            _epService.EPAdministrator.DestroyAllStatements();
        }