diff --git a/Makefile b/Makefile index 5fca0b6755c375b790a0d8b46c1c7f83d7ea1bd1..e1850db72758ec250dae64e3da72007ec8002bab 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ bdist: @export PYTHONPATH=`pwd`/src:$(PYTHONPATH); python3 setup.py bdist_wheel test: - @export PYTHONPATH=`pwd`/src:$(PYTHONPATH); cd src/tests; py.test -x --log-level=INFO --no-cov-on-fail --cov-report=html . + @export PYTHONPATH=`pwd`/src:$(PYTHONPATH); cd src/tests; py.test -x --log-level=INFO --no-cov-on-fail --cov-fail-under=81 --cov-report=html . mypy: @export PYTHONPATH=`pwd`/src:$(PYTHONPATH); mypy src diff --git a/src/tests/test_analysis/test_cavity/test_finesse.py b/src/tests/test_analysis/test_cavity/test_finesse.py index 390ec34caae79f48e2f57ab821906c1c0fae9b53..99069dd770e1552b13f5ba86e3200df7879ce7d5 100644 --- a/src/tests/test_analysis/test_cavity/test_finesse.py +++ b/src/tests/test_analysis/test_cavity/test_finesse.py @@ -1,16 +1,17 @@ import unittest +from pathlib import Path import matplotlib.pyplot as plt from openqlab import io from openqlab.analysis.cavity import finesse +filedir = Path(__file__).parent + class TestFinesse(unittest.TestCase): def setUp(self): - self.data = io.read( - "test_analysis/test_cavity/opo_scan.csv", importer="KeysightCSV" - ) + self.data = io.read(f"{filedir}/opo_scan.csv", importer="KeysightCSV") plt.figure() def test_finesse_calculation(self): diff --git a/src/tests/test_analysis/test_cavity/test_linewidth.py b/src/tests/test_analysis/test_cavity/test_linewidth.py index 796ea40f7f6e8a872fc73d087bd1fa4cd4e71c2e..cdca200ca6588c2d766df8606fc47d7efa82a59e 100644 --- a/src/tests/test_analysis/test_cavity/test_linewidth.py +++ b/src/tests/test_analysis/test_cavity/test_linewidth.py @@ -1,3 +1,4 @@ +from pathlib import Path from unittest import TestCase import matplotlib.pyplot as plt @@ -5,10 +6,12 @@ import matplotlib.pyplot as plt from openqlab import io from openqlab.analysis.cavity import linewidth +filedir = Path(__file__).parent + class TestLinewidth(TestCase): def setUp(self): - base = "test_analysis/test_cavity/" + base = f"{filedir}/" data = io.read( [base + "linewidth_err.csv", base + "linewidth_aux.csv"], importer="KeysightCSV", diff --git a/src/tests/test_analysis/test_cavity/test_modematching.py b/src/tests/test_analysis/test_cavity/test_modematching.py index 1e3bebb79fb3157803e0b24aec24a2d18bbf9628..bcbb5bcb98d730d4a315056555b5a3db08ef0f00 100644 --- a/src/tests/test_analysis/test_cavity/test_modematching.py +++ b/src/tests/test_analysis/test_cavity/test_modematching.py @@ -1,16 +1,17 @@ import unittest +from pathlib import Path import matplotlib.pyplot as plt from openqlab import io from openqlab.analysis.cavity import modematching +filedir = Path(__file__).parent + class TestModematching(unittest.TestCase): def setUp(self): - self.data = io.read( - "test_analysis/test_cavity/opo_scan.csv", importer="KeysightCSV" - ) + self.data = io.read(f"{filedir}/opo_scan.csv", importer="KeysightCSV") plt.figure() def test_default_inverted(self): @@ -55,9 +56,7 @@ class TestModematching(unittest.TestCase): modematching(self.data["opo_scan_2"], without_main_peaks=True) def test_cropped_main_peak(self): - data = io.read( - "test_analysis/test_cavity/opo_scan_zoom.csv", importer="KeysightCSV" - ) + data = io.read(f"{filedir}/opo_scan_zoom.csv", importer="KeysightCSV") mm = modematching( data["opo_scan_zoom_2"].loc[0.0015:0.0155], offset=-0.015, diff --git a/src/tests/test_analysis/test_servo_design/test_servo_design.py b/src/tests/test_analysis/test_servo_design/test_servo_design.py index 54ed2331130c13c636b099c1b8ce3f7e8e864dd5..b3c0a2b16907e310b463ab30ec44415e0600d778 100644 --- a/src/tests/test_analysis/test_servo_design/test_servo_design.py +++ b/src/tests/test_analysis/test_servo_design/test_servo_design.py @@ -1,6 +1,7 @@ import logging as log import os import unittest +from pathlib import Path import jsonpickle import matplotlib as mp @@ -18,6 +19,8 @@ from openqlab.analysis.servo_design import ( ServoDesign, ) +filedir = Path(__file__).parent + class TestFilter(unittest.TestCase): def test_integrator(self): @@ -214,7 +217,7 @@ class TestServoDesign(unittest.TestCase): self.sd.plant = 8 columns = ["Gain (dB)", "Phase (deg)"] - fra = io.read("test_analysis/test_servo_design/fra_3.csv") + fra = io.read(f"{filedir}/fra_3.csv") self.sd.plant = fra self.assertListEqual(self.sd.plant.columns.tolist(), columns) @@ -253,7 +256,7 @@ class TestServoDesign(unittest.TestCase): def test_plot_with_plant(self): if self.display_available: self.sd.differentiator(390) - self.sd.plant = io.read("test_analysis/test_servo_design/fra_3.csv") + self.sd.plant = io.read(f"{filedir}/fra_3.csv") plt = self.sd.plot() self.assertIsInstance(plt, mp.figure.Figure) ax = plt.axes[0] @@ -267,7 +270,7 @@ class TestServoDesign(unittest.TestCase): columns = ["Servo A", "Servo P"] self.assertListEqual(df.columns.tolist(), columns) - self.sd.plant = io.read("test_analysis/test_servo_design/fra_3.csv") + self.sd.plant = io.read(f"{filedir}/fra_3.csv") df = self.sd.plot(plot=False) self.assertIsInstance(df, DataFrame) columns = ["Servo A", "Servo P", "Servo+TF A", "Servo+TF P"] @@ -321,7 +324,7 @@ class TestServoDesign(unittest.TestCase): ) def test_correct_latency(self): - self.sd.plant = io.read("test_analysis/test_servo_design/fra_3.csv") + self.sd.plant = io.read(f"{filedir}/fra_3.csv") df = self.sd.plot(plot=False, correct_latency=False) df_corrected = self.sd.plot(plot=False, correct_latency=True) columns = ["Servo A", "Servo P", "Servo+TF A", "Servo+TF P"] @@ -388,7 +391,7 @@ class TestServoDesign(unittest.TestCase): self.assertEqual(self.sd.__str__(), sd.__str__()) # Encode and decode with plant - fra = io.read("test_analysis/test_servo_design/fra_3.csv") + fra = io.read(f"{filedir}/fra_3.csv") self.sd.plant = fra sdjson = jsonpickle.encode(self.sd) sd = jsonpickle.decode(sdjson) diff --git a/src/tests/test_conversion/test_db/test_db.py b/src/tests/test_conversion/test_db/test_db.py new file mode 100644 index 0000000000000000000000000000000000000000..c016f835c7199ea6e700c643f29fc4c21c3b2346 --- /dev/null +++ b/src/tests/test_conversion/test_db/test_db.py @@ -0,0 +1,56 @@ +import unittest + +import numpy as np + +from openqlab.conversion import db + + +class TestModematching(unittest.TestCase): + def test_db_to_lin(self): + self.assertAlmostEqual(db.to_lin(20), 100) + self.assertAlmostEqual(db.to_lin(100), 1e10) + self.assertAlmostEqual(db.to_lin(3), 1.99526, places=5) + self.assertAlmostEqual(db.to_lin(0), 1) + self.assertAlmostEqual(db.to_lin(-20), 0.01) + self.assertAlmostEqual(db.to_lin(-100), 1e-10) + self.assertAlmostEqual(db.to_lin(-3), 0.501187, places=5) + self.assertAlmostEqual(db.to_lin(-0), 1) + + def test_lin_to_db(self): + self.assertAlmostEqual(db.from_lin(100), 20) + self.assertAlmostEqual(db.from_lin(1e10), 100) + self.assertAlmostEqual(db.from_lin(1.99526), 3, places=4) + self.assertAlmostEqual(db.from_lin(1), 0) + self.assertAlmostEqual(db.from_lin(0.01), -20) + self.assertAlmostEqual(db.from_lin(1e-10), -100) + self.assertAlmostEqual(db.from_lin(0.501187), -3, places=4) + + def test_mean(self): + lin_data = np.array([1, 2, 3, 4, 5, 6]) + db_data = db.from_lin(lin_data) + self.assertAlmostEqual(db.to_lin(db.mean(db_data)), 3.5) + + def test_subtract(self): + lin_data1 = np.array([5, 3, 1e4, 8, 5, 6]) + lin_data2 = np.array([1, 2, 1e3, 4, 4, 5]) + result = np.array([4, 1, 9e3, 4, 1, 1]) + + db_data1 = db.from_lin(lin_data1) + db_data2 = db.from_lin(lin_data2) + + np.testing.assert_array_almost_equal( + db.to_lin(db.subtract(db_data1, db_data2)), result, decimal=3 + ) + + def test_average(self): + lin_data = np.array([1, 2, 3, 4, 5, 6, 7]) + db_data = db.from_lin(lin_data) + self.assertAlmostEqual(db.to_lin(db.average(db_data)), 4) + + def test_dBm2Vrms(self): + dbm_data = np.array([0, 1, 3, 6, 10, 100, -3, -10]) + dbv_data = np.array( + [0.224, 0.251, 0.316, 0.446, 0.707, 22360.680, 0.158, 0.071] + ) + + np.testing.assert_array_almost_equal(db.dBm2Vrms(dbm_data), dbv_data, decimal=3) diff --git a/src/tests/test_gaussian_beam/test_fit_beam_data.py b/src/tests/test_gaussian_beam/test_fit_beam_data.py index 702a4bcdb05286e461760dc7fe00037afe00ee1b..9e0bd50a6bded1e6b40d8b63eda748f8a1835243 100644 --- a/src/tests/test_gaussian_beam/test_fit_beam_data.py +++ b/src/tests/test_gaussian_beam/test_fit_beam_data.py @@ -1,16 +1,17 @@ +from pathlib import Path from unittest import TestCase -import matplotlib.pyplot as plt import numpy as np -import pandas as pd from openqlab import io from openqlab.analysis.gaussian_beam import GaussianBeam, fit_beam_data +filedir = Path(__file__).parent + class TestFitBeamData(TestCase): def setUp(self): - self.data = io.read("./test_gaussian_beam/data.txt") + self.data = io.read(f"{filedir}/data.txt") self.data.index *= 1e-2 self.data *= 0.5e-6 diff --git a/src/tests/test_io/test___init__/test_read.py b/src/tests/test_io/test___init__/test_read.py index 1d9f68806d2ba632efe6bd9321cc84bc4dc41478..e5730a751fb517a11aa4fb150fbcb616d273ee51 100644 --- a/src/tests/test_io/test___init__/test_read.py +++ b/src/tests/test_io/test___init__/test_read.py @@ -5,14 +5,16 @@ from pathlib import Path import openqlab.io from openqlab.io.data_container import DataContainer +filedir = Path(__file__).parent + class TestRead(unittest.TestCase): """ Test files starting with a dot (".") will be ignored. """ - files_path = Path(r"test_io/test_importers/data_files") - gzip_files_path = Path(r"test_io/test___init__/gzip_data_files") + files_path = Path(fr"{filedir}/../test_importers/data_files") + gzip_files_path = Path(fr"{filedir}/gzip_data_files") @classmethod def setUpClass(cls): @@ -26,15 +28,19 @@ class TestRead(unittest.TestCase): cls.binary_files = [ Path( - r"test_io/test_importers/data_files/KeysightBinary/keysight_binary.bin" + fr"{filedir}/../test_importers/data_files/KeysightBinary/keysight_binary.bin" + ), + Path( + fr"{filedir}/../test_importers/data_files/TektronixSpectrogram/test2.mat" ), - Path(r"test_io/test_importers/data_files/TektronixSpectrogram/test2.mat"), ] cls.ignore_text_files = [ - Path(r"test_io/test_importers/data_files/KeysightFRA/scope_0_comma.csv"), Path( - r"test_io/test_importers/data_files/KeysightFRA/scope_1_semicolon.csv" + fr"{filedir}/../test_importers/data_files/KeysightFRA/scope_0_comma.csv" + ), + Path( + fr"{filedir}/../test_importers/data_files/KeysightFRA/scope_1_semicolon.csv" ), ] cls.text_files = [ diff --git a/src/tests/test_io/test___init__/test_reads.py b/src/tests/test_io/test___init__/test_reads.py index 9c17ff2e64a5c102f298dc1a185609ae080af65c..d5ac0aa6ae3897c9fefa6bb70696c6b4ca598f36 100644 --- a/src/tests/test_io/test___init__/test_reads.py +++ b/src/tests/test_io/test___init__/test_reads.py @@ -4,13 +4,15 @@ from pathlib import Path from openqlab import io from openqlab.io.data_container import DataContainer +filedir = Path(__file__).parent + class TestReads(unittest.TestCase): """ Test files starting with a dot (".") will be ignored. """ - files_path = Path(r"test_io/test_importers/data_files") + files_path = Path(fr"{filedir}/../test_importers/data_files") @classmethod def setUpClass(cls): @@ -22,15 +24,19 @@ class TestReads(unittest.TestCase): cls.binary_files = [ Path( - r"test_io/test_importers/data_files/KeysightBinary/keysight_binary.bin" + fr"{filedir}/../test_importers/data_files/KeysightBinary/keysight_binary.bin" + ), + Path( + fr"{filedir}/../test_importers/data_files/TektronixSpectrogram/test2.mat" ), - Path(r"test_io/test_importers/data_files/TektronixSpectrogram/test2.mat"), ] + list((cls.files_path / "Gwinstek_LSF").glob("*")) cls.ignore_text_files = [ - Path(r"test_io/test_importers/data_files/KeysightFRA/scope_0_comma.csv"), Path( - r"test_io/test_importers/data_files/KeysightFRA/scope_1_semicolon.csv" + fr"{filedir}/../test_importers/data_files/KeysightFRA/scope_0_comma.csv" + ), + Path( + fr"{filedir}/../test_importers/data_files/KeysightFRA/scope_1_semicolon.csv" ), ] cls.text_files = [ diff --git a/src/tests/test_io/test_data_container/test_data_container.py b/src/tests/test_io/test_data_container/test_data_container.py index 8dbcdb9ff181ef67705974084c35a7fb6b8a2986..9b41c9e90da863c5b8c268aff8405a0b70955025 100644 --- a/src/tests/test_io/test_data_container/test_data_container.py +++ b/src/tests/test_io/test_data_container/test_data_container.py @@ -1,5 +1,6 @@ import unittest from copy import deepcopy +from pathlib import Path import numpy as np import pandas as pd @@ -7,6 +8,9 @@ import pandas as pd from openqlab import io from openqlab.io.data_container import DataContainer, MetaDataContainer +filedir = Path(__file__).parent +datadir = f"{filedir}/../../ContainerTestData" + def print_wrapper(func): flag = False # change to True if results should be printed to console @@ -71,7 +75,7 @@ class TestDataContainer(unittest.TestCase): ) def test_plot_with_xUnit_and_subplots(self): - dc = io.read("./ContainerTestData/plot_test.csv") + dc = io.read(f"{datadir}/plot_test.csv") dc.columns = ["impulse", "error", "amplitude"] dc.plot(subplots=True, figsize=(8, 8), grid=True) @@ -1231,7 +1235,7 @@ class TestDataContainer(unittest.TestCase): yield result def test_csv(self): - filename = "ContainerTestData/TestCSV.csv" + filename = f"{datadir}/TestCSV.csv" self.base.to_csv(filename) result = DataContainer.from_csv(filename) self.assertIsInstance(result, DataContainer) @@ -1239,7 +1243,7 @@ class TestDataContainer(unittest.TestCase): self.assertEqual(result.header, self.header1) data = io.read( - "./ContainerTestData/SuccedingImport/SpectrumAnalyzer/RhodeSchwarz/2010830P_002" + f"{datadir}/SuccedingImport/SpectrumAnalyzer/RhodeSchwarz/2010830P_002" ) data.header = {} data.to_csv(filename) @@ -1249,7 +1253,7 @@ class TestDataContainer(unittest.TestCase): self.assertEquals(result.__repr__(), data.__repr__()) def test_json(self): - filename = "./ContainerTestData/TestCSV.csv" + filename = f"{datadir}/TestCSV.csv" self.base.to_json(filename) result = DataContainer.from_json(filename) self.assertIsInstance(result, DataContainer) @@ -1257,7 +1261,7 @@ class TestDataContainer(unittest.TestCase): self.assertEqual(result.header, self.header1) data = io.read( - "./ContainerTestData/SuccedingImport/SpectrumAnalyzer/RhodeSchwarz/2010830P_002" + f"{datadir}/SuccedingImport/SpectrumAnalyzer/RhodeSchwarz/2010830P_002" ) data.header = {} data.to_json(filename) diff --git a/src/tests/test_io/test_importers/test_ascii_header/test_ascii_header.py b/src/tests/test_io/test_importers/test_ascii_header/test_ascii_header.py index 2f519325c78d52f3ec235e423fd1d6dd24e0fe3e..5eee25303da4e6b29ac9d46d1891763e575acbdb 100644 --- a/src/tests/test_io/test_importers/test_ascii_header/test_ascii_header.py +++ b/src/tests/test_io/test_importers/test_ascii_header/test_ascii_header.py @@ -5,11 +5,14 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.ascii_header import ASCII_Header from openqlab.io.importers.utils import UnknownFileType +filedir = Path(__file__).parent +datadir = f"{filedir}/../data_files" + class TestASCII_Header(unittest.TestCase): importer = ASCII_Header - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/ASCII_Header") + files_path = Path(datadir) + supported_files_path = Path(fr"{datadir}/ASCII_Header") multiline_comment = "This is a multiline comment.\nIt continues at the next line.\nAnd another line\nwith newline." def read_file(self, file): diff --git a/src/tests/test_io/test_importers/test_data_container_csv/test_data_container_csv.py b/src/tests/test_io/test_importers/test_data_container_csv/test_data_container_csv.py index 890d04adc6fe9f96d6f6aa1da3955e42f7c8901e..7cb8f831bdc9bcc8f0897a972d168fbf20076673 100644 --- a/src/tests/test_io/test_importers/test_data_container_csv/test_data_container_csv.py +++ b/src/tests/test_io/test_importers/test_data_container_csv/test_data_container_csv.py @@ -7,11 +7,14 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.data_container_csv import DataContainerCSV from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent +datadir = f"{filedir}/../data_files" + class TestDataContainerCSV(unittest.TestCase): importer = DataContainerCSV - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/DataContainerCSV") + files_path = Path(datadir) + supported_files_path = Path(fr"{datadir}/DataContainerCSV") def read_file(self, file): try: diff --git a/src/tests/test_io/test_importers/test_gwinstek/test_gwinstek.py b/src/tests/test_io/test_importers/test_gwinstek/test_gwinstek.py index 0938f6071a2b8f9bb1e6fda279e20603de0a0fad..447eb95aedd2b85064df919164e274192a43e599 100644 --- a/src/tests/test_io/test_importers/test_gwinstek/test_gwinstek.py +++ b/src/tests/test_io/test_importers/test_gwinstek/test_gwinstek.py @@ -7,11 +7,14 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.gwinstek import Gwinstek from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent +datadir = f"{filedir}/../data_files" + class TestGwinstek(unittest.TestCase): importer = Gwinstek - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/Gwinstek") + files_path = Path(datadir) + supported_files_path = Path(fr"{datadir}/Gwinstek") def read_file(self, file): try: @@ -52,8 +55,8 @@ class TestGwinstek(unittest.TestCase): def test_missing_data(self): files = [ - r"test_io/test_importers/test_gwinstek/missing_data.csv", - r"test_io/test_importers/test_gwinstek/missing_data_1.csv", + fr"{filedir}/missing_data.csv", + fr"{filedir}/missing_data_1.csv", ] for file in files: try: @@ -63,7 +66,7 @@ class TestGwinstek(unittest.TestCase): raise AssertionError(f"{file} did not raise {EmptyDataError}") from e def test_wrong_savemode(self): - file = r"test_io/test_importers/test_gwinstek/wrong_savemode.csv" + file = fr"{filedir}/wrong_savemode.csv" try: with self.assertRaises(ImportFailed): self.read_file(file) @@ -71,7 +74,7 @@ class TestGwinstek(unittest.TestCase): raise AssertionError(f"{file} did not raise {ImportFailed}") from e def test_missing_savemode(self): - file = r"test_io/test_importers/test_gwinstek/missing_savemode.csv" + file = fr"{filedir}/missing_savemode.csv" try: with self.assertRaises(ImportFailed): self.read_file(file) diff --git a/src/tests/test_io/test_importers/test_gwinstek_LSF/test_gwinstek_LSF.py b/src/tests/test_io/test_importers/test_gwinstek_LSF/test_gwinstek_LSF.py index 2f171752264cec66563dbc779271edeb3ecb9d6c..36c0d6507d1e3c3aee22dc092e914092f6700658 100644 --- a/src/tests/test_io/test_importers/test_gwinstek_LSF/test_gwinstek_LSF.py +++ b/src/tests/test_io/test_importers/test_gwinstek_LSF/test_gwinstek_LSF.py @@ -7,11 +7,14 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.gwinstek_lsf import Gwinstek_LSF from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent +datadir = f"{filedir}/../data_files" + class TestGwinstek_LSF(unittest.TestCase): importer = Gwinstek_LSF - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/Gwinstek_LSF") + files_path = Path(datadir) + supported_files_path = Path(fr"{datadir}/Gwinstek_LSF") def read_file(self, file): try: diff --git a/src/tests/test_io/test_importers/test_hp4395a/test_hp4395a.py b/src/tests/test_io/test_importers/test_hp4395a/test_hp4395a.py index 81ec2b988d20f8be4ebd80a3c9c9147805b9357e..38a897844b215330a487d1c0552c54ef02d7753c 100644 --- a/src/tests/test_io/test_importers/test_hp4395a/test_hp4395a.py +++ b/src/tests/test_io/test_importers/test_hp4395a/test_hp4395a.py @@ -8,11 +8,13 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.hp4395a import HP4395A from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent + class TestHP4395A(unittest.TestCase): importer = HP4395A - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/HP4395A") + files_path = Path(f"{filedir}/../data_files") + supported_files_path = Path(fr"{files_path}/HP4395A") def read_file(self, file): try: @@ -49,7 +51,7 @@ class TestHP4395A(unittest.TestCase): raise AssertionError(f"{file} did not raise {UnknownFileType}") from e def test_missing_data(self): - files = [r"test_io/test_importers/test_hp4395a/missing_data.txt"] + files = [fr"{filedir}/missing_data.txt"] for file in files: try: with self.assertRaises(EmptyDataError): diff --git a/src/tests/test_io/test_importers/test_keysight_binary/test_keysight_binary.py b/src/tests/test_io/test_importers/test_keysight_binary/test_keysight_binary.py index 1f27f8b38ab05f66a8beb9ca1a33a9eeccd97d51..06833973ed704a7ceed2a863709744503ef5723e 100644 --- a/src/tests/test_io/test_importers/test_keysight_binary/test_keysight_binary.py +++ b/src/tests/test_io/test_importers/test_keysight_binary/test_keysight_binary.py @@ -6,11 +6,13 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.keysight_binary import KeysightBinary from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent + class TestKeysightBinary(unittest.TestCase): importer = KeysightBinary - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/KeysightBinary") + files_path = Path(fr"{filedir}/../data_files") + supported_files_path = Path(fr"{files_path}/KeysightBinary") def read_file(self, file): try: diff --git a/src/tests/test_io/test_importers/test_keysight_csv/test_keysight_csv.py b/src/tests/test_io/test_importers/test_keysight_csv/test_keysight_csv.py index 59ee8382be6bc8538f9bb8ec375e8e3665c63922..a0d1305fdf88477a45bab5975ce53c40d6b4e79b 100644 --- a/src/tests/test_io/test_importers/test_keysight_csv/test_keysight_csv.py +++ b/src/tests/test_io/test_importers/test_keysight_csv/test_keysight_csv.py @@ -8,11 +8,13 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.keysight_csv import KeysightCSV from openqlab.io.importers.utils import UnknownFileType +filedir = Path(__file__).parent + class TestKeysightCSV(unittest.TestCase): importer = KeysightCSV - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/KeysightCSV") + files_path = Path(fr"{filedir}/../data_files") + supported_files_path = Path(fr"{files_path}/KeysightCSV") def read_file(self, file): try: @@ -49,7 +51,7 @@ class TestKeysightCSV(unittest.TestCase): raise AssertionError(f"{file} did not raise {UnknownFileType}") from e def test_missing_data(self): - file = r"test_io/test_importers/test_keysight_csv/missing_data.csv" + file = fr"{filedir}/missing_data.csv" try: with self.assertRaises(EmptyDataError): self.read_file(file) diff --git a/src/tests/test_io/test_importers/test_keysight_fra/test_keysight_fra.py b/src/tests/test_io/test_importers/test_keysight_fra/test_keysight_fra.py index b5147eb1ab59b210d280dd1ce61c85b71f6ac990..6fed903bc0b2115dd481e05637b787d31b7e7163 100644 --- a/src/tests/test_io/test_importers/test_keysight_fra/test_keysight_fra.py +++ b/src/tests/test_io/test_importers/test_keysight_fra/test_keysight_fra.py @@ -6,11 +6,13 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.keysight_fra import KeysightFRA from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent + class TestKeysightFRA(unittest.TestCase): importer = KeysightFRA - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/KeysightFRA") + files_path = Path(fr"{filedir}/../data_files") + supported_files_path = Path(fr"{files_path}/KeysightFRA") def read_file(self, file): try: @@ -47,7 +49,7 @@ class TestKeysightFRA(unittest.TestCase): raise AssertionError(f"{file} did not raise {UnknownFileType}") from e def test_missing_data(self): - file = Path(r"test_io/test_importers/test_keysight_fra/missing_data.csv") + file = Path(fr"{filedir}/missing_data.csv") try: with self.assertRaises(ImportFailed): self.read_file(file) diff --git a/src/tests/test_io/test_importers/test_rhode_schwarz/test_rhode_schwarz.py b/src/tests/test_io/test_importers/test_rhode_schwarz/test_rhode_schwarz.py index a9723763c000770f1cd38eddd23cc2773f6124a4..15275ea1f047728b3501d15ee3e573c66ed3aea7 100644 --- a/src/tests/test_io/test_importers/test_rhode_schwarz/test_rhode_schwarz.py +++ b/src/tests/test_io/test_importers/test_rhode_schwarz/test_rhode_schwarz.py @@ -6,11 +6,13 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.rhode_schwarz import RhodeSchwarz from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent + class TestRhodeSchwarz(unittest.TestCase): importer = RhodeSchwarz - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/RhodeSchwarz") + files_path = Path(fr"{filedir}/../data_files") + supported_files_path = Path(fr"{files_path}/RhodeSchwarz") def read_file(self, file): try: @@ -49,7 +51,7 @@ class TestRhodeSchwarz(unittest.TestCase): raise AssertionError(f"{file} did not raise {UnknownFileType}") from e def test_missing_data(self): - file = Path(r"test_io/test_importers/test_rhode_schwarz/missing_data.csv") + file = Path(fr"{filedir}/missing_data.csv") try: with self.assertRaises(ImportFailed): self.read_file(file) @@ -57,7 +59,7 @@ class TestRhodeSchwarz(unittest.TestCase): raise AssertionError(f"{file} did not raise {ImportFailed}") from e def test_missing_xUnit(self): - file = Path(r"test_io/test_importers/test_rhode_schwarz/missing_xUnit") + file = Path(fr"{filedir}/missing_xUnit") data = self.read_file(file) self.assertEqual("x", data.index.name) diff --git a/src/tests/test_io/test_importers/test_tektronix/test_tektronix.py b/src/tests/test_io/test_importers/test_tektronix/test_tektronix.py index e9b9b64140d4109b71e3c6ac015b42df5bd700d4..13574cfcf23fd41ac89303a03374429edb62d42b 100644 --- a/src/tests/test_io/test_importers/test_tektronix/test_tektronix.py +++ b/src/tests/test_io/test_importers/test_tektronix/test_tektronix.py @@ -6,11 +6,13 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.tektronix import Tektronix from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent + class TestTektronix(unittest.TestCase): importer = Tektronix - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/Tektronix") + files_path = Path(fr"{filedir}/../data_files") + supported_files_path = Path(fr"{files_path}/Tektronix") def read_file(self, file): try: @@ -47,18 +49,18 @@ class TestTektronix(unittest.TestCase): raise AssertionError(f"{file} did not raise {UnknownFileType}") from e def test_missing_data(self): - file = r"test_io/test_importers/test_tektronix/missing_data.csv" + file = fr"{filedir}/missing_data.csv" with self.assertRaises(ImportFailed): data = self.importer(file).read() def test_wrong_number_points(self): - file = r"test_io/test_importers/test_tektronix/wrong_number_points.csv" + file = fr"{filedir}/wrong_number_points.csv" error_message = f"'Tektronix' importer: Number of points does not fit number of values in file '{file}'." with self.assertRaisesRegex(ImportFailed, error_message): self.importer(file).read() def test_different_frequency_axis(self): - file = r"test_io/test_importers/test_tektronix/different_frequency_axis.csv" + file = fr"{filedir}/different_frequency_axis.csv" error_message = f"'Tektronix' importer: Traces in file '{file}' do not have equal frequency axis." with self.assertRaisesRegex(ImportFailed, error_message): self.importer(file).read() diff --git a/src/tests/test_io/test_importers/test_tektronix_dpx/test_tektronix_dpx.py b/src/tests/test_io/test_importers/test_tektronix_dpx/test_tektronix_dpx.py index a7320d1f401e723d1afe96dec0f48f5e5429f36c..fe3ae4728271f2d01c7ee1a25f5465ea5030249f 100644 --- a/src/tests/test_io/test_importers/test_tektronix_dpx/test_tektronix_dpx.py +++ b/src/tests/test_io/test_importers/test_tektronix_dpx/test_tektronix_dpx.py @@ -6,11 +6,13 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.tektronix_dpx import TektronixDPX from openqlab.io.importers.utils import ImportFailed, UnknownFileType +filedir = Path(__file__).parent + class TestTektronix(unittest.TestCase): importer = TektronixDPX - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path(r"test_io/test_importers/data_files/TektronixDPX") + files_path = Path(fr"{filedir}/../data_files") + supported_files_path = Path(fr"{files_path}/TektronixDPX") def read_file(self, file): try: diff --git a/src/tests/test_io/test_importers/test_tektronix_spectrogram/test_tektronix_spectrogram.py b/src/tests/test_io/test_importers/test_tektronix_spectrogram/test_tektronix_spectrogram.py index 75552dbbffcf15f4cebddabdb7a7388d73a0c536..4f9298208ce8a981a07b605ad2663558bd814657 100644 --- a/src/tests/test_io/test_importers/test_tektronix_spectrogram/test_tektronix_spectrogram.py +++ b/src/tests/test_io/test_importers/test_tektronix_spectrogram/test_tektronix_spectrogram.py @@ -6,13 +6,13 @@ from openqlab.io.data_container import DataContainer from openqlab.io.importers.tektronix_spectrogram import TektronixSpectrogram from openqlab.io.importers.utils import UnknownFileType +filedir = Path(__file__).parent + class TestTekSpectrogram(unittest.TestCase): importer = TektronixSpectrogram - files_path = Path(r"test_io/test_importers/data_files") - supported_files_path = Path( - r"test_io/test_importers/data_files/TektronixSpectrogram" - ) + files_path = Path(fr"{filedir}/../data_files") + supported_files_path = Path(fr"{files_path}/TektronixSpectrogram") def read_file(self, file): try: diff --git a/src/tests/test_plots/test_plots.py b/src/tests/test_plots/test_plots.py index 501adcd189a0a0b213cbc8f961b3f3c2c0ccee80..e36188f7abaad549a3e50956e76891742fc8808e 100644 --- a/src/tests/test_plots/test_plots.py +++ b/src/tests/test_plots/test_plots.py @@ -1,4 +1,5 @@ import unittest +from pathlib import Path import matplotlib import matplotlib.pyplot as plt @@ -7,12 +8,15 @@ from numpy import array_equal from openqlab import io, plots from openqlab.plots.frequency_domain import amplitude_phase, relative_input_noise +filedir = Path(__file__).parent +datadir = Path(f"{filedir}/../ContainerTestData/SuccedingImport") + class TestRIN(unittest.TestCase): def setUp(self): files = [] for i in range(1, 4): - files.append(f"./ContainerTestData/SuccedingImport/ASCII/flipper{i}.TXT") + files.append(f"{datadir}/ASCII/flipper{i}.TXT") self.data = io.read(files) def test_default_values(self): @@ -45,9 +49,7 @@ class TestRIN(unittest.TestCase): class TestAmplitudePhase(unittest.TestCase): def setUp(self): - self.data = io.read( - r"./ContainerTestData/SuccedingImport/Oscilloscope/KeysightFra/scope_0.csv" - ) + self.data = io.read(fr"{datadir}/Oscilloscope/KeysightFra/scope_0.csv") def test_default_plot(self): plot = amplitude_phase(self.data["Gain (dB)"], self.data["Phase (deg)"]) @@ -60,9 +62,7 @@ class TestAmplitudePhase(unittest.TestCase): class TestTimeDomain(unittest.TestCase): def setUp(self): - self.data = io.read( - r"./ContainerTestData/SuccedingImport/Oscilloscope/Keysight/20180606_001.csv" - ) + self.data = io.read(fr"{datadir}/Oscilloscope/Keysight/20180606_001.csv") def test_default_plot(self): fig = plots.scope(self.data)