Esempio n. 1
0
        public void TestBogus()
        {
            var q = new QueriableDummyNoExe <dummyntup>();
            var a = from evt in q
                    select new
            {
                Jets   = evt.valC1D,
                Tracks = evt.valC1D
            };

            var b = from evt in a
                    select new
            {
                MatchedJets = from j in evt.Jets
                              where evt.Tracks.Where(t => Math.Abs(t - j) < 0.1).Any()
                              select new
                {
                    Jet   = j,
                    Track = (from t in evt.Tracks orderby Math.Abs(j - t) ascending select t).First()
                }
            };

            var r1 = b.Where(evt => evt.MatchedJets.Count() > 1).Count();
            var qm = DummyQueryExectuor.LastQueryModel;

            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.IsNotNull(sf);
            Assert.AreEqual(3, sf.Count(), "# of qm functions");
            var f = sf.First();

            Assert.AreEqual(1, f.Arguments.Count(), "# of arguments");
        }
Esempio n. 2
0
        public void CatchArgsInOrderBy()
        {
            // This test produces somethign caught in the wild (caused a compile error).
            // The bug has to do with a combination of the First predicate and the CPPCode statement conspiring
            // to cause the problem, unfortunately. So, the test is here.
            var q = new QueriableDummyNoExe <LINQToTTreeLib.ResultOperators.ROFirstLastTest.ntup3>();

            var resultA = from evt in q
                          select new
            {
                r1 = evt.run1.Where(r => r > 3).Select(r => LINQToTTreeLib.ResultOperators.ROFirstLastTest.DoItClass.DoIt(r)),
                r2 = evt.run2.Where(r => r > 4).Select(r => LINQToTTreeLib.ResultOperators.ROFirstLastTest.DoItClass.DoIt(r))
            };
            var resultB = from e in resultA
                          select new
            {
                joinedR = from r1 in e.r1
                          select(from r2 in e.r2
                                 orderby r1 - r2 ascending
                                 select r2).First()
            };
            var result = from e in resultB
                         from r in e.joinedR
                         select r;
            var c = result.Sum();

            var qm = DummyQueryExectuor.LastQueryModel;
            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.AreEqual(1, sf.Where(f => !f.IsSequence).Count(), "# of non-functions");
            Assert.AreEqual(3, sf.Where(f => f.IsSequence).Count(), "# of sequence functions");
        }
Esempio n. 3
0
        public void NoObjectFunctionReturns()
        {
            var q = new QueriableDummyNoExe <LINQToTTreeLib.ResultOperators.ROFirstLastTest.ntupWithObjects>();

            // Create a dual object. Avoid anonymous objects just for the sake of it.
            var matched = from evt in q
                          select new LINQToTTreeLib.ResultOperators.ROFirstLastTest.TestTranslatedNestedCompareAndSortHolderEvent()
            {
                matches = from j in evt.jets
                          orderby j.v3 ascending
                          select new LINQToTTreeLib.ResultOperators.ROFirstLastTest.TestTranslatedNestedCompareAndSortHolder()
                {
                    jet = j
                }
            };

            // Filter on the first jet in the sequence.
            var goodmatched = from evt in matched
                              where evt.matches.First().jet.v3 > 0
                              select evt;

            var r = goodmatched.Count();

            var qm = DummyQueryExectuor.LastQueryModel;
            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.AreEqual(0, sf.Where(f => !f.IsSequence).Count(), "# of functions");
            Assert.AreEqual(0, sf.Where(f => f.IsSequence).Count(), "# of functions"); // it returns an object...
        }
Esempio n. 4
0
        public void TestAdditonalFromClause()
        {
            var q = new QueriableDummyNoExe <dummyntup>();
            var a = from evt in q
                    select new
            {
                Jets   = evt.valC1D,
                Tracks = evt.valC1D
            };

            var b = from evt in a
                    select new
            {
                MatchedJets = from j in evt.Jets
                              where evt.Tracks.Where(t => Math.Abs(t - j) < 0.1).Any()
                              select new
                {
                    Jet   = j,
                    Track = (from t in evt.Tracks orderby Math.Abs(j - t) ascending select t).First()
                }
            };

            var c = from evt in b
                    from j in evt.MatchedJets
                    where j.Jet > 30
                    select j.Jet + j.Track;
            var r1 = c.Count();
            var qm = DummyQueryExectuor.LastQueryModel;

            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.IsNotNull(sf);
            Assert.AreEqual(2, sf.Count(), "# of qm functions");
        }
