public static void SendAddPoint( RegressionEnvironment env, IList<SupportSpatialPoint> points, string id, double x, double y) { var point = new SupportSpatialPoint(id, x, y); points.Add(point); env.SendEventBean(point); }
private void RunAssertionEventIndexNWFireAndForgetPerformance(EPServiceProvider epService) { var epl = "create window MyPointWindow#keepall as (id string, px double, py double);\n" + "insert into MyPointWindow select id, px, py from SupportSpatialPoint;\n" + "create index Idx on MyPointWindow( (px, py) pointregionquadtree(0, 0, 100, 100));\n"; var deploymentId = epService.EPAdministrator.DeploymentAdmin.ParseDeploy(epl).DeploymentId; var random = new Random(); var points = new List <SupportSpatialPoint>(); for (var i = 0; i < 10000; i++) { var px = random.NextDouble() * 100; var py = random.NextDouble() * 100; var point = new SupportSpatialPoint("P" + Convert.ToString(i), px, py); epService.EPRuntime.SendEvent(point); points.Add(point); // Comment-me-in: Log.Info("Point P" + i + " " + px + " " + py); } var prepared = epService.EPRuntime.PrepareQueryWithParameters("select * from MyPointWindow where point(px,py).inside(rectangle(?,?,?,?))"); var start = PerformanceObserver.MilliTime; var fields = "id".Split(','); for (var i = 0; i < 500; i++) { var x = random.NextDouble() * 100; var y = random.NextDouble() * 100; // Comment-me-in: Log.Info("Query " + x + " " + y + " " + width + " " + height); prepared.SetObject(1, x); prepared.SetObject(2, y); prepared.SetObject(3, 5); prepared.SetObject(4, 5); var events = epService.EPRuntime.ExecuteQuery(prepared).Array; var expected = SupportSpatialUtil.GetExpected(points, x, y, 5, 5); EPAssertionUtil.AssertPropsPerRowAnyOrder(events, fields, expected); } var delta = PerformanceObserver.MilliTime - start; Assert.IsTrue(delta < 1000, "delta=" + delta); epService.EPAdministrator.DeploymentAdmin.Undeploy(deploymentId); }