@@ -208,3 +208,45 @@ def test_rebuild_state_reconstructs_same_name_media_series(self):
208208 assert exp ._key_types ["loss" ] == "metric"
209209 assert isinstance (exp ._series ["logs" ], Series )
210210 assert [item .path for item in exp ._series ["logs" ]] == ["logs" , "logs" ]
211+
212+ def test_rebuild_state_hydrates_metric_values_from_api (self ):
213+ mv0 = MagicMock ()
214+ mv0 .value = 1.0
215+ mv1 = MagicMock ()
216+ mv1 .value = 0.5
217+ mv2 = MagicMock ()
218+ mv2 .value = 0.333
219+
220+ id_metrics_entry = MagicMock ()
221+ id_metrics_entry .metrics_values = [mv0 , mv1 , mv2 ]
222+
223+ named_metric = MagicMock ()
224+ named_metric .ids_metrics = {"test-id" : id_metrics_entry }
225+
226+ response = MagicMock ()
227+ response .named_metrics = {"train/loss" : named_metric }
228+
229+ exp = MagicMock (spec = Experiment )
230+ exp ._key_types = {}
231+ exp ._metadata_values = {}
232+ exp ._static_files = {}
233+ exp ._series = {}
234+ exp ._metrics_store = MagicMock ()
235+ exp ._metrics_store .id = "store-1"
236+ exp ._metrics_store .tags = []
237+ exp ._metrics_store .artifacts = []
238+ exp ._metrics_api = MagicMock ()
239+ exp ._metrics_api .client .lit_logger_service_get_logger_metrics .return_value = response
240+ exp ._teamspace = MagicMock ()
241+ exp ._teamspace .id = "ts-1"
242+ exp ._media_api = MagicMock ()
243+ exp ._media_api .client .lit_logger_service_list_lit_logger_media .return_value .media = []
244+ exp ._resumed_steps = {"train/loss" : 2 }
245+
246+ ExperimentStateSupport .rebuild_state (exp )
247+
248+ assert exp ._key_types ["train/loss" ] == "metric"
249+ series = exp ._series ["train/loss" ]
250+ assert isinstance (series , Series )
251+ assert series ._type == "metric"
252+ assert series ._values == [1.0 , 0.5 , 0.333 ]
0 commit comments