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());
        }
        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());
        }
Esempio n. 3
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());
        }
Esempio n. 4
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());
        }
Esempio n. 5
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());
        }
Esempio n. 6
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());
        }