Example #1
0
        public void TestPackages()
        {
            var engine   = Init();
            var snippets = engine.Snippets as Snippets;
            var pkgMagic = new PackageMagic(snippets.GlobalReferences);
            var channel  = new MockChannel();
            var response = pkgMagic.Execute("", channel);
            var result   = response.Output as string[];

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            Assert.AreEqual(0, channel.msgs.Count);
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Length);

            // Try compiling TrotterEstimateEnergy, it should fail due to the lack
            // of chemistry package.
            response = engine.ExecuteMundane(SNIPPETS.TrotterEstimateEnergy, channel);
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);

            response = pkgMagic.Execute("microsoft.quantum.chemistry", channel);
            result   = response.Output as string[];
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            Assert.AreEqual(0, channel.msgs.Count);
            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Length);

            // Now it should compile:
            AssertCompile(engine, SNIPPETS.TrotterEstimateEnergy, "TrotterEstimateEnergy");
        }
        public async Task ReportWarnings()
        {
            var engine = await Init();

            {
                var channel  = new MockChannel();
                var response = await engine.ExecuteMundane(SNIPPETS.ThreeWarnings, channel);

                PrintResult(response, channel);
                response.AssertIsOk();
                Assert.AreEqual(3, channel.msgs.Count);
                Assert.AreEqual(0, channel.errors.Count);
                Assert.AreEqual("ThreeWarnings",
                                new ListToTextResultEncoder().Encode(response.Output)?.Data
                                );
            }

            {
                var channel  = new MockChannel();
                var response = await engine.ExecuteMundane(SNIPPETS.OneWarning, channel);

                PrintResult(response, channel);
                response.AssertIsOk();
                Assert.AreEqual(1, channel.msgs.Count);
                Assert.AreEqual(0, channel.errors.Count);
                Assert.AreEqual("OneWarning",
                                new ListToTextResultEncoder().Encode(response.Output)?.Data
                                );
            }
        }
Example #3
0
        public async Task TestDebugMagicCancel()
        {
            var engine = Init();

            await AssertCompile(engine, SNIPPETS.SimpleDebugOperation, "SimpleDebugOperation");

            var configSource = new ConfigurationSource(skipLoading: true);
            var debugMagic   = new DebugMagic(engine.SymbolsResolver, configSource, engine.ShellRouter, engine.ShellServer, null);

            // Start a debug session
            var channel   = new MockChannel();
            var cts       = new CancellationTokenSource();
            var debugTask = debugMagic.RunAsync("SimpleDebugOperation", channel, cts.Token);

            // Cancel the session
            cts.Cancel();

            // Ensure that the task throws an exception
            Assert.ThrowsException <AggregateException>(() => debugTask.Wait());

            // Ensure that expected messages were sent
            Assert.AreEqual("iqsharp_debug_sessionstart", channel.iopubMessages[0].Header.MessageType);
            Assert.AreEqual("iqsharp_debug_sessionend", channel.iopubMessages[1].Header.MessageType);
            Assert.IsTrue(channel.msgs[0].Contains("Starting debug session"));
            Assert.IsTrue(channel.msgs[1].Contains("Finished debug session"));
        }
        public static async Task <string?> AssertNoisySimulate(IQSharpEngine engine, string snippetName, NoiseModel?noiseModel, params string[] messages)
        {
            await engine.Initialized;
            var configSource     = new ConfigurationSource(skipLoading: true);
            var noiseModelSource = new NoiseModelSource();

            if (noiseModel != null)
            {
                noiseModelSource.NoiseModel = noiseModel;
            }

            var simMagic = new SimulateNoiseMagic(
                engine,
                resolver: engine.SymbolsResolver !,
                configurationSource: configSource,
                logger: new UnitTestLogger <SimulateNoiseMagic>(),
                noiseModelSource: noiseModelSource
                );
            var channel  = new MockChannel();
            var response = await simMagic.Execute(snippetName, channel);

            PrintResult(response, channel);
            response.AssertIsOk();
            CollectionAssert.AreEqual(messages.Select(ChannelWithNewLines.Format).ToArray(), channel.msgs.ToArray());

            return(response.Output?.ToString());
        }
