Skip to content

Commit

Permalink
Reinstated quadexpr tests, it helped find bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
IainNZ committed Jun 9, 2013
1 parent fe92fd5 commit 76a2751
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 12 deletions.
14 changes: 7 additions & 7 deletions src/MathProg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -192,11 +192,11 @@ print(io::IO, q::QuadExpr) = print(io, quadToStr(q))
function quadToStr(q::QuadExpr)
ret = ""
for ind in 1:length(q.qvars1)
ret += string(q.qcoeffs[ind]," ",
getName(q.qvars1[ind]),"*",
getName(q.qvars2[ind])," + ")
ret = string(ret, q.qcoeffs[ind]," ",
getName(q.qvars1[ind]),"*",
getName(q.qvars2[ind])," + ")
end
return string(ret, affToExpr(q.aff))
return string(ret, affToStr(q.aff))
end

#######################################################################
Expand Down Expand Up @@ -368,13 +368,13 @@ end
(*)(q::QuadExpr, a::AffExpr) = error("Cannot multiply a quadratic expression by an aff. expression")
(/)(q::QuadExpr, a::AffExpr) = error("Cannot divide a quadratic expression by an aff. expression")
# QuadExpr--QuadExpr
(+)(q1::QuadExpr, q2::QuadExpr) = QuadExpr(vcat(q1.qvars1, q2.qvars2),
(+)(q1::QuadExpr, q2::QuadExpr) = QuadExpr(vcat(q1.qvars1, q2.qvars1),
vcat(q1.qvars2, q2.qvars2),
vcat(q1.coeffs, q2.coeffs),
vcat(q1.qcoeffs, q2.qcoeffs),
q1.aff + q2.aff)
(-)(q1::QuadExpr, q2::QuadExpr) = QuadExpr(vcat(q1.qvars1, q2.qvars2),
vcat(q1.qvars2, q2.qvars2),
vcat(q1.coeffs, -q2.coeffs),
vcat(q1.qcoeffs, -q2.qcoeffs),
q1.aff - q2.aff)
(*)(q1::QuadExpr, q2::QuadExpr) = error("Cannot multiply two quadratic expressions")
(/)(q1::QuadExpr, q2::QuadExpr) = error("Cannot divide a quadratic expression by a quadratic expression")
Expand Down
9 changes: 4 additions & 5 deletions test/quadexpr.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@
mq = Model("max")
@defVar(mq, 0 <= x[1:5] <= 1)
@defVar(mq, 0 <= LongName <= 99)
println(" TODO: Finish overloads, this is all brittle!")
#a1 = x[1]*x[2] + 27.2*LongName + 5
#@test quadToStr(a1) == "1.0 _col1*_col2 + 27.2 LongName + 5.0"
#a2 = x[1]*x[2] + x[2]*x[1]
a1 = x[1]*x[2] + 27.2*LongName + 5
@test quadToStr(a1) == "1.0 _col1*_col2 + 27.2 LongName + 5.0"
a2 = x[1]*x[2] + x[2]*x[1]
println(" TODO: Collect like terms before print")
#println(" e.g. $a2")
println(" e.g. $a2")
#@test quadToStr(a2) == "2.0 _col1*_col2"

0 comments on commit 76a2751

Please sign in to comment.