private void RunAssertionStmtJoin_OM(EPServiceProvider epService) { var model = new EPStatementObjectModel(); model.SelectClause = SelectClause.Create("symbol") .Add(Expressions.Median("price"), "myMedian") .Add(Expressions.MedianDistinct("price"), "myDistMedian") .Add(Expressions.Stddev("price"), "myStdev") .Add(Expressions.Avedev("price"), "myAvedev") .SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH); FromClause fromClause = FromClause.Create( FilterStream.Create(typeof(SupportBeanString).FullName, "one").AddView(View.Create("length", Expressions.Constant(100))), FilterStream.Create(typeof(SupportMarketDataBean).FullName, "two").AddView(View.Create("length", Expressions.Constant(5)))); model.FromClause = fromClause; model.WhereClause = Expressions.And().Add( Expressions.Or() .Add(Expressions.Eq("symbol", "DELL")) .Add(Expressions.Eq("symbol", "IBM")) .Add(Expressions.Eq("symbol", "GE")) ) .Add(Expressions.EqProperty("one.TheString", "two.symbol")); model.GroupByClause = GroupByClause.Create("symbol"); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(epService.Container, model); string epl = "select irstream symbol, " + "median(price) as myMedian, " + "median(distinct price) as myDistMedian, " + "stddev(price) as myStdev, " + "avedev(price) as myAvedev " + "from " + typeof(SupportBeanString).FullName + "#length(100) as one, " + typeof(SupportMarketDataBean).FullName + "#length(5) as two " + "where (symbol=\"DELL\" or symbol=\"IBM\" or symbol=\"GE\") " + "and one.TheString=two.symbol " + "group by symbol"; Assert.AreEqual(epl, model.ToEPL()); EPStatement stmt = epService.EPAdministrator.Create(model); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; epService.EPRuntime.SendEvent(new SupportBeanString(SYMBOL_DELL)); epService.EPRuntime.SendEvent(new SupportBeanString(SYMBOL_IBM)); epService.EPRuntime.SendEvent(new SupportBeanString("AAA")); TryAssertionStmt(epService, listener, stmt); stmt.Dispose(); }
public void Run(RegressionEnvironment env) { var model = new EPStatementObjectModel(); model.SelectClause = SelectClause.Create("Symbol") .Add(Expressions.Median("Price"), "myMedian") .Add(Expressions.MedianDistinct("Price"), "myDistMedian") .Add(Expressions.Stddev("Price"), "myStdev") .Add(Expressions.Avedev("Price"), "myAvedev") .SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH); var fromClause = FromClause.Create( FilterStream .Create(typeof(SupportBeanString).Name, "one") .AddView(View.Create("length", Expressions.Constant(100))), FilterStream .Create(typeof(SupportMarketDataBean).Name, "two") .AddView(View.Create("length", Expressions.Constant(5)))); model.FromClause = fromClause; model.WhereClause = Expressions.And() .Add( Expressions.Or() .Add(Expressions.Eq("Symbol", "DELL")) .Add(Expressions.Eq("Symbol", "IBM")) .Add(Expressions.Eq("Symbol", "GE")) ) .Add(Expressions.EqProperty("one.TheString", "two.Symbol")); model.GroupByClause = GroupByClause.Create("Symbol"); model = env.CopyMayFail(model); var epl = "select irstream Symbol, " + "median(Price) as myMedian, " + "median(distinct Price) as myDistMedian, " + "stddev(Price) as myStdev, " + "avedev(Price) as myAvedev " + "from SupportBeanString#length(100) as one, " + "SupportMarketDataBean#length(5) as two " + "where (Symbol=\"DELL\" or Symbol=\"IBM\" or Symbol=\"GE\") " + "and one.TheString=two.Symbol " + "group by Symbol"; Assert.AreEqual(epl, model.ToEPL()); model.Annotations = Collections.SingletonList(AnnotationPart.NameAnnotation("s0")); env.CompileDeploy(model).AddListener("s0"); env.SendEventBean(new SupportBeanString(SYMBOL_DELL)); env.SendEventBean(new SupportBeanString(SYMBOL_IBM)); env.SendEventBean(new SupportBeanString("AAA")); TryAssertionStmt(env, new AtomicLong()); env.UndeployAll(); }
public void TestSumJoin_OM() { var model = new EPStatementObjectModel(); model.SelectClause = SelectClause.Create("Symbol") .Add(Expressions.Median("Price"), "myMedian") .Add(Expressions.MedianDistinct("Price"), "myDistMedian") .Add(Expressions.Stddev("Price"), "myStdev") .Add(Expressions.Avedev("Price"), "myAvedev") .SetStreamSelector(StreamSelector.RSTREAM_ISTREAM_BOTH); var fromClause = FromClause.Create( FilterStream.Create(typeof(SupportBeanString).FullName, "one").AddView(View.Create("length", Expressions.Constant(100))), FilterStream.Create(typeof(SupportMarketDataBean).FullName, "two").AddView(View.Create("length", Expressions.Constant(5)))); model.FromClause = fromClause; model.WhereClause = Expressions.And().Add( Expressions.Or() .Add(Expressions.Eq("Symbol", "DELL")) .Add(Expressions.Eq("Symbol", "IBM")) .Add(Expressions.Eq("Symbol", "GE")) ) .Add(Expressions.EqProperty("one.TheString", "two.Symbol")); model.GroupByClause = GroupByClause.Create("Symbol"); model = (EPStatementObjectModel)SerializableObjectCopier.Copy(model); var viewExpr = "select irstream Symbol, " + "median(Price) as myMedian, " + "median(distinct Price) as myDistMedian, " + "stddev(Price) as myStdev, " + "avedev(Price) as myAvedev " + "from " + typeof(SupportBeanString).FullName + "#length(100) as one, " + typeof(SupportMarketDataBean).FullName + "#length(5) as two " + "where (Symbol=\"DELL\" or Symbol=\"IBM\" or Symbol=\"GE\") " + "and one.TheString=two.Symbol " + "group by Symbol"; Assert.AreEqual(viewExpr, model.ToEPL()); var selectTestView = _epService.EPAdministrator.Create(model); selectTestView.AddListener(_testListener); _epService.EPRuntime.SendEvent(new SupportBeanString(SYMBOL_DELL)); _epService.EPRuntime.SendEvent(new SupportBeanString(SYMBOL_IBM)); _epService.EPRuntime.SendEvent(new SupportBeanString("AAA")); RunAssertion(selectTestView); }