from pathlib import Path import numpy as np from pytestqt.qt_compat import qt_api from .utils import setup_gui, defaultParams def test_image_acq(main, qtbot, tmp_path): """ tests Analog image acquisition and numpy saving """ params = defaultParams() params.detector = "Moench04" params.mode = "Analog" params.enabled = list(range(32)) setup_gui(qtbot, main, params, tmp_path=tmp_path) qtbot.mouseClick(main.pushButtonStart, qt_api.QtCore.Qt.MouseButton.LeftButton) acqIndex = main.acquisitionTab.view.spinBoxAcquisitionIndex.value() - 1 newPath = main.acquisitionTab.outputDir / f'{main.acquisitionTab.outputFileNamePrefix}_{acqIndex}.npy' qtbot.wait_until(lambda: newPath.is_file()) testArray = np.load(newPath) dataArray = np.load(Path(__file__).parent / 'data' / 'moench04_image_analog.npy') assert testArray.shape == (1, 400, 400) assert np.array_equal(dataArray, testArray) def test_waveform_acq(main, qtbot, tmp_path): """ tests Analog waveform acquisition and numpy saving """ params = defaultParams() params.image = False params.detector = "Moench04" params.mode = "Analog" params.enabled = list(range(32)) params.plotted = params.enabled setup_gui(qtbot, main, params, tmp_path=tmp_path) qtbot.mouseClick(main.pushButtonStart, qt_api.QtCore.Qt.MouseButton.LeftButton) acqIndex = main.acquisitionTab.view.spinBoxAcquisitionIndex.value() - 1 newPath = main.acquisitionTab.outputDir / f'{main.acquisitionTab.outputFileNamePrefix}_{acqIndex}.npz' qtbot.wait_until(lambda: newPath.is_file()) testArray = np.load(newPath) dataArray = np.load(Path(__file__).parent / 'data' / 'moench04_waveform_adc.npz') files = [f"ADC{i}" for i in params.enabled] assert testArray.files == files for i in files: assert np.array_equal(dataArray[i], testArray[i])