Skip to content

Commit 9fce800

Browse files
committed
Update test_matrix_variable.py
1 parent 48fa049 commit 9fce800

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

tests/test_matrix_variable.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,3 +336,35 @@ def test_performance():
336336
orig_time = end_orig - start_orig
337337

338338
assert m.isGT(orig_time, matrix_time)
339+
340+
341+
def test_matrix_cons_indicator():
342+
m = Model()
343+
x = m.addMatrixVar((2, 3), vtype="I", ub=10)
344+
y = m.addMatrixVar(x.shape, vtype="I", ub=10)
345+
is_equal = m.addMatrixVar((1, 2), vtype="B")
346+
347+
# shape of cons is not equal to shape of is_equal
348+
with pytest.raises(Exception):
349+
m.addMatrixConsIndicator(x >= y, is_equal)
350+
351+
for i in range(2):
352+
# test ndim=1 binvar
353+
m.addMatrixConsIndicator(x[i] >= y[i], is_equal[0, i])
354+
m.addMatrixConsIndicator(x[i] <= y[i], is_equal[0, i])
355+
356+
# test ndim=1 binvar
357+
m.addMatrixConsIndicator(x[i] >= 5, is_equal[0, i])
358+
m.addMatrixConsIndicator(y[i] <= 5, is_equal[0, i])
359+
360+
for i in range(3):
361+
# test ndim=2 binvar
362+
m.addMatrixConsIndicator(x[:, i] >= y[:, i], is_equal[0])
363+
m.addMatrixConsIndicator(x[:, i] <= y[:, i], is_equal[0])
364+
365+
m.setObjective(is_equal.sum(), "maximize")
366+
m.optimize()
367+
368+
assert m.getVal(is_equal).sum() == 2
369+
assert (m.getVal(x) == m.getVal(y)).all().all()
370+
assert (m.getVal(x) == np.array([[5, 5, 5], [5, 5, 5]])).all().all()

0 commit comments

Comments
 (0)