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"]); }
public void RecommendedConfigTest() { var actual = ResourcesEstimator.RecommendedConfig(); Assert.Equal(1u, actual.CallStackDepthLimit); // This disabled by default: Assert.False(actual.ThrowOnUnconstrainedMeasurement); Assert.False(actual.UseDistinctInputsChecker); Assert.False(actual.UseInvalidatedQubitsUseChecker); // Counters that we're expecting: Assert.True(actual.UsePrimitiveOperationsCounter); Assert.True(actual.UseDepthCounter); Assert.True(actual.UseWidthCounter); }