Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions python/cuopt/cuopt/routing/utils.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2021-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

import glob
Expand Down Expand Up @@ -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()
Expand Down
12 changes: 10 additions & 2 deletions python/cuopt/cuopt/tests/routing/test_solver_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

import numpy as np
import yaml

import cudf

Expand Down Expand Up @@ -48,11 +49,13 @@ def test_solver_settings_getters():
assert s.get_time_limit() == time_limit


def test_dump_config():
def test_dump_config(tmp_path):
"""Test SolverSettings solve with config file"""
s = routing.SolverSettings()
config_file = "solver_cfg.yaml"
config_file = str(tmp_path / "solver_cfg.yaml")
best_results_file = str(tmp_path / "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
Expand All @@ -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)
Expand Down