|
13 | 13 | from pydantic import WithJsonSchema |
14 | 14 | from typing_extensions import Annotated |
15 | 15 |
|
16 | | -from infrasys import Location, NonSequentialTimeSeries, SingleTimeSeries |
| 16 | +from infrasys import Location, SingleTimeSeries, NonSequentialTimeSeries, System |
17 | 17 | from infrasys.component import Component |
18 | 18 | from infrasys.exceptions import ISInvalidParameter, ISOperationNotAllowed |
19 | 19 | from infrasys.normalization import NormalizationMax |
@@ -107,14 +107,42 @@ def test_serialize_single_time_series(tmp_path, time_series_storage_type): |
107 | 107 |
|
108 | 108 | variable_name = "active_power" |
109 | 109 | length = 8784 |
110 | | - df = range(length) |
| 110 | + data = range(length) |
111 | 111 | start = datetime(year=2020, month=1, day=1) |
112 | 112 | resolution = timedelta(hours=1) |
113 | | - ts = SingleTimeSeries.from_array(df, variable_name, start, resolution) |
| 113 | + ts = SingleTimeSeries.from_array(data, variable_name, start, resolution) |
114 | 114 | system.add_time_series(ts, gen1, gen2, scenario="high", model_year="2030") |
115 | 115 | filename = tmp_path / "system.json" |
116 | 116 | system.to_json(filename) |
117 | | - check_deserialize_with_read_write_time_series(filename) |
| 117 | + system2 = check_deserialize_with_read_write_time_series(filename) |
| 118 | + gen1b = system2.get_component(SimpleGenerator, gen1.name) |
| 119 | + gen2b = system2.get_component(SimpleGenerator, gen2.name) |
| 120 | + data2 = range(1, length + 1) |
| 121 | + ts2 = SingleTimeSeries.from_array(data2, variable_name, start, resolution) |
| 122 | + system2.add_time_series(ts2, gen1b, gen2b, scenario="low", model_year="2030") |
| 123 | + filename2 = tmp_path / "system2.json" |
| 124 | + system2.to_json(filename2) |
| 125 | + system3 = SimpleSystem.from_json(filename2) |
| 126 | + assert np.array_equal( |
| 127 | + system3.get_time_series( |
| 128 | + gen1b, |
| 129 | + time_series_type=SingleTimeSeries, |
| 130 | + variable_name=variable_name, |
| 131 | + scenario="low", |
| 132 | + model_year="2030", |
| 133 | + ).data, |
| 134 | + data2, |
| 135 | + ) |
| 136 | + assert np.array_equal( |
| 137 | + system3.get_time_series( |
| 138 | + gen2b, |
| 139 | + time_series_type=SingleTimeSeries, |
| 140 | + variable_name=variable_name, |
| 141 | + scenario="low", |
| 142 | + model_year="2030", |
| 143 | + ).data, |
| 144 | + data2, |
| 145 | + ) |
118 | 146 | check_deserialize_with_read_only_time_series( |
119 | 147 | filename, gen1.name, gen2.name, variable_name, ts.data |
120 | 148 | ) |
@@ -175,13 +203,14 @@ def test_serialize_nonsequential_time_series(tmp_path, time_series_storage_type) |
175 | 203 | ) |
176 | 204 |
|
177 | 205 |
|
178 | | -def check_deserialize_with_read_write_time_series(filename): |
| 206 | +def check_deserialize_with_read_write_time_series(filename) -> System: |
179 | 207 | system3 = SimpleSystem.from_json(filename, time_series_read_only=False) |
180 | 208 | assert system3.get_time_series_directory() != SimpleSystem._make_time_series_directory( |
181 | 209 | filename |
182 | 210 | ) |
183 | 211 | system3_ts_dir = system3.get_time_series_directory() |
184 | 212 | assert system3_ts_dir is not None |
| 213 | + return system3 |
185 | 214 |
|
186 | 215 |
|
187 | 216 | @pytest.mark.parametrize( |
|
0 commit comments