Source code for chap_core.testing.testing
import dataclasses
import numpy as np
from chap_core.spatio_temporal_data.temporal_dataclass import DataSet
[docs]
def assert_tsdataclass_equal(ts_1, ts_2):
"""
Assert that two time series data classes are equal.
"""
assert len(ts_1) == len(ts_2)
assert dataclasses.fields(ts_1) == dataclasses.fields(ts_2)
for field in dataclasses.fields(ts_1):
if field.name == "time_period":
assert np.all(getattr(ts_1, field.name) == getattr(ts_2, field.name))
else:
np.testing.assert_allclose(getattr(ts_1, field.name), getattr(ts_2, field.name), rtol=1e-5, atol=1e-5)
# np.testing.assert(getattr(ts_1, field.name), getattr(ts_2, field.name)), (field.name, getattr(ts_1, field.name), getattr(ts_2, field.name))
[docs]
def assert_dataset_equal(dataset_1: DataSet, dataset_2: DataSet):
"""
Assert that two datasets are equal.
"""
assert set(dataset_1.keys()) == set(dataset_2.keys()), (set(dataset_1.keys()), set(dataset_2.keys()))
for key in dataset_1.keys():
assert_tsdataclass_equal(dataset_1[key], dataset_2[key])