|
2 | 2 | import os
|
3 | 3 | import unittest
|
4 | 4 | import uuid
|
| 5 | +from pathlib import Path |
5 | 6 |
|
6 | 7 | import bluesky.plan_stubs as bps
|
7 | 8 | import bluesky.plans as bp
|
| 9 | +import matplotlib |
8 | 10 | from bluesky.callbacks import LiveTable
|
| 11 | +from ibex_bluesky_core.callbacks.fitting.fitting_utils import Linear |
9 | 12 | from bluesky.preprocessors import subs_decorator
|
10 | 13 | from bluesky.run_engine import RunEngine, RunEngineResult
|
11 | 14 | from genie_python import genie as g # type: ignore
|
| 15 | +from ibex_bluesky_core.callbacks import ISISCallbacks |
12 | 16 | from ibex_bluesky_core.devices import get_pv_prefix
|
13 | 17 | from ibex_bluesky_core.devices.block import block_r, block_rw_rbv
|
14 | 18 | from ibex_bluesky_core.devices.simpledae import SimpleDae
|
|
30 | 34 | set_genie_python_raises_exceptions,
|
31 | 35 | )
|
32 | 36 |
|
| 37 | +matplotlib.use("qtagg") |
33 | 38 | RE: RunEngine = get_run_engine()
|
34 | 39 |
|
35 | 40 | P3_INIT_VALUE: float = 123.456
|
@@ -147,6 +152,28 @@ def _plan():
|
147 | 152 | self.assertTrue(any("| 123.456 | -10.00000 |" in line for line in livetable_lines))
|
148 | 153 | self.assertTrue(any("| 123.456 | 10.00000 |" in line for line in livetable_lines))
|
149 | 154 |
|
| 155 | + def test_scan_with_standard_callbacks(self) -> None: |
| 156 | + icc = ISISCallbacks(x="p5", y="p3", |
| 157 | + fit=Linear().fit(), |
| 158 | + human_readable_file_output_dir=Path(LOG_FOLDER) / "output_files", |
| 159 | + live_fit_logger_output_dir=Path(LOG_FOLDER) / "fitting") |
| 160 | + |
| 161 | + @icc |
| 162 | + def _plan(): |
| 163 | + p3 = block_r(float, "p3") |
| 164 | + p5 = block_rw_rbv(float, "p5") |
| 165 | + yield from ensure_connected(p3, p5) |
| 166 | + yield from bp.scan([p3], p5, -10, 10, num=10) |
| 167 | + |
| 168 | + RE(_plan()) |
| 169 | + |
| 170 | + input() |
| 171 | + |
| 172 | + self.assertAlmostEqual(icc.peak_stats['com'], 0) |
| 173 | + print(icc.live_fit.result.params['c0']) |
| 174 | + print(icc.live_fit.result.fit_report()) |
| 175 | + self.assertAlmostEqual(icc.live_fit.result.params['c0'], P3_INIT_VALUE) |
| 176 | + |
150 | 177 | def test_count_simple_dae(self) -> None:
|
151 | 178 | start_run_number = int(g.get_runnumber())
|
152 | 179 |
|
|
0 commit comments