Skip to content

Commit

Permalink
Trac #28689: py3: fix doctests with cbc
Browse files Browse the repository at this point in the history
The following doctests are failing with py3 and cbc, but not with py2.
This is due to a different behavior of `round` called in
`get_variable_value`.
{{{
Using --optional=benzene,bliss,build,cbc,csdp,dochtml,dot2tex,gap_packag
es,gfortran,igraph,libsemigroups,mcqd,mpir,plantri,python_igraph,sage,td
lib
Doctesting 1 file using 4 threads.
sage -t --long src/sage/numerical/backends/coin_backend.pyx
**********************************************************************
File "src/sage/numerical/backends/coin_backend.pyx", line 423, in
sage.numerical.backends.coin_backend.CoinBackend.remove_constraint
Failed example:
    p.get_values([x,y])                          # optional - cbc
Expected:
    [0.0, 3.0]
Got:
    [0, 3]
**********************************************************************
File "src/sage/numerical/backends/coin_backend.pyx", line 461, in
sage.numerical.backends.coin_backend.CoinBackend.remove_constraints
Failed example:
    p.get_values(x)                              # optional - cbc
Expected:
    2.0...
Got:
    2
**********************************************************************
File "src/sage/numerical/backends/coin_backend.pyx", line 463, in
sage.numerical.backends.coin_backend.CoinBackend.remove_constraints
Failed example:
    p.get_values(y)                              # optional - cbc
Expected:
    0.0...
Got:
    0
**********************************************************************
File "src/sage/numerical/backends/coin_backend.pyx", line 468, in
sage.numerical.backends.coin_backend.CoinBackend.remove_constraints
Failed example:
    p.get_values([x,y])                          # optional - cbc
Expected:
    [0.0, 3.0]
Got:
    [0, 3]
**********************************************************************
2 items had failures:
   1 of  13 in
sage.numerical.backends.coin_backend.CoinBackend.remove_constraint
   3 of  15 in
sage.numerical.backends.coin_backend.CoinBackend.remove_constraints
    [353 tests, 4 failures, 0.34 s]
}}}

URL: https://trac.sagemath.org/28689
Reported by: dcoudert
Ticket author(s): David Coudert
Reviewer(s): John Palmieri
  • Loading branch information
Release Manager committed Nov 10, 2019
2 parents 3dd1d44 + 0bbdca8 commit 6c5f93d
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion build/pkgs/cbc/spkg-install
Expand Up @@ -15,4 +15,4 @@ sed -i -e "s/clock\_gettime ()/Grrrrrrrrrrrr\ ()/g" Cbc/configure || \
sdh_configure --enable-cbc-parallel --enable-parallel \
--enable-gnu-packages --enable-static
sdh_make
sdh_make_install
sdh_make_install -j1
12 changes: 6 additions & 6 deletions src/sage/numerical/backends/coin_backend.pyx
Expand Up @@ -421,7 +421,7 @@ cdef class CoinBackend(GenericBackend):
sage: p.solve() # optional - cbc
10.0
sage: p.get_values([x,y]) # optional - cbc
[0.0, 3.0]
[0, 3]
TESTS:
Expand Down Expand Up @@ -459,14 +459,14 @@ cdef class CoinBackend(GenericBackend):
sage: p.solve() # optional - cbc
9.0
sage: p.get_values(x) # optional - cbc
2.0...
2
sage: p.get_values(y) # optional - cbc
0.0...
0
sage: p.remove_constraints([0]) # optional - cbc
sage: p.solve() # optional - cbc
10.0
sage: p.get_values([x,y]) # optional - cbc
[0.0, 3.0]
[0, 3]
TESTS:
Expand Down Expand Up @@ -825,7 +825,7 @@ cdef class CoinBackend(GenericBackend):
sage: p.get_variable_value(1) # optional - cbc
1.5
"""
return self.model.solver().getObjValue() + self.obj_constant_term
return self.model.solver().getObjValue() + <double>self.obj_constant_term

cpdef get_variable_value(self, int variable):
r"""
Expand Down Expand Up @@ -868,7 +868,7 @@ cdef class CoinBackend(GenericBackend):
if self.is_variable_continuous(variable):
return v
else:
return round(v)
return int(round(v))

cpdef int ncols(self):
r"""
Expand Down

0 comments on commit 6c5f93d

Please sign in to comment.