Skip to content

Commit 5f8afa0

Browse files
committed
add forgotten events. tests pass
1 parent bd9a4e3 commit 5f8afa0

File tree

3 files changed

+67
-77
lines changed

3 files changed

+67
-77
lines changed

src/pyscipopt/scip.pxi

Lines changed: 56 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -208,60 +208,62 @@ cdef class PY_SCIP_HEURTIMING:
208208

209209
EventNames = {}
210210
cdef class PY_SCIP_EVENTTYPE:
211-
DISABLED = SCIP_EVENTTYPE_DISABLED
212-
VARADDED = SCIP_EVENTTYPE_VARADDED
213-
VARDELETED = SCIP_EVENTTYPE_VARDELETED
214-
VARFIXED = SCIP_EVENTTYPE_VARFIXED
215-
VARUNLOCKED = SCIP_EVENTTYPE_VARUNLOCKED
216-
OBJCHANGED = SCIP_EVENTTYPE_OBJCHANGED
217-
GLBCHANGED = SCIP_EVENTTYPE_GLBCHANGED
218-
GUBCHANGED = SCIP_EVENTTYPE_GUBCHANGED
219-
LBTIGHTENED = SCIP_EVENTTYPE_LBTIGHTENED
220-
LBRELAXED = SCIP_EVENTTYPE_LBRELAXED
221-
UBTIGHTENED = SCIP_EVENTTYPE_UBTIGHTENED
222-
UBRELAXED = SCIP_EVENTTYPE_UBRELAXED
223-
GHOLEADDED = SCIP_EVENTTYPE_GHOLEADDED
224-
GHOLEREMOVED = SCIP_EVENTTYPE_GHOLEREMOVED
225-
LHOLEADDED = SCIP_EVENTTYPE_LHOLEADDED
226-
LHOLEREMOVED = SCIP_EVENTTYPE_LHOLEREMOVED
227-
IMPLADDED = SCIP_EVENTTYPE_IMPLADDED
228-
PRESOLVEROUND = SCIP_EVENTTYPE_PRESOLVEROUND
229-
NODEFOCUSED = SCIP_EVENTTYPE_NODEFOCUSED
230-
NODEFEASIBLE = SCIP_EVENTTYPE_NODEFEASIBLE
231-
NODEINFEASIBLE = SCIP_EVENTTYPE_NODEINFEASIBLE
232-
NODEBRANCHED = SCIP_EVENTTYPE_NODEBRANCHED
233-
NODEDELETE = SCIP_EVENTTYPE_NODEDELETE
234-
FIRSTLPSOLVED = SCIP_EVENTTYPE_FIRSTLPSOLVED
235-
LPSOLVED = SCIP_EVENTTYPE_LPSOLVED
236-
LPEVENT = SCIP_EVENTTYPE_LPEVENT
237-
POORSOLFOUND = SCIP_EVENTTYPE_POORSOLFOUND
238-
BESTSOLFOUND = SCIP_EVENTTYPE_BESTSOLFOUND
239-
ROWADDEDSEPA = SCIP_EVENTTYPE_ROWADDEDSEPA
240-
ROWDELETEDSEPA = SCIP_EVENTTYPE_ROWDELETEDSEPA
241-
ROWADDEDLP = SCIP_EVENTTYPE_ROWADDEDLP
242-
ROWDELETEDLP = SCIP_EVENTTYPE_ROWDELETEDLP
243-
ROWCOEFCHANGED = SCIP_EVENTTYPE_ROWCOEFCHANGED
244-
ROWCONSTCHANGED = SCIP_EVENTTYPE_ROWCONSTCHANGED
245-
ROWSIDECHANGED = SCIP_EVENTTYPE_ROWSIDECHANGED
246-
SYNC = SCIP_EVENTTYPE_SYNC
247-
GBDCHANGED = SCIP_EVENTTYPE_GBDCHANGED
248-
LBCHANGED = SCIP_EVENTTYPE_LBCHANGED
249-
UBCHANGED = SCIP_EVENTTYPE_UBCHANGED
250-
BOUNDTIGHTENED = SCIP_EVENTTYPE_BOUNDTIGHTENED
251-
BOUNDRELAXED = SCIP_EVENTTYPE_BOUNDRELAXED
252-
BOUNDCHANGED = SCIP_EVENTTYPE_BOUNDCHANGED
253-
GHOLECHANGED = SCIP_EVENTTYPE_GHOLECHANGED
254-
LHOLECHANGED = SCIP_EVENTTYPE_LHOLECHANGED
255-
HOLECHANGED = SCIP_EVENTTYPE_HOLECHANGED
256-
DOMCHANGED = SCIP_EVENTTYPE_DOMCHANGED
257-
VARCHANGED = SCIP_EVENTTYPE_VARCHANGED
258-
VAREVENT = SCIP_EVENTTYPE_VAREVENT
259-
NODESOLVED = SCIP_EVENTTYPE_NODESOLVED
260-
NODEEVENT = SCIP_EVENTTYPE_NODEEVENT
261-
SOLFOUND = SCIP_EVENTTYPE_SOLFOUND
262-
SOLEVENT = SCIP_EVENTTYPE_SOLEVENT
263-
ROWCHANGED = SCIP_EVENTTYPE_ROWCHANGED
264-
ROWEVENT = SCIP_EVENTTYPE_ROWEVENT
211+
DISABLED = SCIP_EVENTTYPE_DISABLED
212+
VARADDED = SCIP_EVENTTYPE_VARADDED
213+
VARDELETED = SCIP_EVENTTYPE_VARDELETED
214+
VARFIXED = SCIP_EVENTTYPE_VARFIXED
215+
VARUNLOCKED = SCIP_EVENTTYPE_VARUNLOCKED
216+
OBJCHANGED = SCIP_EVENTTYPE_OBJCHANGED
217+
GLBCHANGED = SCIP_EVENTTYPE_GLBCHANGED
218+
GUBCHANGED = SCIP_EVENTTYPE_GUBCHANGED
219+
LBTIGHTENED = SCIP_EVENTTYPE_LBTIGHTENED
220+
LBRELAXED = SCIP_EVENTTYPE_LBRELAXED
221+
UBTIGHTENED = SCIP_EVENTTYPE_UBTIGHTENED
222+
UBRELAXED = SCIP_EVENTTYPE_UBRELAXED
223+
GHOLEADDED = SCIP_EVENTTYPE_GHOLEADDED
224+
GHOLEREMOVED = SCIP_EVENTTYPE_GHOLEREMOVED
225+
LHOLEADDED = SCIP_EVENTTYPE_LHOLEADDED
226+
LHOLEREMOVED = SCIP_EVENTTYPE_LHOLEREMOVED
227+
IMPLADDED = SCIP_EVENTTYPE_IMPLADDED
228+
PRESOLVEROUND = SCIP_EVENTTYPE_PRESOLVEROUND
229+
NODEFOCUSED = SCIP_EVENTTYPE_NODEFOCUSED
230+
NODEFEASIBLE = SCIP_EVENTTYPE_NODEFEASIBLE
231+
NODEINFEASIBLE = SCIP_EVENTTYPE_NODEINFEASIBLE
232+
NODEBRANCHED = SCIP_EVENTTYPE_NODEBRANCHED
233+
NODEDELETE = SCIP_EVENTTYPE_NODEDELETE
234+
DUALBOUNDIMPROVED = SCIP_EVENTTYPE_DUALBOUNDIMPROVED
235+
FIRSTLPSOLVED = SCIP_EVENTTYPE_FIRSTLPSOLVED
236+
LPSOLVED = SCIP_EVENTTYPE_LPSOLVED
237+
LPEVENT = SCIP_EVENTTYPE_LPEVENT
238+
POORSOLFOUND = SCIP_EVENTTYPE_POORSOLFOUND
239+
BESTSOLFOUND = SCIP_EVENTTYPE_BESTSOLFOUND
240+
ROWADDEDSEPA = SCIP_EVENTTYPE_ROWADDEDSEPA
241+
ROWDELETEDSEPA = SCIP_EVENTTYPE_ROWDELETEDSEPA
242+
ROWADDEDLP = SCIP_EVENTTYPE_ROWADDEDLP
243+
ROWDELETEDLP = SCIP_EVENTTYPE_ROWDELETEDLP
244+
ROWCOEFCHANGED = SCIP_EVENTTYPE_ROWCOEFCHANGED
245+
ROWCONSTCHANGED = SCIP_EVENTTYPE_ROWCONSTCHANGED
246+
ROWSIDECHANGED = SCIP_EVENTTYPE_ROWSIDECHANGED
247+
SYNC = SCIP_EVENTTYPE_SYNC
248+
GBDCHANGED = SCIP_EVENTTYPE_GBDCHANGED
249+
LBCHANGED = SCIP_EVENTTYPE_LBCHANGED
250+
UBCHANGED = SCIP_EVENTTYPE_UBCHANGED
251+
BOUNDTIGHTENED = SCIP_EVENTTYPE_BOUNDTIGHTENED
252+
BOUNDRELAXED = SCIP_EVENTTYPE_BOUNDRELAXED
253+
BOUNDCHANGED = SCIP_EVENTTYPE_BOUNDCHANGED
254+
GHOLECHANGED = SCIP_EVENTTYPE_GHOLECHANGED
255+
LHOLECHANGED = SCIP_EVENTTYPE_LHOLECHANGED
256+
HOLECHANGED = SCIP_EVENTTYPE_HOLECHANGED
257+
DOMCHANGED = SCIP_EVENTTYPE_DOMCHANGED
258+
VARCHANGED = SCIP_EVENTTYPE_VARCHANGED
259+
VAREVENT = SCIP_EVENTTYPE_VAREVENT
260+
NODESOLVED = SCIP_EVENTTYPE_NODESOLVED
261+
NODEEVENT = SCIP_EVENTTYPE_NODEEVENT
262+
SOLFOUND = SCIP_EVENTTYPE_SOLFOUND
263+
SOLEVENT = SCIP_EVENTTYPE_SOLEVENT
264+
GAPUPDATED = SCIP_EVENTTYPE_GAPUPDATED
265+
ROWCHANGED = SCIP_EVENTTYPE_ROWCHANGED
266+
ROWEVENT = SCIP_EVENTTYPE_ROWEVENT
265267