Esempio n. 5
0
        public void TestNoneQMFunc()
        {
            var q  = new QueriableDummyNoExe <ntup>();
            var r1 = q.Count();
            var qm = DummyQueryExectuor.LastQueryModel;

            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.IsNotNull(sf);
            Assert.AreEqual(0, sf.Count(), "# of qm functions");
        }
Esempio n. 6
0
        public void TestDuplicateQM()
        {
            var q = new QueriableDummyNoExe <dummyntup>();
            var a = from evt in q.Where(e => e.valC1D.First() > 0)
                    select evt.valC1D.First();

            var r1 = a.Sum();
            var qm = DummyQueryExectuor.LastQueryModel;
            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.IsNotNull(sf);
            Assert.AreEqual(1, sf.Count(), "# of qm functions");
        }
Esempio n. 7
0
        public void TestDoubleFrom()
        {
            var q = new QueriableDummyNoExe <dummyntup>();
            var a = from evt in q
                    from i in evt.valC1D
                    select i;
            var r1 = a.Count();
            var qm = DummyQueryExectuor.LastQueryModel;

            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.IsNotNull(sf);
            Assert.AreEqual(0, sf.Count(), "# of qm functions");
        }
Esempio n. 8
0
        public void TestSingleQMFuncInWhere()
        {
            var q = new QueriableDummyNoExe <dummyntup>();
            var a = from evt in q
                    where evt.valC1D.Where(i => i > 5).Count() > 5
                    select evt;
            var r1 = a.Count();
            var qm = DummyQueryExectuor.LastQueryModel;

            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.IsNotNull(sf);
            Assert.AreEqual(1, sf.Count(), "# of qm functions");
            var f = sf.First();

            Assert.AreEqual(0, f.Arguments.Count(), "# of arguments");
        }
Esempio n. 9
0
        public void TestDoubleFromWithFuncWithArgDoubleRef()
        {
            var q = new QueriableDummyNoExe <dummyntup>();
            var a = from evt in q
                    from i in evt.valC1D
                    where evt.valC1D.Where(j => i > j && j >= i).Count() > 5
                    select i;
            var r1 = a.Count();
            var qm = DummyQueryExectuor.LastQueryModel;

            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.IsNotNull(sf);
            Assert.AreEqual(1, sf.Count(), "# of qm functions");
            var f = sf.First();

            Assert.AreEqual(1, f.Arguments.Count(), "# of arguments");
        }
Esempio n. 10
0
        public void TestGroupByFunction()
        {
            var q = new QueriableDummyNoExe <LINQToTTreeLib.QueryVisitorTest.NtupWithObjectsDest>();

            var r = from evt in q
                    select from v in evt.var1 group v by v;

            var cnt = from evt in r
                      from grp in evt
                      where grp.Key == 2 && grp.Count() > 5
                      select grp.Key;

            var final = cnt.Count();

            var qm = DummyQueryExectuor.LastQueryModel;

            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.AreEqual(1, sf.Count(), "# of qm functions");
        }
Esempio n. 11
0
        public void TestQMNoFunctionWithSelect()
        {
            var q   = new QueriableDummyNoExe <dummyntup>();
            var evt = from e in q
                      select new
            {
                Jets   = e.valC1D.Where(i => i > 1),
                Tracks = e.valC1D.Where(i => i > 1)
            };
            var r = from e in evt
                    from t in e.Tracks
                    from j in e.Jets
                    where t != j
                    select t;

            var result = r.Count();

            var query = DummyQueryExectuor.LastQueryModel;
            var sf    = QMFuncFinder.FindQMFunctions(query);

            Assert.AreEqual(1, sf.Count(), "# of functions");
            Assert.IsTrue(sf.First().IsSequence, "is sequence");
        }
Esempio n. 12
0
        public void TestAnonymousObjectSingleResult()
        {
            var q = new QueriableDummyNoExe <dummyntup>();
            var a = from evt in q
                    select new
            {
                Jets   = evt.valC1D,
                Tracks = evt.valC1D
            };

            var b = from evt in a
                    select new
            {
                MatchedJets = from j in evt.Jets
                              where evt.Tracks.Where(t => Math.Abs(t - j) < 0.1).Any()
                              select new
                {
                    Jet   = j,
                    Track = (from t in evt.Tracks orderby Math.Abs(j - t) ascending select t).First()
                }
            };

            var c = from evt in b
                    select(from j in evt.MatchedJets orderby j.Track - j.Jet select j).First();

            var d = from evt in c
                    select evt.Jet;

            var r1 = d.Sum();
            var qm = DummyQueryExectuor.LastQueryModel;

            var sf = QMFuncFinder.FindQMFunctions(qm);

            Assert.IsNotNull(sf);
            Assert.AreEqual(2, sf.Count(), "# of qm functions");
        }