Exemplo n.º 1
0
        public async Task NonUniqueNameTest()
        {
            var content = @"x <- select()";

            using (new RHostScript(Services)) {
                var session = await TriggerSessionAsync(content, 8);

                session.ApplicableSpan.Should().BeNull();
                session.QuickInfoContent.Should().BeEmpty();

                await EnsurePackageInstalled("MASS");
                await EnsurePackageInstalled("dplyr");

                await Workflow.RSession.ExecuteAsync("library(MASS)");

                EventsPump.DoEvents(500);
                session = await TriggerSessionAsync(content, 8);

                session.ApplicableSpan.Should().NotBeNull();
                session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("select(formula");

                await Workflow.RSession.ExecuteAsync("library(dplyr)");

                EventsPump.DoEvents(500);
                session = await TriggerSessionAsync(content, 8);

                session.ApplicableSpan.Should().NotBeNull();
                session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("select(.data");
            }
        }
Exemplo n.º 2
0
        public async Task LoadUnloadPackageTest()
        {
            var content = @"do()";

            using (new RHostScript(Services)) {
                await EnsurePackageInstalled("dplyr");

                var session = await TriggerSessionAsync(content, 1);

                session.ApplicableSpan.Should().BeNull();
                session.QuickInfoContent.Should().BeEmpty();

                await Workflow.RSession.ExecuteAsync("library(dplyr)");

                session = await TriggerSessionAsync(content, 1);

                session.ApplicableSpan.Should().NotBeNull();
                session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("do(.data");

                await Workflow.RSession.ExecuteAsync("detach(\"package:dplyr\", unload = TRUE)");

                EventsPump.DoEvents(1000);

                session = await TriggerSessionAsync(content, 1);

                session.QuickInfoContent.Should().BeEmpty();
            }
        }
Exemplo n.º 3
0
        public async Task NonUniqueNameTest()
        {
            string content = @"x <- select()";

            using (var hostScript = new RHostScript(Workflow.RSessions)) {
                //await Workflow.RSession.ExecuteAsync("install.packages('dplyr')");

                var session = await TriggerSessionAsync(content, 12);

                var parametersInfo = SignatureHelp.GetParametersInfoFromBuffer(session.Ast, session.TextBuffer.CurrentSnapshot, 10);

                session.ApplicableSpan.Should().NotBeNull();
                session.QuickInfoContent.Should().BeEmpty();

                await Workflow.RSession.ExecuteAsync("library(MASS)");

                EventsPump.DoEvents(500);
                session = await TriggerSessionAsync(content, 12);

                session.ApplicableSpan.Should().NotBeNull();
                session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("select(formula");

                await Workflow.RSession.ExecuteAsync("library(dplyr)");

                EventsPump.DoEvents(500);
                session = await TriggerSessionAsync(content, 12);

                session.ApplicableSpan.Should().NotBeNull();
                session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("select(.data");
            }
        }
Exemplo n.º 4
0
        public async Task LoadUnloadPackageTest()
        {
            string content = @"do()";

            using (var hostScript = new RHostScript(Workflow.RSessions)) {
                //await Workflow.RSession.ExecuteAsync("install.packages('dplyr')");

                var session = await TriggerSessionAsync(content, 3);

                var parametersInfo = SignatureHelp.GetParametersInfoFromBuffer(session.Ast, session.TextBuffer.CurrentSnapshot, 10);

                session.ApplicableSpan.Should().NotBeNull();
                session.QuickInfoContent.Should().BeEmpty();

                await Workflow.RSession.ExecuteAsync("library(dplyr)");

                session = await TriggerSessionAsync(content, 3);

                session.ApplicableSpan.Should().NotBeNull();
                session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("do(.data");

                await Workflow.RSession.ExecuteAsync("detach(\"package:dplyr\", unload = TRUE)");

                EventsPump.DoEvents(1000);

                session = await TriggerSessionAsync(content, 3);

                session.QuickInfoContent.Should().BeEmpty();
            }
        }
Exemplo n.º 5
0
        public async Task PlotALot()
        {
            var sessionProvider = VsAppShell.Current.ExportProvider.GetExportedValue <IRSessionProvider>();
            var app             = new RHostClientPlotTestApp();

            using (var script = new RHostScript(sessionProvider, app)) {
                var history = new PlotHistory(script.Session);
                app.History = history;

                foreach (var c in _commands)
                {
                    using (var interaction = await script.Session.BeginInteractionAsync()) {
                        await interaction.RespondAsync(c + Environment.NewLine);

                        EventsPump.DoEvents(100);
                    }
                }

                for (int i = _commands.Length - 1; i >= 0; i--)
                {
                    await history.PlotContentProvider.PreviousPlotAsync();

                    EventsPump.DoEvents(100);
                }

                for (int i = 0; i < _commands.Length; i++)
                {
                    await history.PlotContentProvider.NextPlotAsync();

                    EventsPump.DoEvents(500);
                }

                EventsPump.DoEvents(1000);
            }
        }
Exemplo n.º 6
0
        public async Task InstallPackageTest()
        {
            await Workflow.RSession.EnsureHostStartedAsync(new RHostStartupInfo(), null, 50000);

            var completionSets = new List <CompletionSet>();

            for (int i = 0; i < 2; i++)
            {
                try {
                    await Workflow.Packages.UninstallPackageAsync("abc", null);

                    EventsPump.DoEvents(1000);
                } catch (RException) { }

                await PackageIndex.BuildIndexAsync();

                completionSets.Clear();
                RCompletionTestUtilities.GetCompletions(Services, "abc::", 5, completionSets);

                completionSets.Should().ContainSingle();
                // Try again one more time
                if (completionSets[0].Completions.Count == 0)
                {
                    break;
                }
            }
            completionSets[0].Completions.Should().BeEmpty();

            try {
                await Workflow.RSession.ExecuteAsync("install.packages('abc')", REvaluationKind.Mutating);

                EventsPump.DoEvents(1000);
            } catch (RException) { }

            await PackageIndex.BuildIndexAsync();

            completionSets.Clear();
            RCompletionTestUtilities.GetCompletions(Services, "abc::", 5, completionSets);

            completionSets.Should().ContainSingle();
            completionSets[0].Completions.Should().NotBeEmpty();
        }