Example #5
0
        public void TestWorkspace()
        {
            var engine   = Init("Workspace.Chemistry");
            var snippets = engine.Snippets as Snippets;

            var wsMagic  = new WorkspaceMagic(snippets.Workspace);
            var pkgMagic = new PackageMagic(snippets.GlobalReferences);

            var channel = new MockChannel();
            var result  = new string[0];

            // Check the workspace, it should be in error state:
            var response = wsMagic.Execute("reload", channel);

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);

            response = wsMagic.Execute("", channel);
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);

            // Try compiling a snippet that depends on a workspace that depends on the chemistry package:
            response = engine.ExecuteMundane(SNIPPETS.DependsOnChemistryWorkspace, channel);
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);
            Assert.AreEqual(0, channel.msgs.Count);

            // Add dependencies:
            response = pkgMagic.Execute("microsoft.quantum.chemistry", channel);
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            response = pkgMagic.Execute("microsoft.quantum.research", channel);
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);

            // Reload workspace:
            response = wsMagic.Execute("reload", channel);
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);

            response = wsMagic.Execute("", channel);
            result   = response.Output as string[];
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            Assert.AreEqual(3, result.Length);

            // Now compilation must work:
            AssertCompile(engine, SNIPPETS.DependsOnChemistryWorkspace, "DependsOnChemistryWorkspace");

            // Check an invalid command
            response = wsMagic.Execute("foo", channel);
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);

            // Check that everything still works:
            response = wsMagic.Execute("", channel);
            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
        }
Example #6
0
        public void Estimate()
        {
            var engine  = Init();
            var channel = new MockChannel();

            // Compile it:
            AssertCompile(engine, SNIPPETS.HelloQ, "HelloQ");

            // Try running again:
            AssertEstimate(engine, "HelloQ");
        }
        public static async Task <string?> AssertCompile(IQSharpEngine engine, string source, params string[] expectedOps)
        {
            var channel  = new MockChannel();
            var response = await engine.ExecuteMundane(source, channel);

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            CollectionAssert.AreEquivalent(expectedOps, response.Output as string[]);

            return(response.Output?.ToString());
        }
        public async Task NoisySimulateWithTrivialOperation()
        {
            var engine = await Init();

            var channel = new MockChannel();

            // Compile it:
            await AssertCompile(engine, SNIPPETS.HelloQ, "HelloQ");

            // Try running again:
            await AssertNoisySimulate(engine, "HelloQ", noiseModel : null, "Hello from quantum world!");
        }
        public async Task ReportErrors()
        {
            var engine = await Init();

            var channel  = new MockChannel();
            var response = await engine.ExecuteMundane(SNIPPETS.TwoErrors, channel);

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);
            Assert.AreEqual(0, channel.msgs.Count);
            Assert.AreEqual(2, channel.errors.Count);
        }
Example #10
0
        public static string AssertSimulate(IQSharpEngine engine, string snippetName, params string[] messages)
        {
            var simMagic = new SimulateMagic(engine.SymbolsResolver);
            var channel  = new MockChannel();
            var response = simMagic.Execute(snippetName, channel);

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            CollectionAssert.AreEqual(messages.Select(ChannelWithNewLines.Format).ToArray(), channel.msgs.ToArray());

            return(response.Output?.ToString());
        }
        public async Task Estimate()
        {
            var engine = await Init();

            var channel = new MockChannel();

            // Compile it:
            await AssertCompile(engine, SNIPPETS.HelloQ, "HelloQ");

            // Try running again:
            await AssertEstimate(engine, "HelloQ");
        }
        public async Task NoisySimulateWithTwoQubitOperation()
        {
            var engine = await Init();

            var channel = new MockChannel();

            // Compile it:
            await AssertCompile(engine, SNIPPETS.SimpleDebugOperation, "SimpleDebugOperation");

            // Try running again:
            // Note that noiseModel: null sets the noise model to be ideal.
            await AssertNoisySimulate(engine, "SimpleDebugOperation", noiseModel : null);
        }
        public async Task NoisySimulateWithFailIfOne()
        {
            var engine = await Init();

            var channel = new MockChannel();

            // Compile it:
            await AssertCompile(engine, SNIPPETS.FailIfOne, "FailIfOne");

            // Try running again:
            // Note that noiseModel: null sets the noise model to be ideal.
            await AssertNoisySimulate(engine, "FailIfOne", noiseModel : null);
        }
