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()); }
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 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()); }
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 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()); }