Skip to content

Commit 7500b92

Browse files
rprosperoDrPaulSharp
authored andcommitted
Move round trip testing into main framework
1 parent 5ebb033 commit 7500b92

1 file changed

Lines changed: 23 additions & 25 deletions

File tree

test/sasdataloader/utest_sasdataload.py

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -117,36 +117,12 @@ def test_json_deserialise(f):
117117
assert pars.model_requirements == expect.model_requirements
118118

119119

120-
@pytest.mark.sasdata
121-
@pytest.mark.parametrize("f", test_xml_file_names)
122-
def test_h5_round_trip_serialise(f):
123-
expected = example_data_load(f)
124-
125-
bio = io.BytesIO()
126-
SasData.save_h5(expected, bio)
127-
bio.seek(0)
128-
129-
result = hdf_load_data(bio)
130-
bio.close()
131-
132-
for name, entry in result.items():
133-
assert expected[name].metadata.title == entry.metadata.title
134-
assert expected[name].metadata.run == entry.metadata.run
135-
assert expected[name].metadata.definition == entry.metadata.definition
136-
assert expected[name].metadata.process == entry.metadata.process
137-
assert expected[name].metadata.instrument == entry.metadata.instrument
138-
assert expected[name].metadata.sample == entry.metadata.sample
139-
assert expected[name].ordinate.units == entry.ordinate.units
140-
assert np.all(expected[name].ordinate.value == entry.ordinate.value)
141-
assert expected[name].abscissae.units == entry.abscissae.units
142-
assert np.all(expected[name].abscissae.value == entry.abscissae.value)
143-
144-
145120
@dataclass(kw_only=True)
146121
class BaseTestCase:
147122
expected_values: dict[int, dict[str, float]]
148123
expected_metadata: dict[str, Any] = field(default_factory=dict)
149124
metadata_file: None | str = None
125+
round_trip: bool = False
150126

151127

152128
@dataclass(kw_only=True)
@@ -166,12 +142,14 @@ class BulkAsciiTestCase(AsciiTestCase):
166142
class XmlTestCase(BaseTestCase):
167143
filename: str
168144
entry: str = "sasentry01"
145+
round_trip: bool = True
169146

170147

171148
@dataclass(kw_only=True)
172149
class Hdf5TestCase(BaseTestCase):
173150
filename: str
174151
entry: str = "sasentry01"
152+
round_trip: bool = True
175153

176154

177155
@dataclass(kw_only=True)
@@ -457,3 +435,23 @@ def test_load_file(test_case: BaseTestCase):
457435
expected = "".join(infile.readlines())
458436
keys = sorted([d for d in combined_data])
459437
assert "".join(combined_data[k].summary() for k in keys) == expected
438+
439+
if test_case.round_trip:
440+
bio = io.BytesIO()
441+
SasData.save_h5(combined_data, bio)
442+
bio.seek(0)
443+
444+
result = hdf_load_data(bio)
445+
bio.close()
446+
447+
for name, entry in result.items():
448+
assert combined_data[name].metadata.title == entry.metadata.title
449+
assert combined_data[name].metadata.run == entry.metadata.run
450+
assert combined_data[name].metadata.definition == entry.metadata.definition
451+
assert combined_data[name].metadata.process == entry.metadata.process
452+
assert combined_data[name].metadata.instrument == entry.metadata.instrument
453+
assert combined_data[name].metadata.sample == entry.metadata.sample
454+
assert combined_data[name].ordinate.units == entry.ordinate.units
455+
assert np.all(combined_data[name].ordinate.value == entry.ordinate.value)
456+
assert combined_data[name].abscissae.units == entry.abscissae.units
457+
assert np.all(combined_data[name].abscissae.value == entry.abscissae.value)

0 commit comments

Comments
 (0)