Пример #1
0
 public static void AssertST0Id(
     SupportListener listener,
     string property,
     string expectedList)
 {
     AssertST0Id(listener.AssertOneGetNew().Get(property), expectedList);
 }
Пример #2
0
 public RegressionEnvironment AddListener(
     string statementName,
     SupportListener listener)
 {
     GetAssertStatement(statementName).AddListener(listener);
     return this;
 }
Пример #3
0
 public ReadRunnable(
     RegressionEnvironment env,
     SupportListener listener)
 {
     this.env = env;
     this.listener = listener;
 }
Пример #4
0
        public static void AssertRectanglesManyRow(
            RegressionEnvironment env,
            SupportListener listener,
            IList<BoundingBox> rectangles,
            params string[] matches)
        {
            for (var i = 0; i < rectangles.Count; i++) {
                var box = rectangles[i];
                SendRectangle(env, "R" + box, box.MinX, box.MinY, box.MaxX - box.MinX, box.MaxY - box.MinY);
                if (matches[i] == null) {
                    if (listener.IsInvoked) {
                        Assert.Fail(
                            "Unexpected output for box " +
                            i +
                            ": " +
                            SortJoinProperty(listener.GetAndResetLastNewData(), "c0"));
                    }
                }
                else {
                    if (!listener.IsInvoked) {
                        Assert.Fail("No output for box " + i);
                    }

                    Assert.AreEqual(matches[i], SortJoinProperty(listener.GetAndResetLastNewData(), "c0"));
                }
            }
        }
Пример #5
0
        private static void TryOptimizableEquals(
            RegressionEnvironment env,
            RegressionPath path,
            string epl,
            int numStatements)
        {
            // test function returns lookup value and "Equals"
            for (int i = 0; i < numStatements; i++) {
                string text = "@Name('s" + i + "') " + epl.Replace("!NUM!", i.ToString());
                env.CompileDeploy(text, path).AddListener("s" + i);
            }

            env.Milestone(0);

            var loops = 1000;
            var delta = PerformanceObserver.TimeMillis(
                () => {
                    SupportStaticMethodLib.ResetCountInvoked();
                    for (int i = 0; i < loops; i++) {
                        env.SendEventBean(new SupportBean("E_" + i % numStatements, 0));
                        SupportListener listener = env.Listener("s" + i % numStatements);
                        Assert.IsTrue(listener.GetAndClearIsInvoked());
                    }
                });

            Assert.AreEqual(loops, SupportStaticMethodLib.CountInvoked);

            Assert.IsTrue(delta < 1000, "Delta is " + delta);
            env.UndeployAll();
        }
        private static void AssertList(
            SupportListener listener,
            params SupportBean[] events)
        {
            var @out = listener.AssertOneGetNewAndReset().Get("c0").UnwrapIntoArray <object>();

            EPAssertionUtil.AssertEqualsExactOrder(@out, events);
        }
Пример #7
0
        public static void AssertValuesArrayScalar(
            SupportListener listener,
            string field,
            params object[] expected)
        {
            var result = listener.AssertOneGetNew().Get(field);

            AssertValuesArrayScalar(result, expected);
        }
 public ReadRunnable(
     RegressionEnvironment env,
     SupportListener listenerZero,
     SupportListener listenerOne)
 {
     this.env = env;
     this.listenerZero = listenerZero;
     this.listenerOne = listenerOne;
 }
Пример #9
0
        private static SupportListener[] GetListeners(RegressionEnvironment env)
        {
            var listeners = new SupportListener[10];
            for (var i = 0; i < listeners.Length; i++) {
                listeners[i] = env.ListenerNew();
            }

            return listeners;
        }
