public void SelectForJetsAndTake() { // A query that should come back with 10 items. var q = new QueriableDummy <TestNtupeArr>(); var dude = q.SelectMany(e => e.myvectorofint).Take(10).Count(); var query = DummyQueryExectuor.LastQueryModel; Assert.IsTrue(query.HasStatefulOperator()); }
public void TestTakeSkipLevelBurreidWith2Tests() { var q = new QueriableDummy <dummyntup>(); var c = q.SelectMany(x => x.valC1D).Where(x => x > 10).Where(x => x < 20).Take(5).Count(); Assert.IsNotNull(DummyQueryExectuor.FinalResult, "Expecting some code to have been generated!"); var res = DummyQueryExectuor.FinalResult; res.DumpCodeToConsole(); Assert.AreEqual(1, res.DumpCode().Where(l => l.Contains("static int")).Count()); }
public void QMWith2ConcatsAndTwoEarlyTakesAndPostLoopTests() { var q1 = new QueriableDummy <dummyntup>(); var q2 = new QueriableDummy <dummyntup>(); var s1 = q1.SelectMany(r => r.valC1D).Where(r => r > 10).Where(r => Math.Abs(r) < 200).Take(500); var s2 = q2.SelectMany(r => r.valC1D).Where(r => r > 20).Where(r => Math.Abs(r) < 200).Take(300); try { var r1 = s1.Concat(s2).Count(); } catch (InvalidOperationException e) when(e.Message.Contains("can't translate")) { } var qm = DummyQueryExectuor.LastQueryModel; var qmList = ConcatSplitterQueryVisitor.Split(qm) .DumpToConsole(); Assert.AreEqual(2, qmList.Length); CheckForQuery(() => q1.SelectMany(r => r.valC1D).Where(r => r > 10).Where(r => Math.Abs(r) < 200).Take(500).Count(), qmList, 1, useDummy: true); CheckForQuery(() => q2.SelectMany(r => r.valC1D).Where(r => r > 20).Where(r => Math.Abs(r) < 200).Take(300).Count(), qmList, 1, useDummy: true); // Dump the code var code1 = qmList[0].GenerateCode <int>(); var code2 = qmList[1].GenerateCode <int>(); Console.WriteLine(); Console.WriteLine(); code1.DumpCodeToConsole(); Console.WriteLine(); Console.WriteLine(); code2.DumpCodeToConsole(); // Next, produce code to make sure that we have a static definition. Assert.IsTrue(code1.DumpCode().Where(l => l.Contains("static int")).Any()); Assert.IsTrue(code1.DumpCode().Where(l => l.Contains("static int")).Any()); }
public void TestTakeSkipLevelBurreidWith2Tests() { var q = new QueriableDummy<dummyntup>(); var c = q.SelectMany(x => x.valC1D).Where(x => x > 10).Where(x => x < 20).Take(5).Count(); Assert.IsNotNull(DummyQueryExectuor.FinalResult, "Expecting some code to have been generated!"); var res = DummyQueryExectuor.FinalResult; res.DumpCodeToConsole(); Assert.AreEqual(1, res.DumpCode().Where(l => l.Contains("static int")).Count()); }