public void Run(RegressionEnvironment env) { string[] fields = "c0,c1,c2,c3,c4,c5".SplitCsv(); SupportEvalBuilder builder = new SupportEvalBuilder("SupportCollection"); builder.WithExpression(fields[0], "Strvals.orderBy(v => extractNum(v))"); builder.WithExpression(fields[1], "Strvals.orderByDesc(v => extractNum(v))"); builder.WithExpression(fields[2], "Strvals.orderBy( (v, i) => case when i <= 2 then extractNum(v) else i-10 end)"); builder.WithExpression(fields[3], "Strvals.orderByDesc( (v, i) => case when i <= 2 then extractNum(v) else i-10 end)"); builder.WithExpression(fields[4], "Strvals.orderBy( (v, i, s) => case when s <= 2 then extractNum(v) else i-10 end)"); builder.WithExpression(fields[5], "Strvals.orderByDesc( (v, i, s) => case when s <= 2 then extractNum(v) else i-10 end)"); builder.WithStatementConsumer(stmt => AssertTypesAllSame(stmt.EventType, fields, typeof(ICollection <object>))); builder.WithAssertion(SupportCollection.MakeString("E2,E1,E5,E4")) .Verify("c0", val => AssertValuesArrayScalar(val, "E1", "E2", "E4", "E5")) .Verify("c1", val => AssertValuesArrayScalar(val, "E5", "E4", "E2", "E1")) .Verify("c2", val => AssertValuesArrayScalar(val, "E4", "E1", "E2", "E5")) .Verify("c3", val => AssertValuesArrayScalar(val, "E5", "E2", "E1", "E4")) .Verify("c4", val => AssertValuesArrayScalar(val, "E2", "E1", "E5", "E4")) .Verify("c5", val => AssertValuesArrayScalar(val, "E4", "E5", "E1", "E2")); builder.WithAssertion(SupportCollection.MakeString("E2,E1")) .Verify("c0", val => AssertValuesArrayScalar(val, "E1", "E2")) .Verify("c1", val => AssertValuesArrayScalar(val, "E2", "E1")) .Verify("c2", val => AssertValuesArrayScalar(val, "E1", "E2")) .Verify("c3", val => AssertValuesArrayScalar(val, "E2", "E1")) .Verify("c4", val => AssertValuesArrayScalar(val, "E1", "E2")) .Verify("c5", val => AssertValuesArrayScalar(val, "E2", "E1")); LambdaAssertionUtil.AssertSingleAndEmptySupportColl(builder, fields); builder.Run(env); }
private void RunAssertionDistinctScalar(EPServiceProvider epService) { epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(ExecEnumMinMax.MyService), "ExtractNum"); string[] fields = "val0,val1".Split(','); string eplFragment = "select " + "Strvals.distinctOf() as val0, " + "Strvals.distinctOf(v => extractNum(v)) 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(ICollection <string>), typeof(ICollection <string>) }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E2,E2")); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val0", "E2", "E1"); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val1", "E2", "E1"); listener.Reset(); LambdaAssertionUtil.AssertSingleAndEmptySupportColl(epService, listener, fields); stmtFragment.Dispose(); }
public void Run(RegressionEnvironment env) { string[] fields = "c0".SplitCsv(); SupportEvalBuilder builder = new SupportEvalBuilder("SupportCollection"); builder.WithExpression(fields[0], "Strvals.reverse()"); builder.WithStatementConsumer(stmt => AssertTypesAllSame(stmt.EventType, fields, typeof(ICollection <object>))); builder.WithAssertion(SupportCollection.MakeString("E2,E1,E5,E4")) .Verify("c0", val => AssertValuesArrayScalar(val, "E4", "E5", "E1", "E2")); LambdaAssertionUtil.AssertSingleAndEmptySupportColl(builder, fields); builder.Run(env); }
public void TestReverseScalar() { String[] fields = "val0".Split(','); String eplFragment = "select " + "Strvals.reverse() as val0 " + "from SupportCollection"; EPStatement stmtFragment = _epService.EPAdministrator.CreateEPL(eplFragment); stmtFragment.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] { typeof(ICollection <string>) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4")); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val0", "E4", "E5", "E1", "E2"); _listener.Reset(); LambdaAssertionUtil.AssertSingleAndEmptySupportColl(_epService, _listener, fields); }
public void TestOrderByScalar() { String[] fields = "val0,val1".Split(','); String eplFragment = "select " + "Strvals.orderBy() as val0, " + "Strvals.OrderByDesc() as val1 " + "from SupportCollection"; EPStatement stmtFragment = _epService.EPAdministrator.CreateEPL(eplFragment); stmtFragment.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmtFragment.EventType, fields, new Type[] { typeof(ICollection <string>), typeof(ICollection <string>) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4")); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val0", "E1", "E2", "E4", "E5"); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val1", "E5", "E4", "E2", "E1"); _listener.Reset(); LambdaAssertionUtil.AssertSingleAndEmptySupportColl(_epService, _listener, fields); stmtFragment.Dispose(); // test scalar-coll with lambda _epService.EPAdministrator.Configuration.AddPlugInSingleRowFunction("extractNum", typeof(TestEnumMinMax.MyService).FullName, "ExtractNum"); String eplLambda = "select " + "Strvals.orderBy(v => extractNum(v)) as val0, " + "Strvals.orderByDesc(v => extractNum(v)) as val1 " + "from SupportCollection"; EPStatement stmtLambda = _epService.EPAdministrator.CreateEPL(eplLambda); stmtLambda.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmtLambda.EventType, fields, new [] { typeof(ICollection <string>), typeof(ICollection <string>) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E2,E1,E5,E4")); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val0", "E1", "E2", "E4", "E5"); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val1", "E5", "E4", "E2", "E1"); _listener.Reset(); LambdaAssertionUtil.AssertSingleAndEmptySupportColl(_epService, _listener, fields); }
private void RunAssertionTakeScalar(EPServiceProvider epService) { string[] fields = "val0,val1,val2,val3".Split(','); string epl = "select " + "Strvals.take(2) as val0," + "Strvals.take(1) as val1," + "Strvals.takeLast(2) as val2," + "Strvals.takeLast(1) as val3" + " from SupportCollection"; EPStatement stmt = epService.EPAdministrator.CreateEPL(epl); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; LambdaAssertionUtil.AssertTypes(stmt.EventType, fields, new Type[] { typeof(ICollection <string>), typeof(ICollection <string>), typeof(ICollection <string>), typeof(ICollection <string>) }); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1,E2,E3")); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val0", "E1", "E2"); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val1", "E1"); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val2", "E2", "E3"); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val3", "E3"); listener.Reset(); epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1,E2")); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val0", "E1", "E2"); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val1", "E1"); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val2", "E1", "E2"); LambdaAssertionUtil.AssertValuesArrayScalar(listener, "val3", "E2"); listener.Reset(); LambdaAssertionUtil.AssertSingleAndEmptySupportColl(epService, listener, fields); stmt.Dispose(); }
public void TestTakeScalar() { String[] fields = "val0,val1,val2,val3".Split(','); String epl = "select " + "Strvals.Take(2) as val0," + "Strvals.Take(1) as val1," + "Strvals.TakeLast(2) as val2," + "Strvals.TakeLast(1) as val3" + " from SupportCollection"; EPStatement stmt = _epService.EPAdministrator.CreateEPL(epl); stmt.Events += _listener.Update; LambdaAssertionUtil.AssertTypes(stmt.EventType, fields, new Type[] { typeof(ICollection <string>), typeof(ICollection <string>), typeof(ICollection <string>), typeof(ICollection <string>) }); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1,E2,E3")); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val0", "E1", "E2"); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val1", "E1"); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val2", "E2", "E3"); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val3", "E3"); _listener.Reset(); _epService.EPRuntime.SendEvent(SupportCollection.MakeString("E1,E2")); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val0", "E1", "E2"); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val1", "E1"); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val2", "E1", "E2"); LambdaAssertionUtil.AssertValuesArrayScalar(_listener, "val3", "E2"); _listener.Reset(); LambdaAssertionUtil.AssertSingleAndEmptySupportColl(_epService, _listener, fields); }