Пример #10
0
            public void Run(RegressionEnvironment env)
            {
                env.AdvanceTime(0);

                string epl = "@Name('s0') select irstream * from SupportBean#time(10)";

                env.CompileDeploy(epl).AddListener("s0");
                string deploymentId = env.DeploymentId("s0");

                env.SendEventBean(new SupportBean("E1", 1));

                env.AdvanceTime(2000);
                env.SendEventBean(new SupportBean("E2", 2));

                env.AdvanceTime(4000);
                env.SendEventBean(new SupportBean("E3", 3));
                env.Listener("s0").Reset();

                env.Milestone(0);

                env.StageService.GetStage("P1");
                StageIt(env, "P1", deploymentId);

                env.Milestone(1);

                env.AdvanceTimeStage("P1", 9999);
                Assert.IsFalse(env.ListenerStage("P1", "s0").GetAndClearIsInvoked());
                env.AdvanceTimeStage("P1", 10000);
                Assert.AreEqual("E1", env.ListenerStage("P1", "s0").AssertOneGetOldAndReset().Get("TheString"));

                env.Milestone(2);

                env.AdvanceTimeStage("P1", 11999);
                Assert.IsFalse(env.ListenerStage("P1", "s0").GetAndClearIsInvoked());
                env.AdvanceTimeStage("P1", 12000);
                Assert.AreEqual("E2", env.ListenerStage("P1", "s0").AssertOneGetOldAndReset().Get("TheString"));

                env.AdvanceTime(12000);
                Assert.IsFalse(env.ListenerStage("P1", "s0").GetAndClearIsInvoked());

                UnstageIt(env, "P1", deploymentId);

                env.Milestone(3);

                env.AdvanceTime(13999);
                env.AdvanceTimeStage("P1", 14000);
                SupportListener listener = env.Listener("s0");

                Assert.IsFalse(listener.GetAndClearIsInvoked());
                env.AdvanceTime(14000);
                Assert.AreEqual("E3", env.Listener("s0").AssertOneGetOldAndReset().Get("TheString"));

                env.UndeployAll();
            }
Пример #11
0
 internal static void SendAssertEventRectangle(
     RegressionEnvironment env,
     SupportListener listener,
     double x,
     double y,
     double width,
     double height,
     bool expected)
 {
     env.SendEventBean(new SupportSpatialEventRectangle(null, x, y, width, height));
     Assert.AreEqual(expected, env.Listener("s0").IsInvokedAndReset());
 }
Пример #12
0
 public static void SendAssert(
     RegressionEnvironment env,
     SupportListener listener,
     double px,
     double py,
     double x,
     double y,
     double width,
     double height,
     bool expected)
 {
     SendAssertWNull(env, listener, px, py, x, y, width, height, expected);
 }
        private static void AssertReceived(
            SupportListener listener,
            object[][] values)
        {
            var @event = listener.AssertOneGetNewAndReset();
            var events = (EventBean[]) @event.GetFragment("detail");
            if (values == null) {
                Assert.IsNull(events);
                return;
            }

            EPAssertionUtil.AssertPropsPerRowAnyOrder(events, new [] { "c0", "c1" }, values);
        }
Пример #14
0
 private static void AssertEventsReceived(
     SupportListener updateListener,
     int[] expectedIds)
 {
     Assert.AreEqual(1, updateListener.LastNewData.Length);
     Assert.IsNull(updateListener.LastOldData);
     var theEvent = updateListener.LastNewData[0];
     Assert.AreEqual(expectedIds[0], ((SupportBean_S0) theEvent.Get("S0")).Id);
     Assert.AreEqual(expectedIds[1], ((SupportBean_S1) theEvent.Get("S1")).Id);
     Assert.AreEqual(expectedIds[2], ((SupportBean_S2) theEvent.Get("S2")).Id);
     Assert.AreEqual(expectedIds[3], ((SupportBean_S3) theEvent.Get("S3")).Id);
     Assert.AreEqual(expectedIds[4], ((SupportBean_S4) theEvent.Get("S4")).Id);
 }
Пример #15
0
 public static void AssertRectanglesSingleValue(
     RegressionEnvironment env,
     SupportListener listener,
     IList<BoundingBox> rectangles,
     params string[] matches)
 {
     for (var i = 0; i < rectangles.Count; i++) {
         var box = rectangles[i];
         SendRectangle(env, "R" + box, box.MinX, box.MinY, box.MaxX - box.MinX, box.MaxY - box.MinY);
         var c0 = listener.AssertOneGetNewAndReset().Get("c0").ToString();
         Assert.AreEqual(matches[i], c0, "for box " + i);
     }
 }
