diff --git a/python/cuopt/cuopt/routing/utils.py b/python/cuopt/cuopt/routing/utils.py index 942e0018a6..3060c8634e 100644 --- a/python/cuopt/cuopt/routing/utils.py +++ b/python/cuopt/cuopt/routing/utils.py @@ -789,9 +789,9 @@ def save_data_model_to_yaml(data_model, solver_settings, solution, fname): b_r_fp = solver_settings.get_best_results_file_path() b_r_i = solver_settings.get_best_results_interval() if b_r_fp: - if b_r_i: - yamldict.update({"best_result_path", b_r_fp}) - yamldict.update({"best_result_interval", b_r_i}) + if b_r_i is not None: + yamldict["best_result_path"] = b_r_fp + yamldict["best_result_interval"] = b_r_i if solution.get_status() == 0: sol_df = solution.get_route() diff --git a/python/cuopt/cuopt/tests/routing/test_solver_settings.py b/python/cuopt/cuopt/tests/routing/test_solver_settings.py index 0472b10a8b..8a79530332 100644 --- a/python/cuopt/cuopt/tests/routing/test_solver_settings.py +++ b/python/cuopt/cuopt/tests/routing/test_solver_settings.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 import numpy as np +import yaml import cudf @@ -52,7 +53,9 @@ def test_dump_config(): """Test SolverSettings solve with config file""" s = routing.SolverSettings() config_file = "solver_cfg.yaml" + best_results_file = "best_results.txt" s.dump_config_file(config_file) + s.dump_best_results(best_results_file, 0) assert s.get_config_file_name() == config_file # Small example data model: 3 locations, 1 vehicle @@ -66,6 +69,11 @@ def test_dump_config(): routing_solution = routing.Solve(dm, s) assert routing_solution.get_status() == 0 + with open(config_file) as f: + config = yaml.safe_load(f) + assert config["best_result_path"] == best_results_file + assert config["best_result_interval"] == 0 + # Load from written solver_cfg.yaml and solve again dm_from_yaml, s_from_yaml = utils.create_data_model_from_yaml(config_file) solution_from_yaml = routing.Solve(dm_from_yaml, s_from_yaml)