Skip to content

Commit 2854737

Browse files
committed
Add tests for Expr/GenExpr array interactions
Extend tests in tests/test_expr.py to cover interactions between Expr/GenExpr and numpy arrays and matrix variables. Added assertions for Expr + array and GenExpr + array string representations, and for comparison operators (>=, <=, ==) against a matrix variable (m.addMatrixVar(1)), verifying expected ExprCons representations. Removed a now-redundant x + np.array([1]) test.
1 parent ea18c2c commit 2854737

1 file changed

Lines changed: 29 additions & 3 deletions

File tree

tests/test_expr.py

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -331,9 +331,35 @@ def test_NotImplemented():
331331
str(x * genexpr) == "prod(1.0,sqrt(sum(0.0,prod(1.0,x))),sum(0.0,prod(1.0,x)))"
332332
)
333333

334+
# test Expr + array
335+
a = np.array([1])
336+
assert str(x + a) == "[Expr({Term(x): 1.0, Term(): 1.0})]"
337+
# test GenExpr + array
338+
assert str(genexpr + a) == "[sum(1.0,sqrt(sum(0.0,prod(1.0,x))))]"
339+
340+
a = m.addMatrixVar(1)
341+
# test Expr >= array
342+
assert str(x >= a) == "[ExprCons(Expr({Term(x2): 1.0, Term(x): -1.0}), None, 0.0)]"
343+
# test GenExpr >= array
344+
assert (
345+
str(genexpr >= a)
346+
== "[ExprCons(sum(0.0,prod(-1.0,sqrt(sum(0.0,prod(1.0,x)))),prod(1.0,x2)), None, 0.0)]"
347+
)
348+
# test Expr <= array
349+
assert str(x <= a) == "[ExprCons(Expr({Term(x2): 1.0, Term(x): -1.0}), 0.0, None)]"
350+
# test GenExpr <= array
351+
assert (
352+
str(genexpr <= a)
353+
== "[ExprCons(sum(0.0,prod(-1.0,sqrt(sum(0.0,prod(1.0,x)))),prod(1.0,x2)), 0.0, None)]"
354+
)
355+
# test Expr == array
356+
assert str(x == a) == "[ExprCons(Expr({Term(x2): 1.0, Term(x): -1.0}), 0.0, 0.0)]"
357+
# test GenExpr == array
358+
assert (
359+
str(genexpr == a)
360+
== "[ExprCons(sum(0.0,prod(-1.0,sqrt(sum(0.0,prod(1.0,x)))),prod(1.0,x2)), 0.0, 0.0)]"
361+
)
362+
334363
# test Expr += GenExpr
335364
x += genexpr
336365
assert str(x) == "sum(0.0,sqrt(sum(0.0,prod(1.0,x))),prod(1.0,x))"
337-
338-
# test Expr + array
339-
assert str(x + np.array([1])) == "[sum(1.0,sqrt(sum(0.0,prod(1.0,x))),prod(1.0,x))]"

0 commit comments

Comments
 (0)