|
| 1 | +import operator |
1 | 2 | import pdb |
2 | 3 | import pprint |
3 | 4 | import pytest |
4 | 5 | from pyscipopt import Model, Variable, log, exp, cos, sin, sqrt |
5 | 6 | from pyscipopt import Expr, MatrixExpr, MatrixVariable, MatrixExprCons, MatrixConstraint, ExprCons |
| 7 | +from pyscipopt.scip import GenExpr |
6 | 8 | from time import time |
7 | 9 |
|
8 | 10 | import numpy as np |
@@ -392,3 +394,22 @@ def test_matrix_cons_indicator(): |
392 | 394 | assert m.getVal(is_equal).sum() == 2 |
393 | 395 | assert (m.getVal(x) == m.getVal(y)).all().all() |
394 | 396 | assert (m.getVal(x) == np.array([[5, 5, 5], [5, 5, 5]])).all().all() |
| 397 | + |
| 398 | + |
| 399 | +_binop_model = Model() |
| 400 | + |
| 401 | +def var(): |
| 402 | + return _binop_model.addVar() |
| 403 | + |
| 404 | +def genexpr(): |
| 405 | + return _binop_model.addVar() ** 0.6 |
| 406 | + |
| 407 | +def matvar(): |
| 408 | + return _binop_model.addMatrixVar((1,)) |
| 409 | + |
| 410 | +@pytest.mark.parametrize("right", [var(), genexpr(), matvar()], ids=["var", "genexpr", "matvar"]) |
| 411 | +@pytest.mark.parametrize("left", [var(), genexpr(), matvar()], ids=["var", "genexpr", "matvar"]) |
| 412 | +@pytest.mark.parametrize("op", [operator.add, operator.sub, operator.mul, operator.truediv]) |
| 413 | +def test_binop(op, left, right): |
| 414 | + res = op(left, right) |
| 415 | + assert isinstance(res, (Expr, GenExpr, MatrixExpr)) |
0 commit comments