Skip to content

Commit 3394aa7

Browse files
Add tests for all binary operations
Currently failing: FAILED tests/test_matrix_variable.py::test_binop[add-genexpr-matvar] - AttributeError: 'MatrixExpr' object has no attribute 'getOp' FAILED tests/test_matrix_variable.py::test_binop[sub-genexpr-matvar] - AttributeError: 'MatrixExpr' object has no attribute 'getOp' FAILED tests/test_matrix_variable.py::test_binop[mul-var-matvar] - NotImplementedError FAILED tests/test_matrix_variable.py::test_binop[mul-genexpr-matvar] - AttributeError: 'MatrixExpr' object has no attribute 'getOp' FAILED tests/test_matrix_variable.py::test_binop[truediv-var-matvar] - AttributeError: 'MatrixExpr' object has no attribute 'getOp' FAILED tests/test_matrix_variable.py::test_binop[truediv-genexpr-matvar] - AttributeError: 'MatrixExpr' object has no attribute 'getOp'
1 parent bb2aa39 commit 3394aa7

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

tests/test_matrix_variable.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
import operator
12
import pdb
23
import pprint
34
import pytest
45
from pyscipopt import Model, Variable, log, exp, cos, sin, sqrt
56
from pyscipopt import Expr, MatrixExpr, MatrixVariable, MatrixExprCons, MatrixConstraint, ExprCons
7+
from pyscipopt.scip import GenExpr
68
from time import time
79

810
import numpy as np
@@ -392,3 +394,22 @@ def test_matrix_cons_indicator():
392394
assert m.getVal(is_equal).sum() == 2
393395
assert (m.getVal(x) == m.getVal(y)).all().all()
394396
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

Comments
 (0)