Example #14
0
        public async Task TestProjectMagic()
        {
            var engine       = Init();
            var snippets     = engine.Snippets as Snippets;
            var projectMagic = new ProjectMagic(snippets.Workspace);
            var channel      = new MockChannel();

            var response = await projectMagic.Execute("../Workspace.ProjectReferences/Workspace.ProjectReferences.csproj", channel);

            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            var loadedProjectFiles = response.Output as string[];

            Assert.AreEqual(3, loadedProjectFiles.Length);
        }
        private async Task AssertTrace(string name, ExecutionPath expectedPath, int expectedDepth)
        {
            var engine = await Init("Workspace.ExecutionPathTracer");

            var snippets = engine.Snippets as Snippets;

            Assert.IsNotNull(snippets);
            Assert.IsNotNull(engine.SymbolsResolver);
            var configSource = new ConfigurationSource(skipLoading: true);

            var wsMagic    = new WorkspaceMagic(snippets !.Workspace, new UnitTestLogger <WorkspaceMagic>());
            var pkgMagic   = new PackageMagic(snippets.GlobalReferences, new UnitTestLogger <PackageMagic>());
            var traceMagic = new TraceMagic(engine.SymbolsResolver !, configSource, new UnitTestLogger <TraceMagic>());

            var channel = new MockChannel();

            // Add dependencies:
            var response = await pkgMagic.Execute("mock.standard", channel);

            PrintResult(response, channel);
            response.AssertIsOk();

            // Reload workspace:
            response = await wsMagic.Execute("reload", channel);

            PrintResult(response, channel);
            response.AssertIsOk();

            response = await traceMagic.Execute(name, channel);

            PrintResult(response, channel);
            response.AssertIsOk();

            var message = channel.iopubMessages.ElementAtOrDefault(0);

            Assert.IsNotNull(message);
            Assert.AreEqual("render_execution_path", message.Header.MessageType);

            var content = message.Content as ExecutionPathVisualizerContent;

            Assert.IsNotNull(content);

            Assert.AreEqual(expectedDepth, content?.RenderDepth);

            var path = content?.ExecutionPath.ToObject <ExecutionPath>();

            Assert.IsNotNull(path);
            Assert.AreEqual(expectedPath.ToJson(), path !.ToJson());
        }
Example #16
0
        public static async Task <string?> AssertSimulate(IQSharpEngine engine, string snippetName, params string[] messages)
        {
            await engine.Initialized;
            var configSource = new ConfigurationSource(skipLoading: true);

            var simMagic = new SimulateMagic(engine.SymbolsResolver !, configSource,
                                             new UnitTestLogger <SimulateMagic>());
            var channel  = new MockChannel();
            var response = await simMagic.Execute(snippetName, channel);

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            CollectionAssert.AreEqual(messages.Select(ChannelWithNewLines.Format).ToArray(), channel.msgs.ToArray());

            return(response.Output?.ToString());
        }