Пример #16
0
 public static void SendAssertWNull(
     RegressionEnvironment env,
     SupportListener listener,
     double? px,
     double? py,
     double? x,
     double? y,
     double? width,
     double? height,
     bool? expected)
 {
     env.SendEventBean(new SupportEventRectangleWithOffset("E", px, py, x, y, width, height));
     Assert.AreEqual(expected, listener.AssertOneGetNewAndReset().Get("c0"));
 }
Пример #17
0
        private static void TryAssertionSnapshotColumn(
            RegressionEnvironment env,
            SupportListener listener,
            EPStatement stmt,
            string[] fields)
        {
            env.SendEventBean(new SupportBean("E1", 1));
            env.SendEventBean(new SupportBean("E1", 1));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}});
            Assert.IsFalse(env.Listener("s0").IsInvoked);

            env.SendEventBean(new SupportBean("E2", 2));
            EPAssertionUtil.AssertPropsPerRow(
                env.Listener("s0").LastNewData,
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 2}});
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 2}});

            env.SendEventBean(new SupportBean("E2", 2));
            env.SendEventBean(new SupportBean("E1", 1));
            env.SendEventBean(new SupportBean("E2", 2));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 2}});
            EPAssertionUtil.AssertPropsPerRow(
                env.Listener("s0").LastNewData,
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 2}});
            env.Listener("s0").Reset();

            env.SendEventBean(new SupportBean("E3", 3));
            env.SendEventBean(new SupportBean("E1", 1));
            env.SendEventBean(new SupportBean("E2", 2));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 2}, new object[] {"E3", 3}});
            EPAssertionUtil.AssertPropsPerRow(
                env.Listener("s0").LastNewData,
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 2}, new object[] {"E3", 3}});
            env.Listener("s0").Reset();
        }
        private static void AssertPrio(
            SupportListener listener,
            string theString,
            int[] prioValues)
        {
            var events = listener.NewDataListFlattened;
            Assert.AreEqual(prioValues.Length, events.Length);
            for (var i = 0; i < prioValues.Length; i++) {
                Assert.AreEqual(prioValues[i], events[i].Get("prio"));
                if (theString != null) {
                    Assert.AreEqual(theString, events[i].Get("TheString"));
                }
            }

            listener.Reset();
        }
Пример #19
0
            public void Run(RegressionEnvironment env)
            {
                RegressionPath path = new RegressionPath();

                string epl = "select * from SupportBean(TheString regexp '.*,.*,.*,.*,.*,13,.*,.*,.*,.*,.*,.*')";
                int count = 5;
                DeployMultiple(count, path, epl, env);

                env.Milestone(0);

                SupportListener[] listeners = new SupportListener[count];
                for (int i = 0; i < count; i++) {
                    listeners[i] = env.Listener("s" + i);
                }

                long delta = PerformanceObserver.TimeMillis(
                    () => {
                        int loops = 1000;
                        for (int i = 0; i < loops; i++) {
                            bool match = i % 100 == 0;
                            string value = match
                                ? "42,12,13,12,32,13,14,43,56,31,78,10"
                                : // match
                                "42,12,13,12,32,14,13,43,56,31,78,10"; // no-match

                            env.SendEventBean(new SupportBean(value, 0));
                            if (match) {
                                foreach (SupportListener listener in listeners) {
                                    listener.AssertOneGetNewAndReset();
                                }
                            }
                            else {
                                foreach (SupportListener listener in listeners) {
                                    Assert.IsFalse(listener.IsInvoked);
                                }
                            }
                        }
                    });

#if DEBUG
                Assert.That(delta, Is.LessThan(2000), "Delta is " + delta); // ~7 seconds without optimization
#else
				Assert.That(delta, Is.LessThan(1000), "Delta is " + delta); // ~7 seconds without optimization
#endif

                env.UndeployAll();
            }
Пример #20
0
 private static void AssertReceived(
     SupportListener listenerStmtOne,
     SupportBean[] beans,
     int[] indexesAll,
     int[] indexesWhere,
     string[] mapKeys,
     object[] mapValues)
 {
     var received = listenerStmtOne.AssertOneGetNewAndReset();
     EPAssertionUtil.AssertEqualsExactOrder(
         SupportBean.GetBeansPerIndex(beans, indexesAll),
         (object[]) received.Get("c0"));
     EPAssertionUtil.AssertEqualsExactOrder(
         SupportBean.GetBeansPerIndex(beans, indexesWhere),
         (ICollection<object>) received.Get("c1"));
     EPAssertionUtil.AssertPropsMap((IDictionary<object, object>) received.Get("c2"), mapKeys, mapValues);
 }
