summaryrefslogtreecommitdiffstats
path: root/lab_control/test/frequency_response_test.py
diff options
context:
space:
mode:
authorEddy Pedroni <eddy@0xf7.com>2022-06-05 16:54:51 +0200
committerEddy Pedroni <eddy@0xf7.com>2022-06-05 16:54:51 +0200
commitd35cd475954cde1bf902c438fb034fdc7ab50a00 (patch)
tree4f3c87e22f138d03ec8f54f0166afcb2e4d8304a /lab_control/test/frequency_response_test.py
parentd37252c9b6044ce540db54e8b480a85dfc1ec25d (diff)
File rename
Diffstat (limited to 'lab_control/test/frequency_response_test.py')
-rw-r--r--lab_control/test/frequency_response_test.py86
1 files changed, 0 insertions, 86 deletions
diff --git a/lab_control/test/frequency_response_test.py b/lab_control/test/frequency_response_test.py
deleted file mode 100644
index eb7d0d0..0000000
--- a/lab_control/test/frequency_response_test.py
+++ /dev/null
@@ -1,86 +0,0 @@
-import pytest
-
-from lab_control.test.mock.mock_lab import MockLab
-from lab_control.frequency_response import FrequencyResponseMeasurement
-from lab_control.measurement import getLinearRange
-from lab_control.function_generator import FunctionGenerator
-
-@pytest.fixture
-def mockLab():
- return MockLab()
-
-@pytest.fixture
-def uut(mockLab):
- return FrequencyResponseMeasurement()
-
-def prepareRampResponse(uut, mockLab):
- # Expect a ramp response from 0.5 to 1.5 * input amplitude
- minScale = 0.5
- maxScale = 1.5
-
- def testFunction(f: float) -> float:
- assert f >= uut.minFrequency and f <= uut.maxFrequency
- frequencyPu = (f - uut.minFrequency) / (uut.maxFrequency - uut.minFrequency)
- return minScale + maxScale * frequencyPu
-
- mockLab.connectChannels(uut.functionGeneratorChannel, uut.oscilloscopeChannel)
- mockLab.setTestFunction(uut.oscilloscopeChannel, testFunction)
-
- return [(f, testFunction(f) * uut.inputAmplitude) for f in getLinearRange(uut.minFrequency, uut.maxFrequency, uut.steps)]
-
-def test_frequencyResponseDefaults(uut):
- assert uut.minFrequency == 20e0
- assert uut.maxFrequency == 16e3
- assert uut.steps == 50
- assert uut.inputAmplitude == 0.1
- assert uut.functionGeneratorChannel == 1
- assert uut.oscilloscopeChannel == 1
-
-def test_frequencyResponseRamp(uut, mockLab):
- uut.minFrequency = 100.0
- uut.maxFrequency = 200.0
- uut.steps = 11
- uut.functionGeneratorChannel = 1
- uut.oscilloscopeChannel = 1
- uut.inputAmplitude = 2.0
-
- fg = mockLab.getFunctionGeneratorChannel(uut.functionGeneratorChannel)
- osc = mockLab.getOscilloscopeChannel(uut.oscilloscopeChannel)
-
- expectedData = prepareRampResponse(uut, mockLab)
-
- assert fg.amplitude is None
- assert fg.function is None
- assert not fg.on
- assert osc.voltsPerDiv is None
- assert not uut.measurementDone
- assert uut.data is None
-
- uut.measure(mockLab, mockLab)
-
- assert fg.amplitude == uut.inputAmplitude
- assert fg.function == FunctionGenerator.SINE
- assert fg.on
- assert osc.voltsPerDiv == uut.inputAmplitude / (mockLab.getDivisionsDisplayed() - 2)
- assert uut.measurementDone
- assert uut.data == expectedData
-
-def test_dumpToCSV(uut, mockLab, tmp_path):
- uut.minFrequency = 10.0
- uut.maxFrequency = 30.0
- uut.steps = 5
- csv = tmp_path / "data.csv"
-
- assert not csv.exists()
- uut.dumpToCSV(csv)
- assert not csv.exists()
-
- expectedData = prepareRampResponse(uut, mockLab)
- uut.measure(mockLab, mockLab)
-
- uut.dumpToCSV(csv)
- savedData = csv.read_text().split("\n")
-
- assert savedData[0] == "Frequency (Hz),Amplitude (V)"
- for i, l in enumerate(savedData[1:]):
- assert l == f"{expectedData[i][0]},{expectedData[i][1]}"