diff --git a/spopt/locate/flow.py b/spopt/locate/flow.py index ad2c0831..eac89a66 100644 --- a/spopt/locate/flow.py +++ b/spopt/locate/flow.py @@ -432,7 +432,8 @@ def get_vmt_coverage(self) -> dict[str, float]: self._calculate_path_distances() if not hasattr(self, "flow_coverage"): - self.calculate_flow_coverage() + self.flow_coverage = {} + self.get_flow_coverage() total_vmt = 0 covered_vmt = 0 diff --git a/spopt/tests/test_locate/test_flow.py b/spopt/tests/test_locate/test_flow.py index 84cfa603..b83167ad 100644 --- a/spopt/tests/test_locate/test_flow.py +++ b/spopt/tests/test_locate/test_flow.py @@ -426,6 +426,17 @@ def test_detailed_results(self, setup_solved_model): assert params["p_facilities"] == 2 assert params["objective_type"] == "flow" + def test_vmt_coverage_without_flow_coverage_attr(self, setup_solved_model): + model = setup_solved_model + if hasattr(model, "flow_coverage"): + delattr(model, "flow_coverage") + + metrics = model.get_vmt_coverage() + + assert "total_vmt" in metrics + assert "covered_vmt" in metrics + assert "vmt_coverage_percentage" in metrics + class TestFRLMCustomPaths: def test_custom_paths_basic(self):