Open carstenblank opened 2 years ago
Some tests fail because the phase is not correct. I suspect that the phases are correct, but that the test cannot catch the correct phase. We should look into this.
FAILED [ 46%] test_circuit_building.py:116 (QiskitDspCircuitTests.test_create_circuit_05) self = <test_circuit_building.QiskitDspCircuitTests testMethod=test_create_circuit_05> scaling = 0.3333, initial_value = 4.0 probabilities = array([[0.1, 0.9], [0.8, 0.2], [0.3, 0.7], [0.5, 0.5]]) realizations = array([[-1. , 1. ], [-0.4, 0.5], [-2.3, 1.1], [-1. , 0.1]]) apply_func = <function apply_level_two_realizations at 0x000001F78EFC6160> @test_data(*dsp_data.testing_data) @unpack def test_create_circuit(self, scaling: float, initial_value: float, probabilities: np.ndarray, realizations: np.ndarray, apply_func): LOG.info(f"Data: scaling={scaling}, initial value={initial_value}, " f"probabilities={list(probabilities)}, realizations={list(realizations)}," f"applied function={apply_func.__name__}.") qc = qiskit.QuantumCircuit(name='dsp_simulation') LOG.info(f"Initializing with {initial_value} and scaling {scaling}.") init_qc = apply_initial(initial_value, scaling) qc.extend(init_qc) for level, (p, r) in enumerate(zip(probabilities, realizations)): LOG.info(f"Adding level {level}: {p} with {r} and scaling {scaling}.") qc_index = index_independent_prep(level, p) qc_level_l = apply_func(level, r, scaling) qc.extend(qc_index) qc.extend(qc_level_l) LOG.info(f"Circuit:\n{qc.draw(output='text', fold=-1)}") qc_compiled = qiskit.transpile(qc, optimization_level=3,basis_gates=['id', 'u1', 'u2', 'u3', 'cx']) LOG.info(f"Circuit:\n{qc_compiled.draw(output='text', fold=-1)}") backend: qiskit.providers.aer.StatevectorSimulator = qiskit.Aer.get_backend('statevector_simulator') job: qiskit.providers.aer.AerJob = qiskit.execute(qc_compiled, backend) job.wait_for_final_state(callback=QiskitDspCircuitTests.report_progress, wait=1) > self.assert_statevector(probabilities, realizations, scaling, initial_value, job) test_circuit_building.py:148: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_circuit_building.py:100: in assert_statevector [self.assertAlmostEqual(x, y, delta=10e-3, msg='Phase Differences have to negligible.') test_circuit_building.py:100: in <listcomp> [self.assertAlmostEqual(x, y, delta=10e-3, msg='Phase Differences have to negligible.') E AssertionError: 6.28318530717959 != 5.983215307179592 within 0.01 delta (0.2999699999999974 difference) : Phase Differences have to negligible.
Some tests fail because the phase is not correct. I suspect that the phases are correct, but that the test cannot catch the correct phase. We should look into this.