From 0f4a4c0c5ba8d89aa3628df8f219f4f670bce6a5 Mon Sep 17 00:00:00 2001 From: MarJMue <49639740+MarJMue@users.noreply.github.com> Date: Mon, 1 Sep 2025 20:56:16 +0200 Subject: [PATCH 1/3] Woollam: Fix importer regex for negative deltas --- src/elli/importer/woollam.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elli/importer/woollam.py b/src/elli/importer/woollam.py index 78ab66c4..ac350026 100644 --- a/src/elli/importer/woollam.py +++ b/src/elli/importer/woollam.py @@ -46,7 +46,7 @@ def _is_wvase_tabular(line: str) -> bool: Returns: bool: True if the line is in wvase tabular layout. """ - return bool(re.search(r"^(\d*\.\d*\s+){5}\d*\.\d*$", line)) + return bool(re.search(r"^(-?\d*\.\d*\s+){5}\d*\.\d*$", line)) def _is_complete_ease_tabular(line: str) -> bool: From abf1f2df714c2fc898816546288b4451a4a6d657 Mon Sep 17 00:00:00 2001 From: MarJMue <49639740+MarJMue@users.noreply.github.com> Date: Mon, 1 Sep 2025 20:57:13 +0200 Subject: [PATCH 2/3] Woollam: read first data line of file --- src/elli/importer/woollam.py | 3 +-- tests/test_wollam.py | 10 +++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/elli/importer/woollam.py b/src/elli/importer/woollam.py index ac350026..f0d08623 100644 --- a/src/elli/importer/woollam.py +++ b/src/elli/importer/woollam.py @@ -181,11 +181,9 @@ def read_woollam_psi_delta(fname: str) -> pd.DataFrame: line = fobj.readline() while line: if _is_wvase_tabular(line): - line_number = fobj.tell() file_format = "wvase" break if _is_complete_ease_tabular(line): - line_number = fobj.tell() file_format = "complete_ease" break if _is_tan_cos_format(line): @@ -194,6 +192,7 @@ def read_woollam_psi_delta(fname: str) -> pd.DataFrame: "Please try using wvase's psi/delta format." ) metadata.append(line) + line_number = fobj.tell() line = fobj.readline() fobj.seek(line_number) diff --git a/tests/test_wollam.py b/tests/test_wollam.py index 7e667fa7..a9e4e131 100644 --- a/tests/test_wollam.py +++ b/tests/test_wollam.py @@ -15,9 +15,9 @@ def test_reading_of_psi_delta_woollam(datadir): ) data_cease = elli.read_woollam_psi_delta(datadir / "complete_ease_example.dat") - assert data_wvase.shape == (542, 2) - assert data_wvase_wo_dpolE.shape == (542, 2) - assert data_cease.shape == (3263, 2) + assert data_wvase.shape == (543, 2) + assert data_wvase_wo_dpolE.shape == (543, 2) + assert data_cease.shape == (3264, 2) # pylint: disable=redefined-outer-name @@ -26,8 +26,8 @@ def test_reading_and_conv_to_woollam(datadir): data_wvase = elli.read_woollam_rho(datadir / "wvase_example.dat") data_cease = elli.read_woollam_rho(datadir / "complete_ease_example.dat") - assert data_wvase.shape == (542,) - assert data_cease.shape == (3263,) + assert data_wvase.shape == (543,) + assert data_cease.shape == (3264,) # pylint: disable=redefined-outer-name From 198e5ce05d7ef3b77acb0d9d9fa8f10ab873dbed Mon Sep 17 00:00:00 2001 From: domna Date: Sun, 7 Sep 2025 15:03:31 +0200 Subject: [PATCH 3/3] Add wavelength boundary check --- tests/test_wollam.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/test_wollam.py b/tests/test_wollam.py index a9e4e131..6fb0129f 100644 --- a/tests/test_wollam.py +++ b/tests/test_wollam.py @@ -2,6 +2,7 @@ import pytest from fixtures import datadir # pylint: disable=unused-import +from numpy.testing import assert_almost_equal import elli @@ -27,7 +28,11 @@ def test_reading_and_conv_to_woollam(datadir): data_cease = elli.read_woollam_rho(datadir / "complete_ease_example.dat") assert data_wvase.shape == (543,) + assert data_wvase.index.get_level_values(1)[0] == 300 + assert data_wvase.index.get_level_values(1)[-1] == 1200 assert data_cease.shape == (3264,) + assert_almost_equal(data_cease.index.get_level_values(1)[0], 193) + assert_almost_equal(data_cease.index.get_level_values(1)[-1], 1700) # pylint: disable=redefined-outer-name