Example #17
0
        public void TestInvalidPackages()
        {
            var engine   = Init();
            var snippets = engine.Snippets as Snippets;
            var pkgMagic = new PackageMagic(snippets.GlobalReferences);
            var channel  = new MockChannel();

            var response = pkgMagic.Execute("microsoft.quantum", channel);
            var result   = response.Output as string[];

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);
            Assert.AreEqual(1, channel.errors.Count);
            Assert.IsTrue(channel.errors[0].StartsWith("Unable to find package 'microsoft.quantum'"));
            Assert.IsNull(result);
        }
        public static void PrintResult(ExecutionResult result, MockChannel channel)
        {
            Console.WriteLine("Result:");
            Console.WriteLine(JsonConvert.SerializeObject(result));

            Console.WriteLine("Errors:");
            foreach (var m in channel.errors)
            {
                Console.WriteLine($"  {m}");
            }

            Console.WriteLine("Messages:");
            foreach (var m in channel.msgs)
            {
                Console.WriteLine($"  {m}");
            }
        }
Example #19
0
        public static string AssertEstimate(IQSharpEngine engine, string snippetName, params string[] messages)
        {
            var channel       = new MockChannel();
            var estimateMagic = new EstimateMagic(engine.SymbolsResolver);
            var response      = estimateMagic.Execute(snippetName, channel);
            var result        = response.Output as Dictionary <string, double>;

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            Assert.IsNotNull(result);
            Assert.AreEqual(8, result.Count);
            CollectionAssert.Contains(result.Keys, "T");
            CollectionAssert.Contains(result.Keys, "CNOT");
            CollectionAssert.AreEqual(messages.Select(ChannelWithNewLines.Format).ToArray(), channel.msgs.ToArray());

            return(response.Output?.ToString());
        }
        public async Task TestProjectMagic()
        {
            var engine = await Init();

            var snippets = engine.Snippets as Snippets;

            Assert.IsNotNull(snippets);
            var projectMagic = new ProjectMagic(snippets !.Workspace, new UnitTestLogger <ProjectMagic>());
            var channel      = new MockChannel();

            var response = await projectMagic.Execute("../Workspace.ProjectReferences/Workspace.ProjectReferences.csproj", channel);

            response.AssertIsOk();
            var loadedProjectFiles = response.Output as string[];

            Assert.AreEqual(3, loadedProjectFiles?.Length);
        }
Example #21
0
        public void Toffoli()
        {
            var engine  = Init();
            var channel = new MockChannel();

            // Compile it:
            AssertCompile(engine, SNIPPETS.HelloQ, "HelloQ");

            // Run with toffoli simulator:
            var toffoliMagic = new ToffoliMagic(engine.SymbolsResolver);
            var response     = toffoliMagic.Execute("HelloQ", channel);
            var result       = response.Output as Dictionary <string, double>;

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            Assert.AreEqual(1, channel.msgs.Count);
            Assert.AreEqual(ChannelWithNewLines.Format("Hello from quantum world!"), channel.msgs[0]);
        }
Example #22
0
        public void TestWho()
        {
            var snippets = Startup.Create <Snippets>("Workspace");

            snippets.Compile(SNIPPETS.HelloQ);

            var whoMagic = new WhoMagic(snippets);
            var channel  = new MockChannel();

            // Check the workspace, it should be in error state:
            var response = whoMagic.Execute("", channel);
            var result   = response.Output as string[];

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            Assert.AreEqual(5, result.Length);
            Assert.AreEqual("HelloQ", result[0]);
            Assert.AreEqual("Tests.qss.NoOp", result[4]);
        }
