@@ -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 )
146121class 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):
166142class XmlTestCase (BaseTestCase ):
167143 filename : str
168144 entry : str = "sasentry01"
145+ round_trip : bool = True
169146
170147
171148@dataclass (kw_only = True )
172149class 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