Пример #21
0
        public static void SendAssertSpatialAABB(
            RegressionEnvironment env,
            SupportListener listener,
            int numX,
            int numY,
            long deltaMSec)
        {
            var start = PerformanceObserver.MilliTime;
            for (var x = 0; x < numX; x++) {
                for (var y = 0; y < numY; y++) {
                    env.SendEventBean(new SupportSpatialAABB("", x, y, 0.1, 0.1));
                    listener.AssertOneGetNewAndReset();
                }
            }

            var delta = PerformanceObserver.MilliTime - start;
            Assert.That(delta, Is.LessThan(deltaMSec), "Delta: " + delta);
        }
Пример #22
0
        private static void TryReuse(
            RegressionEnvironment env,
            string[] statements,
            AtomicLong milestone)
        {
            // create all statements
            for (var i = 0; i < statements.Length; i++) {
                env.CompileDeploy("@Name('s" + i + "')" + statements[i]).AddListener("s" + i);
            }

            env.Milestone(milestone.GetAndIncrement());

            var listeners = new SupportListener[statements.Length];
            for (var i = 0; i < statements.Length; i++) {
                listeners[i] = env.Listener("s" + i);
            }

            // send event, all should receive the event
            SendBean(env, "IntBoxed", 3);
            for (var i = 0; i < statements.Length; i++) {
                Assert.IsTrue(listeners[i].IsInvokedAndReset());
            }

            // stop first, then second, then third etc statement
            for (var toStop = 0; toStop < statements.Length; toStop++) {
                env.UndeployModuleContaining("s" + toStop);

                // send event, all remaining statement received it
                SendBean(env, "IntBoxed", 3);
                for (var i = 0; i <= toStop; i++) {
                    Assert.IsFalse(listeners[i].IsInvoked);
                }

                for (var i = toStop + 1; i < statements.Length; i++) {
                    Assert.IsTrue(listeners[i].IsInvokedAndReset());
                }
            }

            // now all statements are stopped, send event and verify no listener received
            SendBean(env, "IntBoxed", 3);
            for (var i = 0; i < statements.Length; i++) {
                Assert.IsFalse(listeners[i].IsInvoked);
            }
        }
Пример #23
0
        private static void RunAssertionSimple(
            RegressionEnvironment env,
            string epl)
        {
            env.CompileDeploy(epl).AddListener("s0");
            string deploymentId = env.DeploymentId("s0");

            SendEvent(env, null, "E1", 10);
            AssertTotal(env, null, 10);

            env.Milestone(0);

            env.StageService.GetStage("P1");
            StageIt(env, "P1", deploymentId);

            env.Milestone(1);

            Assert.IsNull(env.Deployment.GetDeployment(deploymentId));
            Assert.IsNotNull(env.StageService.GetExistingStage("P1").DeploymentService.GetDeployment(deploymentId));
            AssertEqualsAnyOrder(new string[] { deploymentId }, env.StageService.GetExistingStage("P1").DeploymentService.Deployments);
            SendEvent(env, null, "E3", 21);
            SendEvent(env, "P1", "E4", 22);
            AssertTotal(env, "P1", 10 + 22);

            env.Milestone(2);

            UnstageIt(env, "P1", deploymentId);

            env.Milestone(3);

            Assert.IsNotNull(env.Deployment.GetDeployment(deploymentId));
            Assert.IsNull(env.StageService.GetExistingStage("P1").DeploymentService.GetDeployment(deploymentId));
            SendEvent(env, null, "E5", 31);
            SendEvent(env, "P1", "E6", 32);
            AssertTotal(env, null, 10 + 22 + 31);
            SupportListener listener = env.Listener("s0");

            env.UndeployAll();

            SendEvent(env, null, "end", 99);
            Assert.IsFalse(listener.GetAndClearIsInvoked());
        }
