From eb3c60678c3c6f7dc9b7012b8c532418b7d72a73 Mon Sep 17 00:00:00 2001 From: Guillaume Pinot Date: Mon, 13 Sep 2021 11:07:55 +0200 Subject: [PATCH] Fix solve_with_parameters --- Cargo.toml | 2 +- src/builder.rs | 4 +--- src/cp_sat_wrapper.cpp | 2 +- tests/sat_parameters.rs | 12 ++++++++++++ 4 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 tests/sat_parameters.rs diff --git a/Cargo.toml b/Cargo.toml index f0d04c9..93dcded 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cp_sat" -version = "0.2.0" +version = "0.2.1" edition = "2018" description = "Rust bindings to the Google CP-SAT constraint programming solver." documentation = "https://docs.rs/cp_sat" diff --git a/src/builder.rs b/src/builder.rs index 85bea25..0d78f66 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -303,14 +303,12 @@ impl CpModelBuilder { /// /// ``` /// # use cp_sat::builder::CpModelBuilder; - /// # use cp_sat::proto::{CpSolverStatus, SatParameters}; + /// # use cp_sat::proto::CpSolverStatus; /// let mut model = CpModelBuilder::default(); /// let x = model.new_int_var([(0, 100)]); /// let y = model.new_bool_var(); /// model.add_hint(x, 42); /// model.add_hint(y, 1); - /// model.add_ge([(1, x), (3, y.into())], 3); - /// model.maximize(y); /// let response = model.solve(); /// assert_eq!(response.status(), CpSolverStatus::Optimal); /// ``` diff --git a/src/cp_sat_wrapper.cpp b/src/cp_sat_wrapper.cpp index a6d107f..64c63a0 100644 --- a/src/cp_sat_wrapper.cpp +++ b/src/cp_sat_wrapper.cpp @@ -37,7 +37,7 @@ cp_sat_wrapper_solve( assert(res); sat::SatParameters params; - res = model.ParseFromArray(params_buf, params_size); + res = params.ParseFromArray(params_buf, params_size); assert(res); sat::CpSolverResponse response = sat::SolveWithParameters(model, params); diff --git a/tests/sat_parameters.rs b/tests/sat_parameters.rs new file mode 100644 index 0000000..eb96965 --- /dev/null +++ b/tests/sat_parameters.rs @@ -0,0 +1,12 @@ +use cp_sat::builder::CpModelBuilder; +use cp_sat::proto::{CpSolverStatus, SatParameters}; + +#[test] +fn simple_sat_parameters() { + let mut model = CpModelBuilder::default(); + let x = model.new_bool_var(); + let params = SatParameters::default(); + let response = model.solve_with_parameters(¶ms); + assert_eq!(response.status(), CpSolverStatus::Optimal); + let _x_value = x.solution_value(&response); +}