266268
cdef class PY_SCIP_LOCKTYPE:
267269
MODEL = SCIP_LOCKTYPE_MODEL

tests/test_event.py

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -54,30 +54,19 @@ def eventexec(self, event):
5454
assert event.getType() in [SCIP_EVENTTYPE.ROWCOEFCHANGED, SCIP_EVENTTYPE.ROWCONSTCHANGED, SCIP_EVENTTYPE.ROWSIDECHANGED]
5555
elif self.event_type == SCIP_EVENTTYPE.ROWEVENT:
5656
assert event.getType() in [SCIP_EVENTTYPE.ROWADDEDSEPA, SCIP_EVENTTYPE.ROWDELETEDSEPA, SCIP_EVENTTYPE.ROWADDEDLP, SCIP_EVENTTYPE.ROWDELETEDLP, SCIP_EVENTTYPE.ROWCHANGED]
57+
elif self.event_type == SCIP_EVENTTYPE.GAPUPDATED:
58+
assert event.getType() in [SCIP_EVENTTYPE.DUALBOUNDIMPROVED, SCIP_EVENTTYPE.BESTSOLFOUND]
5759
else:
5860
assert event.getType() == self.event_type
5961

6062
def test_event():
6163

62-
all_events = [
63-
SCIP_EVENTTYPE.DISABLED,
64-
SCIP_EVENTTYPE.PRESOLVEROUND,
65-
SCIP_EVENTTYPE.NODEFOCUSED,
66-
SCIP_EVENTTYPE.NODEFEASIBLE,
67-
SCIP_EVENTTYPE.NODEINFEASIBLE,
68-
SCIP_EVENTTYPE.NODEBRANCHED,
69-
SCIP_EVENTTYPE.NODEDELETE,
70-
SCIP_EVENTTYPE.FIRSTLPSOLVED,
71-
SCIP_EVENTTYPE.LPSOLVED,
72-
SCIP_EVENTTYPE.POORSOLFOUND,
73-
SCIP_EVENTTYPE.BESTSOLFOUND,
74-
SCIP_EVENTTYPE.SYNC,
75-
SCIP_EVENTTYPE.NODESOLVED,
76-
SCIP_EVENTTYPE.NODEEVENT,
77-
SCIP_EVENTTYPE.LPEVENT,
78-
SCIP_EVENTTYPE.SOLFOUND,
79-
SCIP_EVENTTYPE.SOLEVENT,
80-
]
64+
all_events = []
65+
for attr_name in dir(SCIP_EVENTTYPE):
66+
if not attr_name.startswith('_'):
67+
attr = getattr(SCIP_EVENTTYPE, attr_name)
68+
if isinstance(attr, int):
69+
all_events.append(attr)
8170

8271
all_event_hdlrs = []
8372
for event in all_events:
@@ -135,5 +124,4 @@ def eventexec(self, event):
135124
ev.event_type = SCIP_EVENTTYPE.VAREVENT
136125
m.includeEventhdlr(ev, "var_event", "event handler for var events")
137126

138-
with pytest.raises(Exception):
139-
m.optimize()
127+
m.optimize()

tests/test_relax.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def test_relaxator():
2121
m.setHeuristics(SCIP_PARAMSETTING.OFF)
2222
m.setSeparating(SCIP_PARAMSETTING.OFF)
2323
m.setParam("limits/nodes", 1)
24-
# m.hideOutput()
24+
m.hideOutput()
2525

2626
# include relaxator
2727
m.includeRelax(SoncRelax(), 'testrelaxator',
@@ -42,7 +42,7 @@ def test_relaxator():
4242

4343
assert 'relaxexec' in calls
4444
assert len(calls) >= 1
45-
assert m.getDualbound() >= 10e4
45+
assert m.isGE(m.getDualbound(), 10e4)
4646

4747
class EmptyRelaxator(Relax):
4848
pass

0 commit comments

Comments
 (0)