コード例 #1
0
ファイル: test_t1.py プロジェクト: gadial/qiskit-experiments
    def test_t1_parallel(self):
        """
        Test parallel experiments of T1 using a simulator.
        """

        t1 = [25, 15]
        delays = list(range(1, 40, 3))

        exp0 = T1(0, delays)
        exp2 = T1(2, delays)
        par_exp = ParallelExperiment([exp0, exp2])
        res = par_exp.run(T1Backend([t1[0], None, t1[1]]))
        self.assertExperimentDone(res)

        for i in range(2):
            sub_res = res.child_data(i).analysis_results("T1")
            self.assertEqual(sub_res.quality, "good")
            self.assertAlmostEqual(sub_res.value.n, t1[i], delta=3)

        res.service = FakeService()
        res.save()
        loaded_data = ExperimentData.load(res.experiment_id, res.service)

        for i in range(2):
            sub_res = res.child_data(i).analysis_results("T1")
            sub_loaded = loaded_data.child_data(i).analysis_results("T1")
            self.assertEqual(repr(sub_res), repr(sub_loaded))
コード例 #2
0
ファイル: test_t1.py プロジェクト: gadial/qiskit-experiments
    def test_t1_end2end(self):
        """
        Test T1 experiment using a simulator.
        """
        t1 = 25e-6
        backend = T1Backend(
            [t1],
            initial_prob1=[0.02],
            readout0to1=[0.02],
            readout1to0=[0.02],
        )

        delays = np.arange(1e-6, 40e-6, 3e-6)

        exp = T1(0, delays)
        exp.analysis.set_options(p0={"amp": 1, "tau": t1, "base": 0})
        exp_data = exp.run(backend, shots=10000)
        self.assertExperimentDone(exp_data)
        res = exp_data.analysis_results("T1")
        self.assertRoundTripSerializable(res.value,
                                         check_func=self.ufloat_equiv)
        self.assertEqual(res.quality, "good")
        self.assertAlmostEqual(res.value.n, t1, delta=3)
        self.assertEqual(res.extra["unit"], "s")

        exp_data.service = FakeService()
        exp_data.save()
        loaded_data = ExperimentData.load(exp_data.experiment_id,
                                          exp_data.service)
        exp_res = exp_data.analysis_results()
        load_res = loaded_data.analysis_results()
        repr1 = sorted([repr(res) for res in exp_res])
        repr2 = sorted([repr(res) for res in load_res])
        self.assertEqual(repr1, repr2)
コード例 #3
0
    def test_t1_end2end(self):
        """
        Test T1 experiment using a simulator.
        """
        t1 = 25e-6
        backend = T1Backend(
            [t1],
            initial_prob1=[0.02],
            readout0to1=[0.02],
            readout1to0=[0.02],
        )

        delays = np.arange(1e-6, 40e-6, 3e-6)

        exp = T1(0, delays)
        exp.analysis.set_options(p0={"amp": 1, "tau": t1, "base": 0})
        exp_data = exp.run(backend, shots=10000)
        res = exp_data.analysis_results("T1")
        fitval = res.value
        self.assertEqual(res.quality, "good")
        self.assertAlmostEqual(fitval.value, t1, delta=3)
        self.assertEqual(fitval.unit, "s")

        exp_data.service = FakeService()
        exp_data.save()
        loaded_data = ExperimentData.load(exp_data.experiment_id,
                                          exp_data.service)
        self.assertEqual(repr(exp_data.analysis_results("T1")),
                         repr(loaded_data.analysis_results("T1")))
コード例 #4
0
    def test_composite_save_metadata(self):
        """
        Verify that saving metadata and loading restores the original composite experiment data object
        """
        self.rootdata.service = FakeService()
        self.rootdata.save_metadata()
        loaded_data = ExperimentData.load(self.rootdata.experiment_id, self.rootdata.service)

        self.check_if_equal(loaded_data, self.rootdata, is_a_copy=False)
コード例 #5
0
 def test_database_save_and_load(self):
     """Tests saving and loading the mitigator from the DB"""
     qubits = [0, 1]
     backend = AerSimulator.from_backend(FakeParis())
     exp = LocalReadoutError(qubits)
     exp_data = exp.run(backend).block_for_results()
     exp_data.service = FakeService()
     exp_data.save()
     loaded_data = ExperimentData.load(exp_data.experiment_id,
                                       exp_data.service)
     exp_res = exp_data.analysis_results()
     load_res = loaded_data.analysis_results()
     exp_matrix = exp_res[0].value.assignment_matrix()
     load_matrix = load_res[0].value.assignment_matrix()
     self.assertTrue(matrix_equal(exp_matrix, load_matrix))