private DataTable RunDepthVersusWidthTest(bool optimizeDepth) { QCTraceSimulators.QCTraceSimulatorConfiguration config = ResourcesEstimator.RecommendedConfig(); config.OptimizeDepth = optimizeDepth; var sim = new ResourcesEstimator(config); DepthVersusWidth.Run(sim).Wait(); return(sim.Data); }
public void QubitReuseSequentialTest() { QCTraceSimulators.QCTraceSimulatorConfiguration config = ResourcesEstimator.RecommendedConfig(); config.OptimizeDepth = true; var sim = new ResourcesEstimator(config); SequentialUse.Run(sim).Wait(); Assert.Equal(11.0, sim.Data.Rows.Find("QubitCount")["Sum"]); Assert.Equal(20.0, sim.Data.Rows.Find("Width")["Sum"]); Assert.Equal(11.0, sim.Data.Rows.Find("Depth")["Sum"]); }
public void ReuseInBlockMixedTest() { QCTraceSimulators.QCTraceSimulatorConfiguration config = ResourcesEstimator.RecommendedConfig(); config.OptimizeDepth = true; var sim = new ResourcesEstimator(config); ReuseInBlockMixed.Run(sim).Wait(); Assert.Equal(8.0, sim.Data.Rows.Find("QubitCount")["Sum"]); Assert.Equal(2.0, sim.Data.Rows.Find("Width")["Sum"]); Assert.Equal(0.0, sim.Data.Rows.Find("Depth")["Sum"]); }
public void QubitReuseSimultaneousTest() { QCTraceSimulators.QCTraceSimulatorConfiguration config = ResourcesEstimator.RecommendedConfig(); config.OptimizeDepth = true; var sim = new ResourcesEstimator(config); SimultaneousUse.Run(sim).Wait(); Assert.Equal(11.0, sim.Data.Rows.Find("QubitCount")["Sum"]); Assert.Equal(20.0, sim.Data.Rows.Find("Width")["Sum"]); // Note that in RecommendedConfig only T gates are depth 1, the rest are depth 0. Assert.Equal(1.0, sim.Data.Rows.Find("Depth")["Sum"]); }