Пример #24
0
        private static void TryAssertionSimpleColumn(
            RegressionEnvironment env,
            SupportListener listener,
            EPStatement stmt,
            string[] fields)
        {
            env.SendEventBean(new SupportBean("E1", 1));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}});
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                new object[] {"E1", 1});

            env.SendEventBean(new SupportBean("E1", 1));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}});
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                new object[] {"E1", 1});

            env.SendEventBean(new SupportBean("E2", 1));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 1}});
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                new object[] {"E2", 1});

            env.SendEventBean(new SupportBean("E1", 2));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 1}, new object[] {"E1", 2}});
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                new object[] {"E1", 2});

            env.SendEventBean(new SupportBean("E2", 2));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 1}, new object[] {"E1", 2}, new object[] {"E2", 2}});
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                new object[] {"E2", 2});

            env.SendEventBean(new SupportBean("E2", 2));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 1}, new object[] {"E1", 2}, new object[] {"E2", 2}});
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                new object[] {"E2", 2});

            env.SendEventBean(new SupportBean("E1", 1));
            EPAssertionUtil.AssertPropsPerRowAnyOrder(
                env.Statement("s0").GetEnumerator(),
                fields,
                new[] {new object[] {"E1", 1}, new object[] {"E2", 1}, new object[] {"E1", 2}, new object[] {"E2", 2}});
            EPAssertionUtil.AssertProps(
                env.Listener("s0").AssertOneGetNewAndReset(),
                fields,
                new object[] {"E1", 1});
        }
 public ReadRunnable(RegressionEnvironment env)
 {
     this.env = env;
     env.AddListener("out");
     listener = env.Listener("out");
 }
Пример #26
0
        public void Run(RegressionEnvironment env)
        {
            var milestone = new AtomicLong();
            var existingStatements = new bool[_theCase.Filters.Length];
            var startedStatements = new bool[_theCase.Filters.Length];
            var initialListeners = new SupportListener[_theCase.Filters.Length];

            // create statements
            for (var i = 0; i < _theCase.Filters.Length; i++) {
                var filter = _theCase.Filters[i];
                var stmtName = "s" + i;
                var epl = "@Name('" + stmtName + "') select * from SupportBean(" + filter + ")";
                env.CompileDeploy(epl).AddListener(stmtName);
                existingStatements[i] = true;
                startedStatements[i] = true;
                initialListeners[i] = env.Listener(stmtName);

                try {
                    AssertSendEvents(existingStatements, startedStatements, initialListeners, env, _theCase.Items);
                }
                catch (AssertionException ex) {
                    var message = "Failed after create stmt " + i + " and before milestone P" + milestone.Get();
                    log.Error(message, ex);
                    Assert.Fail(message, ex);
                }

                env.Milestone(milestone.GetAndIncrement());

                try {
                    AssertSendEvents(existingStatements, startedStatements, initialListeners, env, _theCase.Items);
                }
                catch (AssertionException ex) {
                    Assert.Fail("Failed after create stmt " + i + " and after milestone P" + milestone.Get(), ex);
                }
            }

            // stop statements
            for (var i = 0; i < _theCase.Filters.Length; i++) {
                var stmtName = "s" + i;
                env.UndeployModuleContaining(stmtName);
                startedStatements[i] = false;

                try {
                    AssertSendEvents(existingStatements, startedStatements, initialListeners, env, _theCase.Items);
                }
                catch (AssertionException ex) {
                    throw new AssertionException(
                        "Failed after stop stmt " + i + " and before milestone P" + milestone.Get(),
                        ex);
                }

                env.Milestone(milestone.Get());

                try {
                    AssertSendEvents(existingStatements, startedStatements, initialListeners, env, _theCase.Items);
                }
                catch (AssertionException ex) {
                    throw new EPException(
                        "Failed after stop stmt " + i + " and after milestone P" + milestone.Get(),
                        ex);
                }
                catch (Exception ex) {
                    throw new EPException(
                        "Failed after stop stmt " + i + " and after milestone P" + milestone.Get(),
                        ex);
                }

                milestone.GetAndIncrement();
            }

            // destroy statements
            env.UndeployAll();
        }