Ejemplo n.º 1
0
            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);
            }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
            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);
            }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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);
        }