Skip to content

Commit 2e119b3

Browse files
committed
Add test showing issue where cache does not match when inferred parameters are included
1 parent cf9a721 commit 2e119b3

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

tests/dataset/test_dataset_in_memory.py

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,29 @@
33
import re
44
import shutil
55
from pathlib import Path
6+
from typing import TYPE_CHECKING
67

78
import hypothesis.strategies as hst
89
import numpy as np
910
import pytest
1011
import xarray as xr
12+
from deepdiff import DeepDiff # type: ignore[import-untyped]
1113
from hypothesis import HealthCheck, given, settings
1214
from numpy.testing import assert_almost_equal
1315

1416
import qcodes
15-
from qcodes.dataset import load_by_id, load_by_run_spec
17+
from qcodes.dataset import Measurement, load_by_id, load_by_run_spec
1618
from qcodes.dataset.data_set_in_memory import DataSetInMem, load_from_file
1719
from qcodes.dataset.data_set_protocol import DataSetType
1820
from qcodes.dataset.descriptions.dependencies import InterDependencies_
1921
from qcodes.dataset.descriptions.param_spec import ParamSpecBase
2022
from qcodes.dataset.sqlite.connection import AtomicConnection, atomic_transaction
23+
from qcodes.parameters import ManualParameter, Parameter
2124
from qcodes.station import Station
2225

26+
if TYPE_CHECKING:
27+
from qcodes.dataset.experiment_container import Experiment
28+
2329

2430
def test_dataset_in_memory_reload_from_db(
2531
meas_with_registered_param, DMM, DAC, tmp_path
@@ -676,3 +682,32 @@ def test_load_from_db_dataset_moved(
676682
not in new_xr_ds.attrs
677683
)
678684
assert new_xr_ds.attrs["metadata_added_after_set_new_netcdf_location"] == 6969
685+
686+
687+
def test_dataset_in_mem_with_inferred_parameters(experiment: "Experiment") -> None:
688+
inferred1 = ManualParameter("inferred1", initial_value=0)
689+
inferred2 = ManualParameter("inferred2", initial_value=0)
690+
control1 = ManualParameter("control1", initial_value=0)
691+
control2 = ManualParameter("control2", initial_value=0)
692+
dependent = Parameter("dependent", get_cmd=lambda: control1(), set_cmd=False)
693+
meas = Measurement(exp=experiment, name="via Measurement")
694+
695+
meas.register_parameter(control1)
696+
meas.register_parameter(control2)
697+
meas.register_parameter(inferred1, basis=(control1, control2))
698+
meas.register_parameter(inferred2, basis=(control1, control2))
699+
meas.register_parameter(dependent, setpoints=(control1, control2))
700+
meas.set_shapes({dependent.register_name: (11, 11)})
701+
with meas.run() as datasaver:
702+
for i in range(11):
703+
for j in range(11):
704+
control1(float(i))
705+
control2(float(j))
706+
datasaver.add_result(
707+
(control1, control1()),
708+
(control2, control2()),
709+
(dependent, dependent()),
710+
)
711+
ds = datasaver.dataset
712+
713+
assert DeepDiff(ds.get_parameter_data(), ds.cache.data()) == {}

0 commit comments

Comments
 (0)