Commit 0f3e9bc8 authored by Robert Sokolewicz's avatar Robert Sokolewicz
Browse files

Merge branch 'update_mock_setup_params' into 'main'

update tests to use mock_setup_basic_transmon_with_standard_params where needed (#369, QAE-711)

Closes #369

See merge request !522
parents 5cbe687b 86d87391
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
- Damaz de Jong \<<mailto:ddejong@qblox.com>>
- Damien Crielaard \<<mailto:dcrielaard@qblox.com>>
- Daniel Jonathan Weigand \<<mailto:dweigand@qblox.com>>
- David Quinn \<<mailto:dquinn@qblox.com>>
- David Vos \<<mailto:dvos@qblox.com>>
- Diogo Valada \<<mailto:dvalada@qblox.com>>
- Edgar Reehuis \<<mailto:ereehuis@qblox.com>>
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@


### Merged branches and closed issues

- Tests - Update tests to use `mock_setup_basic_transmon_with_standard_params` where needed (#369, !522)
- Improve parameter documentation for DeviceElements (!493)
- NV centers - First operation `SpectroscopyOperation` with compilation for Qblox hardware (!471)
- NV centers - `Reset` operation with compilation for Qblox hardware (!485)
+17 −11
Original line number Diff line number Diff line
@@ -147,7 +147,9 @@ def mock_setup_basic_nv_qblox_hardware(mock_setup_basic_nv):


@pytest.fixture(scope="function", autouse=False)
def device_compile_config_basic_transmon(mock_setup_basic_transmon):
def device_compile_config_basic_transmon(
    mock_setup_basic_transmon_with_standard_params,
):
    """
    A config generated from a quantum device with 5 transmon qubits
    connected in a star configuration.
@@ -157,12 +159,14 @@ def device_compile_config_basic_transmon(mock_setup_basic_transmon):
    # N.B. how this fixture produces the hardware config can change in the future
    # as long as it keeps doing what is described in this docstring.

    set_standard_params_transmon(mock_setup_basic_transmon)
    yield mock_setup_basic_transmon["quantum_device"].generate_compilation_config()
    mock_setup = mock_setup_basic_transmon_with_standard_params
    yield mock_setup["quantum_device"].generate_compilation_config()


@pytest.fixture(scope="function", autouse=False)
def compile_config_basic_transmon_zhinst_hardware(mock_setup_basic_transmon):
def compile_config_basic_transmon_zhinst_hardware(
    mock_setup_basic_transmon_with_standard_params,
):
    """
    A config for a quantum device with 5 transmon qubits connected in a star
    configuration controlled using Zurich Instruments Hardware.
@@ -170,15 +174,17 @@ def compile_config_basic_transmon_zhinst_hardware(mock_setup_basic_transmon):
    # N.B. how this fixture produces the hardware config will change in the future
    # as we separate the config up into a more fine grained config. For now it uses
    # the old JSON files to load settings from.
    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup_basic_transmon["quantum_device"].hardware_config(ZHINST_HARDWARE_MAPPING)
    mock_setup = mock_setup_basic_transmon_with_standard_params
    mock_setup["quantum_device"].hardware_config(ZHINST_HARDWARE_MAPPING)

    # add the hardware config here
    yield mock_setup_basic_transmon["quantum_device"].generate_compilation_config()
    yield mock_setup["quantum_device"].generate_compilation_config()


@pytest.fixture(scope="function", autouse=False)
def compile_config_basic_transmon_qblox_hardware(mock_setup_basic_transmon):
def compile_config_basic_transmon_qblox_hardware(
    mock_setup_basic_transmon_with_standard_params,
):
    """
    A config for a quantum device with 5 transmon qubits connected in a star
    configuration controlled using Qblox Hardware.
@@ -186,10 +192,10 @@ def compile_config_basic_transmon_qblox_hardware(mock_setup_basic_transmon):
    # N.B. how this fixture produces the hardware config will change in the future
    # as we separate the config up into a more fine grained config. For now it uses
    # the old JSON files to load settings from.
    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup_basic_transmon["quantum_device"].hardware_config(QBLOX_HARDWARE_MAPPING)
    mock_setup = mock_setup_basic_transmon_with_standard_params
    mock_setup["quantum_device"].hardware_config(QBLOX_HARDWARE_MAPPING)

    yield mock_setup_basic_transmon["quantum_device"].generate_compilation_config()
    yield mock_setup["quantum_device"].generate_compilation_config()


@pytest.fixture(scope="function")
+16 −15
Original line number Diff line number Diff line
@@ -68,7 +68,6 @@ from quantify_scheduler.compilation import (
    qcompile,
)

from quantify_scheduler.device_under_test.mock_setup import set_standard_params_transmon
from quantify_scheduler.operations.acquisition_library import Trace
from quantify_scheduler.operations.gate_library import Measure, Reset, X
from quantify_scheduler.operations.pulse_library import (
@@ -990,19 +989,21 @@ def test_compile_clock_operations(


def test_compile_cz_gate(
    mock_setup_basic_transmon, hardware_cfg_two_qubit_gate, two_qubit_gate_schedule
    mock_setup_basic_transmon_with_standard_params,
    hardware_cfg_two_qubit_gate,
    two_qubit_gate_schedule,
):
    # mock_setup_basic_transmon should arrange this but is not working here
    tmp_dir = tempfile.TemporaryDirectory()
    set_datadir(tmp_dir.name)

    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup = mock_setup_basic_transmon_with_standard_params

    edge_q2_q3 = mock_setup_basic_transmon["q2_q3"]
    edge_q2_q3 = mock_setup["q2_q3"]
    edge_q2_q3.cz.q2_phase_correction(44)
    edge_q2_q3.cz.q3_phase_correction(63)

    quantum_device = mock_setup_basic_transmon["quantum_device"]
    quantum_device = mock_setup["quantum_device"]
    device_cfg = quantum_device.generate_device_config()

    compiled_sched = qcompile(
@@ -1058,11 +1059,11 @@ def test_compile_simple_with_acq(
    [True, False],
)
def test_compile_acq_measurement_with_clock_phase_reset(
    mock_setup_basic_transmon,
    mock_setup_basic_transmon_with_standard_params,
    load_example_qblox_hardware_config,
    reset_clock_phase,
):
    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup = mock_setup_basic_transmon_with_standard_params
    tmp_dir = tempfile.TemporaryDirectory()
    set_datadir(tmp_dir.name)
    schedule = Schedule("Test schedule")
@@ -1081,8 +1082,8 @@ def test_compile_acq_measurement_with_clock_phase_reset(
            label=f"Measurement {q0}{i}",
        )

    mock_setup_basic_transmon["q0"].measure.reset_clock_phase(reset_clock_phase)
    device_cfg = mock_setup_basic_transmon["quantum_device"].generate_device_config()
    mock_setup["q0"].measure.reset_clock_phase(reset_clock_phase)
    device_cfg = mock_setup["quantum_device"].generate_device_config()

    compiled_schedule = qcompile(
        schedule, device_cfg, load_example_qblox_hardware_config
@@ -1381,13 +1382,13 @@ def test_container_prepare(


def test_determine_scope_mode_acquisition_sequencer(
    mock_setup_basic_transmon, load_example_qblox_hardware_config
    mock_setup_basic_transmon_with_standard_params, load_example_qblox_hardware_config
):
    # mock_setup_basic_transmon should arrange this but is not working here
    tmp_dir = tempfile.TemporaryDirectory()
    set_datadir(tmp_dir.name)

    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup = mock_setup_basic_transmon_with_standard_params
    sched = Schedule("determine_scope_mode_acquisition_sequencer")
    sched.add(Measure("q0"))
    sched.add(Trace(duration=100e-9, port="q0:res", clock="q0.multiplex"))
@@ -1396,7 +1397,7 @@ def test_determine_scope_mode_acquisition_sequencer(
    hardware_cfg = load_example_qblox_hardware_config
    sched = qcompile(
        sched,
        mock_setup_basic_transmon["quantum_device"].generate_device_config(),
        mock_setup["quantum_device"].generate_device_config(),
        hardware_cfg,
    )

@@ -2186,7 +2187,7 @@ def test_apply_latency_corrections_invalid_raises(


def test_apply_latency_corrections_valid(
    mock_setup_basic_transmon, hardware_cfg_latency_corrections
    mock_setup_basic_transmon_with_standard_params, hardware_cfg_latency_corrections
):
    """
    This test function checks that:
@@ -2197,7 +2198,7 @@ def test_apply_latency_corrections_valid(
    tmp_dir = tempfile.TemporaryDirectory()
    set_datadir(tmp_dir.name)

    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup = mock_setup_basic_transmon_with_standard_params
    sched = Schedule("Single Gate Experiment on Two Qubits")
    sched.add(X("q0"))
    sched.add(
@@ -2210,7 +2211,7 @@ def test_apply_latency_corrections_valid(
    hardware_cfg = hardware_cfg_latency_corrections
    compiled_sched = qcompile(
        schedule=sched,
        device_cfg=mock_setup_basic_transmon["quantum_device"].generate_device_config(),
        device_cfg=mock_setup["quantum_device"].generate_device_config(),
        hardware_cfg=hardware_cfg,
    )

+14 −15
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ from qcodes.instrument import Instrument, InstrumentChannel, InstrumentModule
from quantify_core.data.handling import set_datadir  # pylint: disable=no-name-in-module

from quantify_scheduler.compilation import qcompile
from quantify_scheduler.device_under_test.mock_setup import set_standard_params_transmon
from quantify_scheduler.device_under_test.transmon_element import BasicTransmonElement
from quantify_scheduler.instrument_coordinator.components import qblox

@@ -550,7 +549,7 @@ def test_prepare_cluster_rf(

def test_prepare_rf(
    close_all_instruments,
    mock_setup_basic_transmon,
    mock_setup_basic_transmon_with_standard_params,
    schedule_with_measurement_q2,
    load_example_qblox_hardware_config,
    make_qcm_rf,
@@ -560,11 +559,11 @@ def test_prepare_rf(
    qcm: qblox.QCMRFComponent = make_qcm_rf("qcm_rf0", "1234")
    qrm: qblox.QRMRFComponent = make_qrm_rf("qrm_rf0", "1234")

    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup_basic_transmon["q2"].clock_freqs.readout(7.5e9)
    mock_setup_basic_transmon["q2"].clock_freqs.f01(6.03e9)
    mock_setup = mock_setup_basic_transmon_with_standard_params
    mock_setup["q2"].clock_freqs.readout(7.5e9)
    mock_setup["q2"].clock_freqs.f01(6.03e9)

    device_config = mock_setup_basic_transmon["quantum_device"].generate_device_config()
    device_config = mock_setup["quantum_device"].generate_device_config()
    # Act
    with tempfile.TemporaryDirectory() as tmp_dir:
        set_datadir(tmp_dir)
@@ -729,7 +728,7 @@ def test_retrieve_acquisition_qcm_rf(close_all_instruments, make_qcm_rf):


def test_retrieve_acquisition_qrm_rf(
    mock_setup_basic_transmon,
    mock_setup_basic_transmon_with_standard_params,
    schedule_with_measurement_q2,
    load_example_qblox_hardware_config,
    make_qrm_rf,
@@ -737,9 +736,9 @@ def test_retrieve_acquisition_qrm_rf(
    # Arrange
    qrm_rf: qblox.QRMRFComponent = make_qrm_rf("qrm_rf0", "1234")

    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup_basic_transmon["q2"].clock_freqs.readout(7.3e9)
    device_config = mock_setup_basic_transmon["quantum_device"].generate_device_config()
    mock_setup = mock_setup_basic_transmon_with_standard_params
    mock_setup["q2"].clock_freqs.readout(7.3e9)
    device_config = mock_setup["quantum_device"].generate_device_config()

    # Act
    with tempfile.TemporaryDirectory() as tmp_dir:
@@ -832,7 +831,7 @@ def test_start_qcm_qrm(


def test_start_qcm_qrm_rf(
    mock_setup_basic_transmon,
    mock_setup_basic_transmon_with_standard_params,
    schedule_with_measurement_q2,
    load_example_qblox_hardware_config,
    make_qcm_rf,
@@ -842,11 +841,11 @@ def test_start_qcm_qrm_rf(
    qcm_rf: qblox.QCMRFComponent = make_qcm_rf("qcm_rf0", "1234")
    qrm_rf: qblox.QRMRFComponent = make_qrm_rf("qrm_rf0", "1234")

    set_standard_params_transmon(mock_setup_basic_transmon)
    mock_setup_basic_transmon["q2"].clock_freqs.readout(7.3e9)
    mock_setup_basic_transmon["q2"].clock_freqs.f01(6.03e9)
    mock_setup = mock_setup_basic_transmon_with_standard_params
    mock_setup["q2"].clock_freqs.readout(7.3e9)
    mock_setup["q2"].clock_freqs.f01(6.03e9)

    device_config = mock_setup_basic_transmon["quantum_device"].generate_device_config()
    device_config = mock_setup["quantum_device"].generate_device_config()

    # Act
    with tempfile.TemporaryDirectory() as tmp_dir:
Loading