Skip to content

Commit fd28cc8

Browse files
authored
Merge pull request #44 from BAMresearch/fix_unit_tests
Fix unit tests
2 parents d0e1f3a + 98f9389 commit fd28cc8

File tree

2 files changed

+24
-42
lines changed

2 files changed

+24
-42
lines changed

src/modacor/tests/test_basedata.py

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@
88
from ..dataclasses.basedata import BaseData # adjust the import path as needed
99

1010

11-
# Create a dummy client to use as the data_source
12-
class DummyClient:
13-
pass
14-
15-
1611
@pytest.fixture
1712
def sample_data():
1813
return np.arange(5)
@@ -21,29 +16,19 @@ def sample_data():
2116
def test_data_and_display_data_properties(sample_data):
2217
# Create an instance of BaseData with test values
2318
bd = BaseData(
24-
ingest_units=ureg.m, # meters
25-
internal_units=ureg.m, # meters
26-
display_units=ureg.cm, # centimeters
27-
data_source=DummyClient(),
28-
raw_data=sample_data,
19+
signal_units=ureg.m, # meters
20+
signal=sample_data,
2921
normalization=np.ones_like(sample_data) * 2,
3022
# uncertainties=[], # empty list for uncertainties
3123
# scalar=2.0,
3224
# scalar_uncertainty=0.1,
33-
provenance=[], # empty provenance
3425
rank_of_data=1, # valid since sample_data.ndim is 1
3526
)
3627

3728
# Test the 'data' property
38-
expected_data = sample_data * 2.0
29+
expected_data = sample_data / 2.0
3930
# Here we check that the computed values match the expected ones.
40-
assert (bd.data == expected_data).all(), "data property did not apply the scalar correctly."
41-
42-
# Test the 'display_data' property
43-
# The conversion from meters to centimeters yields a factor of 100.
44-
conversion_factor = (1 * ureg.Unit("m")).to("cm").magnitude # should be 100.0
45-
expected_display = sample_data * 2.0 * conversion_factor
46-
assert (bd.display_data == expected_display).all(), "display_data property did not convert units correctly."
31+
assert (bd.mean() == expected_data).all(), "data property did not apply the scalar correctly."
4732

4833

4934
def test_rank_validation_exceeds_ndim():
@@ -53,15 +38,11 @@ def test_rank_validation_exceeds_ndim():
5338
# Attempting to set rank_of_data=3 (while arr.ndim is 2) should raise a ValueError.
5439
with pytest.raises(ValueError) as exc_info:
5540
BaseData(
56-
ingest_units=ureg.m,
57-
internal_units=ureg.m,
58-
display_units=ureg.cm,
59-
data_source=DummyClient(),
60-
raw_data=arr,
41+
signal_units=ureg.m,
42+
signal=arr,
6143
# uncertainties=[],
6244
# scalar=1.0,
6345
# scalar_uncertainty=0.0,
64-
provenance=[],
6546
rank_of_data=3, # invalid, since 3 > arr.ndim (2)
6647
)
67-
assert "cannot exceed the dimensionality of internal_data" in str(exc_info.value)
48+
assert "cannot exceed the dimensionality of signal" in str(exc_info.value)

src/modacor/tests/test_variance_calculations.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import numpy as np
1010

1111
from ..math import variance_calculations as varc
12+
from uncertainties import unumpy
1213

1314
samples = 1000
1415

@@ -30,14 +31,14 @@ def test_add():
3031
y = generate_samples(samples)
3132
dy = generate_error(y, add_zero_errors=True)
3233

33-
u_x = uarray(x, dx)
34-
u_y = uarray(y, dy)
34+
u_x = unumpy.uarray(x, dx)
35+
u_y = unumpy.uarray(y, dy)
3536
expected = u_x + u_y
3637

3738
result, variances = varc.add(x, dx**2, y, dy**2)
3839

39-
assert np.allclose(result, nominal_values(expected))
40-
assert np.allclose(variances, std_devs(expected) ** 2)
40+
assert np.allclose(result, unumpy.nominal_values(expected))
41+
assert np.allclose(variances, unumpy.std_devs(expected) ** 2)
4142

4243

4344
def test_subtract():
@@ -46,14 +47,14 @@ def test_subtract():
4647
y = generate_samples(samples)
4748
dy = generate_error(y, add_zero_errors=True)
4849

49-
u_x = uarray(x, dx)
50-
u_y = uarray(y, dy)
50+
u_x = unumpy.uarray(x, dx)
51+
u_y = unumpy.uarray(y, dy)
5152
expected = u_x - u_y
5253

5354
result, variances = varc.subtract(x, dx**2, y, dy**2)
5455

55-
assert np.allclose(result, nominal_values(expected))
56-
assert np.allclose(variances, std_devs(expected) ** 2)
56+
assert np.allclose(result, unumpy.nominal_values(expected))
57+
assert np.allclose(variances, unumpy.std_devs(expected) ** 2)
5758

5859

5960
def test_multiply():
@@ -62,14 +63,14 @@ def test_multiply():
6263
y = generate_samples(samples)
6364
dy = generate_error(y, add_zero_errors=True)
6465

65-
u_x = uarray(x, dx)
66-
u_y = uarray(y, dy)
66+
u_x = unumpy.uarray(x, dx)
67+
u_y = unumpy.uarray(y, dy)
6768
expected = u_x * u_y
6869

6970
result, variances = varc.multiply(x, dx**2, y, dy**2)
7071

71-
assert np.allclose(result, nominal_values(expected))
72-
assert np.allclose(variances, std_devs(expected) ** 2)
72+
assert np.allclose(result, unumpy.nominal_values(expected))
73+
assert np.allclose(variances, unumpy.std_devs(expected) ** 2)
7374

7475

7576
def test_divide():
@@ -78,11 +79,11 @@ def test_divide():
7879
y = generate_samples(samples, low=1e3) # avoid divide by very small
7980
dy = generate_error(y, add_zero_errors=True)
8081

81-
u_x = uarray(x, dx)
82-
u_y = uarray(y, dy)
82+
u_x = unumpy.uarray(x, dx)
83+
u_y = unumpy.uarray(y, dy)
8384
expected = u_x / u_y
8485

8586
result, variances = varc.divide(x, dx**2, y, dy**2)
8687

87-
assert np.allclose(result, nominal_values(expected))
88-
assert np.allclose(variances, std_devs(expected) ** 2)
88+
assert np.allclose(result, unumpy.nominal_values(expected))
89+
assert np.allclose(variances, unumpy.std_devs(expected) ** 2)

0 commit comments

Comments
 (0)