diff options
| author | Eddy Pedroni <eddy@0xf7.com> | 2022-06-01 19:20:10 +0200 | 
|---|---|---|
| committer | Eddy Pedroni <eddy@0xf7.com> | 2022-06-01 19:20:10 +0200 | 
| commit | 2cd5778d5b49a40206220b571a4d53009348967b (patch) | |
| tree | 02f83ff5261fdc6258542b85d12b2c846a49c0d4 /lab_control/test/frequency_response_measurement_test.py | |
| parent | 6b709f4423d132742207b5cf01a64f0707a77927 (diff) | |
Initial implementation of frequency response measurement
Diffstat (limited to 'lab_control/test/frequency_response_measurement_test.py')
| -rw-r--r-- | lab_control/test/frequency_response_measurement_test.py | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/lab_control/test/frequency_response_measurement_test.py b/lab_control/test/frequency_response_measurement_test.py new file mode 100644 index 0000000..caea62a --- /dev/null +++ b/lab_control/test/frequency_response_measurement_test.py @@ -0,0 +1,40 @@ +import pytest + +from lab_control.test.mock_lab import MockLab +from lab_control.frequency_response import FrequencyResponseMeasurement + +@pytest.fixture +def mockLab(): +    return MockLab() + +@pytest.fixture +def uut(mockLab): +    return FrequencyResponseMeasurement() + +def test_frequencyResponseRamp(mockLab, uut): +    uut.minFrequency = 100.0 +    uut.maxFrequency = 200.0 +    uut.steps = 11 +    uut.functionGeneratorChannel = 1 +    uut.oscilloscopeChannel = 1 + +    # Expect a ramp response from 0 to 2 V +    minAmplitude = 0.0 +    maxAmplitude = 2.0 + +    def amplitudeFunction(f: float) -> float: +        assert f >= uut.minFrequency and f <= uut.maxFrequency +        frequencyPu = (f - uut.minFrequency) / (uut.maxFrequency - uut.minFrequency) +        return minAmplitude + maxAmplitude * frequencyPu + +    mockLab.connectChannels(uut.functionGeneratorChannel, uut.oscilloscopeChannel) +    mockLab.setAmplitudeFunction(uut.oscilloscopeChannel, amplitudeFunction) +    expectedData = [(f, amplitudeFunction(f)) for f in [100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 170.0, 180.0, 190.0, 200.0]] + +    assert not uut.measurementDone +    assert uut.data == None +     +    response = uut.measure(mockLab, mockLab) + +    assert uut.measurementDone +    assert uut.data == expectedData | 
