Min and max in builder
This commit is contained in:
committed by
Guillaume P
parent
04196f41d3
commit
8c5a66a03f
@@ -0,0 +1,32 @@
|
||||
use cp_sat::builder::CpModelBuilder;
|
||||
use cp_sat::proto::CpSolverStatus;
|
||||
|
||||
#[test]
|
||||
fn min() {
|
||||
let mut model = CpModelBuilder::default();
|
||||
let x = model.new_int_var([(0, 10)]);
|
||||
let y = model.new_int_var([(5, 15)]);
|
||||
let m = model.new_int_var([(-100, 100)]);
|
||||
model.add_min_eq(m, [x, y]);
|
||||
model.maximize(m);
|
||||
|
||||
println!("{:#?}", model.proto());
|
||||
let response = model.solve();
|
||||
assert_eq!(response.status(), CpSolverStatus::Optimal);
|
||||
assert_eq!(10., response.objective_value);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn max() {
|
||||
let mut model = CpModelBuilder::default();
|
||||
let x = model.new_int_var([(0, 10)]);
|
||||
let y = model.new_int_var([(5, 15)]);
|
||||
let m = model.new_int_var([(-100, 100)]);
|
||||
model.add_max_eq(m, [x, y]);
|
||||
model.minimize(m);
|
||||
|
||||
println!("{:#?}", model.proto());
|
||||
let response = model.solve();
|
||||
assert_eq!(response.status(), CpSolverStatus::Optimal);
|
||||
assert_eq!(5., response.objective_value);
|
||||
}
|
||||
Reference in New Issue
Block a user