Example #23
0
        public async Task TestDebugMagicCancel()
        {
            var engine = await Init();

            // Since Init guarantees that engine services have started, we
            // assert non-nullness here.
            Assert.IsNotNull(engine.SymbolsResolver);
            await AssertCompile(engine, SNIPPETS.SimpleDebugOperation, "SimpleDebugOperation");

            var configSource = new ConfigurationSource(skipLoading: true);
            // We asserted that SymbolsResolver is not null above, and can use
            // the null-forgiving operator here as a result.
            var debugMagic = new DebugMagic(engine.SymbolsResolver !, configSource, engine.ShellRouter, engine.ShellServer, null);

            // Start a debug session
            var channel   = new MockChannel();
            var cts       = new CancellationTokenSource();
            var debugTask = debugMagic.RunAsync("SimpleDebugOperation", channel, cts.Token);

            // Cancel the session
            cts.Cancel();

            // Ensure that the task throws an exception
            Assert.ThrowsException <AggregateException>(() => debugTask.Wait());

            // Ensure that expected messages were sent
            try
            {
                Assert.AreEqual("iqsharp_debug_sessionstart", channel.iopubMessages[0].Header.MessageType);
                Assert.AreEqual("iqsharp_debug_sessionend", channel.iopubMessages[1].Header.MessageType);
            }
            catch (AssertFailedException ex)
            {
                await Console.Error.WriteLineAsync(
                    "IOPub messages sent by %debug were incorrect.\nReceived messages:\n" +
                    SessionAsString(channel.iopubMessages)
                    );

                throw ex;
            }
            Assert.IsTrue(channel.msgs[0].Contains("Starting debug session"));
            Assert.IsTrue(channel.msgs[1].Contains("Finished debug session"));
        }
        public async Task TestPackages()
        {
            var engine = await Init();

            var snippets = engine.Snippets as Snippets;

            Assert.IsNotNull(snippets);

            var pkgMagic     = new PackageMagic(snippets !.GlobalReferences, new UnitTestLogger <PackageMagic>());
            var references   = ((References)pkgMagic.References);
            var packageCount = references.AutoLoadPackages.Count;
            var channel      = new MockChannel();
            var response     = await pkgMagic.Execute("", channel);

            var result = response.Output as string[];

            PrintResult(response, channel);
            response.AssertIsOk();
            Assert.AreEqual(0, channel.msgs.Count);
            Assert.AreEqual(packageCount, result?.Length);
            Assert.AreEqual("Microsoft.Quantum.Standard::0.0.0", result?[0]);
            Assert.AreEqual("Microsoft.Quantum.Standard.Visualization::0.0.0", result?[1]);

            // Try compiling TrotterEstimateEnergy, it should fail due to the lack
            // of chemistry package.
            response = await engine.ExecuteMundane(SNIPPETS.UseJordanWignerEncodingData, channel);

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);

            response = await pkgMagic.Execute("mock.chemistry", channel);

            result = response.Output as string[];
            PrintResult(response, channel);
            response.AssertIsOk();
            Assert.AreEqual(0, channel.msgs.Count);
            Assert.IsNotNull(result);
            Assert.AreEqual(packageCount + 1, result?.Length);

            // Now it should compile:
            await AssertCompile(engine, SNIPPETS.UseJordanWignerEncodingData, "UseJordanWignerEncodingData");
        }
Example #25
0
        public static async Task <string> AssertEstimate(IQSharpEngine engine, string snippetName, params string[] messages)
        {
            var channel       = new MockChannel();
            var estimateMagic = new EstimateMagic(engine.SymbolsResolver);
            var response      = await estimateMagic.Execute(snippetName, channel);

            var result = response.Output as DataTable;

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Ok, response.Status);
            Assert.IsNotNull(result);
            Assert.AreEqual(8, result.Rows.Count);
            var keys = result.Rows.Cast <DataRow>().Select(row => row.ItemArray[0]).ToList();

            CollectionAssert.Contains(keys, "T");
            CollectionAssert.Contains(keys, "CNOT");
            CollectionAssert.AreEqual(messages.Select(ChannelWithNewLines.Format).ToArray(), channel.msgs.ToArray());

            return(response.Output?.ToString());
        }
        public async Task TestWho()
        {
            var snippets = Startup.Create <Snippets>("Workspace");
            await snippets.Workspace.Initialization;

            snippets.Compile(SNIPPETS.HelloQ);

            var whoMagic = new WhoMagic(snippets, new UnitTestLogger <WhoMagic>());
            var channel  = new MockChannel();

            // Check the workspace, it should be in error state:
            var response = await whoMagic.Execute("", channel);

            var result = response.Output as string[];

            PrintResult(response, channel);
            response.AssertIsOk();
            Assert.AreEqual(6, result?.Length);
            Assert.AreEqual("HelloQ", result?[0]);
            Assert.AreEqual("Tests.qss.NoOp", result?[4]);
        }
