Skip to content

Commit

Permalink
test(measurement): added tests to evaluate experiment runtimes to eva…
Browse files Browse the repository at this point in the history
…luate the impact and effiacy of higher dt's.
  • Loading branch information
rsbrost committed Jun 25, 2024
1 parent f4554cd commit 3d20c7f
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Passed with test_instrument_driver version v0.1.0 tested on pyscan version v0.5.3 at 2024-06-25 15:19:53
Passed with test_instrument_driver version v0.1.0 tested on pyscan version v0.5.3 at 2024-06-25 15:41:13
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Passed with test_voltage version v0.1.0 tested on pyscan version v0.5.3 at 2024-06-25 14:33:11
Passed with test_voltage version v0.1.0 tested on pyscan version v0.5.3 at 2024-06-25 15:41:13
42 changes: 37 additions & 5 deletions test/measurement/test_experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def loaded_modifier(loaded):


# for setting up the experiments
def set_up_experiment(num_devices, measure_function, repeat=False, repeat_num=1):
def set_up_experiment(num_devices, measure_function, repeat=False, repeat_num=1, dt=0):
devices = ps.ItemAttribute()
devices.v1 = ps.TestVoltage()

Expand All @@ -52,19 +52,19 @@ def set_up_experiment(num_devices, measure_function, repeat=False, repeat_num=1)
if (repeat is True):
runinfo.scan0 = ps.RepeatScan(repeat_num)
else:
runinfo.scan0 = ps.PropertyScan({'v1': ps.drange(0, 0.1, 0.1)}, 'voltage')
runinfo.scan0 = ps.PropertyScan({'v1': ps.drange(0, 0.1, 0.1)}, 'voltage', dt=dt)

if (num_devices > 1):
devices.v2 = ps.TestVoltage()
runinfo.scan1 = ps.PropertyScan({'v2': ps.drange(0.1, 0.1, 0)}, 'voltage')
runinfo.scan1 = ps.PropertyScan({'v2': ps.drange(0.1, 0.1, 0)}, 'voltage', dt=dt)

if (num_devices > 2):
devices.v3 = ps.TestVoltage()
runinfo.scan2 = ps.PropertyScan({'v3': ps.drange(0.3, 0.1, 0.2)}, 'voltage')
runinfo.scan2 = ps.PropertyScan({'v3': ps.drange(0.3, 0.1, 0.2)}, 'voltage', dt=dt)

if (num_devices > 3):
devices.v4 = ps.TestVoltage()
runinfo.scan3 = ps.PropertyScan({'v4': ps.drange(-0.1, 0.1, 0)}, 'voltage')
runinfo.scan3 = ps.PropertyScan({'v4': ps.drange(-0.1, 0.1, 0)}, 'voltage', dt=dt)

if (num_devices > 4):
assert False, "num_devices > 4 not implemented in testing"
Expand Down Expand Up @@ -954,6 +954,38 @@ def check_load_expt(temp):
shutil.rmtree('./backup')


def test_runtime_w_dt():
"""
Testing 4D scan, measurement and loaded file
Returns
--------
None
"""

# set up experiment
expt = set_up_experiment(num_devices=4, measure_function=measure_up_to_3D, dt=.1)

# check the experiment was initialized correctly
check_expt_init(expt)

expt.check_runinfo()

# check the experiment run info was initialized successfully
check_expt_runinfo(expt)

# check the meta path was set successfully
check_meta_path(expt)

# run the experiment while also testing for expected runtime
st = time.time()
expt.run()
et = time.time()

runtime = et - st
assert 2 <= runtime <= 10, f"runtime was {runtime} for 4D_multi_data expt was not within expected range."


def test_1D_repeat():
"""
Testing 1D repeat scan, measurement and loaded file
Expand Down

0 comments on commit 3d20c7f

Please sign in to comment.