private void RunAssertionProperty(EPServiceProvider epService) { // test fragment type - collection inside var eplFragment = "select Contained.allOf(x => x.p00 < 5) as allOfX from SupportBean_ST0_Container#keepall"; var stmtFragment = epService.EPAdministrator.CreateEPL(eplFragment); var listener = new SupportUpdateListener(); stmtFragment.Events += listener.Update; epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make3Value("ID1,KEY1,1")); Assert.AreEqual(true, listener.AssertOneGetNewAndReset().Get("allOfX")); epService.EPRuntime.SendEvent(SupportBean_ST0_Container.Make3Value("ID1,KEY1,10")); Assert.AreEqual(false, listener.AssertOneGetNewAndReset().Get("allOfX")); stmtFragment.Dispose(); // test array and iterable var fields = "val0,val1".Split(','); eplFragment = "select Intarray.sumof() as val0, " + "Intiterable.sumOf() as val1 " + " from SupportCollection#keepall"; stmtFragment = epService.EPAdministrator.CreateEPL(eplFragment); stmtFragment.Events += listener.Update; epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("5,6,7")); EPAssertionUtil.AssertProps( listener.AssertOneGetNewAndReset(), fields, new object[] {5 + 6 + 7, 5 + 6 + 7}); // test map event type with object-array prop epService.EPAdministrator.Configuration.AddEventType(typeof(BookDesc)); epService.EPAdministrator.CreateEPL("create schema MySchema (books BookDesc[])"); var stmt = epService.EPAdministrator.CreateEPL("select books.max(i => i.price) as mymax from MySchema"); stmt.Events += listener.Update; var @event = Collections.SingletonDataMap( "books", new[] {new BookDesc("1", "book1", "dave", 1.00, null)}); epService.EPRuntime.SendEvent(@event, "MySchema"); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), "mymax".Split(','), new object[] {1.0}); // test method invocation variations returning list/array of string and test UDF +property as well RunAssertionMethodInvoke(epService, "select e.TheList.anyOf(v => v = selector) as flag from MyEvent e"); epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction( "convertToArray", typeof(MyEvent), "ConvertToArray"); RunAssertionMethodInvoke( epService, "select convertToArray(theList).anyOf(v => v = selector) as flag from MyEvent e"); RunAssertionMethodInvoke(epService, "select TheArray.anyOf(v => v = selector) as flag from MyEvent e"); RunAssertionMethodInvoke(epService, "select e.TheArray.anyOf(v => v = selector) as flag from MyEvent e"); RunAssertionMethodInvoke( epService, "select e.TheList.anyOf(v => v = e.selector) as flag from pattern[every e=MyEvent]"); RunAssertionMethodInvoke( epService, "select e.NestedMyEvent.MyNestedList.anyOf(v => v = e.selector) as flag from pattern[every e=MyEvent]"); RunAssertionMethodInvoke( epService, "select " + TypeHelper.MaskTypeName<MyEvent>() + ".ConvertToArray(TheList).anyOf(v => v = selector) as flag from MyEvent e"); stmt.Dispose(); }
private static void SendAssert( RegressionEnvironment env, int?expected, string csv) { env.SendEventBean(SupportCollection.MakeNumeric(csv)); EPAssertionUtil.AssertProps(env.Listener("s0").AssertOneGetNewAndReset(), "c0".SplitCsv(), new object[] { expected }); }
private void SendAssert( RegressionEnvironment env, string[] fields, double?expected, string intcsv) { env.SendEventBean(SupportCollection.MakeNumeric(intcsv)); EPAssertionUtil.AssertProps(env.Listener("s0").AssertOneGetNewAndReset(), fields, new object[] { expected }); }
public void TestSumOfScalar() { String[] fields = "val0,val1".Split(','); String eplFragment = "select " + "Intvals.sumOf() as val0, " + "Bdvals.sumOf() as val1 " + "from SupportCollection"; EPStatement stmtFragment = _epService.EPAdministrator.CreateEPL(eplFragment); stmtFragment.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] { typeof(int?), typeof(decimal?) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("1,4,5")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { 1 + 4 + 5, 1m + 4m + 5m }); _epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("3,4")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { 3 + 4, 3m + 4m }); _epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("3")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { 3, 3m }); _epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { null, null }); _epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric(null)); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fields, new Object[] { null, null }); stmtFragment.Dispose(); // test average with lambda _epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(TestEnumMinMax.MyService).FullName, "ExtractNum"); _epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractDecimal", typeof(TestEnumMinMax.MyService).FullName, "ExtractDecimal"); // lambda with string-array input String[] fieldsLambda = "val0,val1".SplitCsv(); String eplLambda = "select " + "Strvals.sumOf(v => extractNum(v)) as val0, " + "Strvals.sumOf(v => extractDecimal(v)) as val1 " + "from SupportCollection"; EPStatement stmtLambda = _epService.EPAdministrator.CreateEPL(eplLambda); stmtLambda.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmtLambda.EventType, fieldsLambda, new [] { typeof(int?), typeof(decimal?) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { 2 + 1 + 5 + 4, new decimal(2 + 1 + 5 + 4) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { 1, new decimal(1) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString(null)); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { null, null }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("")); EPAssertionUtil.AssertProps(_listener.AssertOneGetNewAndReset(), fieldsLambda, new Object[] { null, null }); }
private void RunAssertionAverageScalar(EPServiceProvider epService) { var fields = "val0,val1".Split(','); var eplFragment = "select " + "Intvals.average() as val0," + "Bdvals.average() as val1 " + "from SupportCollection"; var stmtFragment = epService.EPAdministrator.CreateEPL(eplFragment); var listener = new SupportUpdateListener(); stmtFragment.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] { typeof(double?), typeof(decimal?) }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("1,2,3")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 2d, 2m }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("1,null,3")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 2d, 2m }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("4")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 4d, 4m }); stmtFragment.Dispose(); // test average with lambda epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(ExecEnumMinMax.MyService), "ExtractNum"); epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractDecimal", typeof(ExecEnumMinMax.MyService), "ExtractDecimal"); var fieldsLambda = "val0,val1".Split(','); var eplLambda = "select " + "Strvals.average(v => extractNum(v)) as val0, " + "Strvals.average(v => extractDecimal(v)) as val1 " + "from SupportCollection"; var stmtLambda = epService.EPAdministrator.CreateEPL(eplLambda); stmtLambda.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmtLambda.EventType, fieldsLambda, new Type[] { typeof(double?), typeof(decimal?) }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { (2 + 1 + 5 + 4) / 4d, (decimal)((2 + 1 + 5 + 4) / 4d) }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { 1d, 1m }); epService.EPRuntime.SendEvent(SupportCollection.MakeString(null)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { null, null }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { null, null }); stmtLambda.Dispose(); }
public void Run(RegressionEnvironment env) { var fields = "c0,c1".SplitCsv(); var builder = new SupportEvalBuilder("SupportCollection"); builder.WithExpression(fields[0], "Intvals.sumOf()"); builder.WithExpression(fields[1], "Bdvals.sumOf()"); builder.WithStatementConsumer(stmt => AssertTypes(stmt.EventType, fields, new[] { typeof(int?), typeof(decimal?) })); builder.WithAssertion(SupportCollection.MakeNumeric("1,4,5")).Expect(fields, 1 + 4 + 5, 1m + 4m + 5m); builder.WithAssertion(SupportCollection.MakeNumeric("3,4")).Expect(fields, 3 + 4, 3m + 4m); builder.WithAssertion(SupportCollection.MakeNumeric("3")).Expect(fields, 3, 3m); builder.WithAssertion(SupportCollection.MakeNumeric("")).Expect(fields, null, null); builder.WithAssertion(SupportCollection.MakeNumeric(null)).Expect(fields, null, null); builder.Run(env); }
public void Run(RegressionEnvironment env) { var fields = "c0,c1".SplitCsv(); var builder = new SupportEvalBuilder("SupportCollection"); builder.WithExpression(fields[0], "Intvals.average()"); builder.WithExpression(fields[1], "Bdvals.average()"); builder.WithStatementConsumer(stmt => AssertTypes(env.Statement("s0").EventType, fields, new[] { typeof(double?), typeof(decimal?) })); builder.WithAssertion(SupportCollection.MakeNumeric("1,2,3")).Expect(fields, 2d, 2m); builder.WithAssertion(SupportCollection.MakeNumeric("1,null,3")).Expect(fields, 2d, 2m); builder.WithAssertion(SupportCollection.MakeNumeric("4")).Expect(fields, 4d, 4m); builder.Run(env); }
private void RunAssertionSumOfScalar(EPServiceProvider epService) { string[] fields = "val0,val1".Split(','); string eplFragment = "select " + "Intvals.sumOf() as val0, " + "Bdvals.sumOf() as val1 " + "from SupportCollection"; EPStatement stmtFragment = epService.EPAdministrator.CreateEPL(eplFragment); var listener = new SupportUpdateListener(); stmtFragment.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] { typeof(int?), typeof(decimal?) }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("1,4,5")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 1 + 4 + 5, 1m + 4m + 5m }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("3,4")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 3 + 4, 3m + 4m }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("3")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { 3, 3m }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric("")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { null, null }); epService.EPRuntime.SendEvent(SupportCollection.MakeNumeric(null)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fields, new object[] { null, null }); stmtFragment.Dispose(); // test average with lambda epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(ExecEnumMinMax.MyService), "ExtractNum"); epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractDecimal", typeof(ExecEnumMinMax.MyService), "ExtractDecimal"); // lambda with string-array input string[] fieldsLambda = "val0,val1".Split(','); string eplLambda = "select " + "Strvals.sumOf(v => extractNum(v)) as val0, " + "Strvals.sumOf(v => extractDecimal(v)) as val1 " + "from SupportCollection"; EPStatement stmtLambda = epService.EPAdministrator.CreateEPL(eplLambda); stmtLambda.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmtLambda.EventType, fieldsLambda, new Type[] { typeof(int?), typeof(decimal?) }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { 2 + 1 + 5 + 4, 2m + 1m + 5m + 4m }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { 1, 1m }); epService.EPRuntime.SendEvent(SupportCollection.MakeString(null)); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { null, null }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("")); EPAssertionUtil.AssertProps(listener.AssertOneGetNewAndReset(), fieldsLambda, new object[] { null, null }); stmtLambda.Dispose(); }