Example #27
0
        public void CompileAndSimulate()
        {
            var engine   = Init();
            var simMagic = new SimulateMagic(engine.SymbolsResolver);
            var channel  = new MockChannel();

            // Try running without compiling it, fails:
            var response = simMagic.Execute("_snippet_.HelloQ", channel);

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);
            Assert.AreEqual(0, channel.msgs.Count);
            Assert.AreEqual(1, channel.errors.Count);
            Assert.AreEqual(ChannelWithNewLines.Format($"Invalid operation name: _snippet_.HelloQ"), channel.errors[0]);

            // Compile it:
            AssertCompile(engine, SNIPPETS.HelloQ, "HelloQ");

            // Try running again:
            AssertSimulate(engine, "HelloQ", "Hello from quantum world!");
        }
        public async Task Toffoli()
        {
            var engine = await Init();

            var channel = new MockChannel();

            Assert.IsNotNull(engine.SymbolsResolver);

            // Compile it:
            await AssertCompile(engine, SNIPPETS.HelloQ, "HelloQ");

            // Run with toffoli simulator:
            var toffoliMagic = new ToffoliMagic(engine.SymbolsResolver !, new UnitTestLogger <ToffoliMagic>());
            var response     = await toffoliMagic.Execute("HelloQ", channel);

            var result = response.Output as Dictionary <string, double>;

            PrintResult(response, channel);
            response.AssertIsOk();
            Assert.AreEqual(1, channel.msgs.Count);
            Assert.AreEqual(ChannelWithNewLines.Format("Hello from quantum world!"), channel.msgs[0]);
        }
        public async Task CompileAndSimulate()
        {
            var engine = await Init();

            Assert.IsNotNull(engine.SymbolsResolver);
            var configSource = new ConfigurationSource(skipLoading: true);
            var simMagic     = new SimulateMagic(engine.SymbolsResolver !, configSource, new PerformanceMonitor(), new UnitTestLogger <SimulateMagic>());
            var channel      = new MockChannel();

            // Try running without compiling it, fails:
            var response = await simMagic.Execute("_snippet_.HelloQ", channel);

            PrintResult(response, channel);
            Assert.AreEqual(ExecuteStatus.Error, response.Status);
            Assert.AreEqual(0, channel.msgs.Count);
            Assert.AreEqual(1, channel.errors.Count);
            Assert.AreEqual(ChannelWithNewLines.Format($"Invalid operation name: _snippet_.HelloQ"), channel.errors[0]);

            // Compile it:
            await AssertCompile(engine, SNIPPETS.HelloQ, "HelloQ");

            // Try running again:
            await AssertSimulate(engine, "HelloQ", "Hello from quantum world!");
        }
Example #30
0
        public void ReportWarnings()
        {
            var engine = Init();

            {
                var channel  = new MockChannel();
                var response = engine.ExecuteMundane(SNIPPETS.ThreeWarnings, channel);
                PrintResult(response, channel);
                Assert.AreEqual(ExecuteStatus.Ok, response.Status);
                Assert.AreEqual(3, channel.msgs.Count);
                Assert.AreEqual(0, channel.errors.Count);
                Assert.AreEqual("ThreeWarnings", new ListToTextResultEncoder().Encode(response.Output).Value.Data);
            }

            {
                var channel  = new MockChannel();
                var response = engine.ExecuteMundane(SNIPPETS.OneWarning, channel);
                PrintResult(response, channel);
                Assert.AreEqual(ExecuteStatus.Ok, response.Status);
                Assert.AreEqual(1, channel.msgs.Count);
                Assert.AreEqual(0, channel.errors.Count);
                Assert.AreEqual("OneWarning", new ListToTextResultEncoder().Encode(response.Output).Value.Data);
            }
        }