Skip to content

Commit df43957

Browse files
committed
Extend comparison test
1 parent b6ea9e9 commit df43957

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

tests/test_compare_constraint.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,61 @@ def t_expr(expr):
5252
assert expr_value == pytest.approx(3.0, abs=1e-6)
5353
model.delete_constraint(con)
5454

55+
def t_binary_expr(lhs, rhs):
56+
expr = lhs - rhs
57+
58+
con = model.add_linear_constraint(lhs >= rhs + 1.0)
59+
model.set_objective(expr)
60+
model.optimize()
61+
expr_value = model.get_value(expr)
62+
assert expr_value == pytest.approx(1.0, abs=1e-6)
63+
model.delete_constraint(con)
64+
65+
con = model.add_linear_constraint(lhs <= rhs + 2.0)
66+
model.set_objective(expr, poi.ObjectiveSense.Maximize)
67+
model.optimize()
68+
expr_value = model.get_value(expr)
69+
assert expr_value == pytest.approx(2.0, abs=1e-6)
70+
model.delete_constraint(con)
71+
72+
con = model.add_linear_constraint(lhs == rhs + 3.0)
73+
model.set_objective(expr, poi.ObjectiveSense.Maximize)
74+
model.optimize()
75+
expr_value = model.get_value(expr)
76+
assert expr_value == pytest.approx(3.0, abs=1e-6)
77+
model.delete_constraint(con)
78+
79+
con = model.add_linear_constraint(1.0 + rhs <= lhs)
80+
model.set_objective(expr)
81+
model.optimize()
82+
expr_value = model.get_value(expr)
83+
assert expr_value == pytest.approx(1.0, abs=1e-6)
84+
model.delete_constraint(con)
85+
86+
con = model.add_linear_constraint(2.0 + rhs >= lhs)
87+
model.set_objective(expr, poi.ObjectiveSense.Maximize)
88+
model.optimize()
89+
expr_value = model.get_value(expr)
90+
assert expr_value == pytest.approx(2.0, abs=1e-6)
91+
model.delete_constraint(con)
92+
93+
con = model.add_linear_constraint(3.0 + rhs == lhs)
94+
model.set_objective(expr, poi.ObjectiveSense.Maximize)
95+
model.optimize()
96+
expr_value = model.get_value(expr)
97+
assert expr_value == pytest.approx(3.0, abs=1e-6)
98+
model.delete_constraint(con)
99+
55100
expr = x + y
56101
t_expr(expr)
57102

58103
expr = poi.ExprBuilder(x + y)
59104
t_expr(expr)
60105

106+
for lhs in [x, poi.ScalarAffineFunction(x), poi.ExprBuilder(x)]:
107+
for rhs in [y, poi.ScalarAffineFunction(y), poi.ExprBuilder(y)]:
108+
t_binary_expr(lhs, rhs)
109+
61110
if hasattr(model, "add_quadratic_constraint"):
62111
con_expr = x * x + y * y
63112
expr = x + y

0 commit comments

Comments
 (0)