From 4846cc9fcf3c4ccda5df6957f7b30bcafe46bfd0 Mon Sep 17 00:00:00 2001
From: khashab2 <khashab2@illinois.edu>
Date: Wed, 2 Nov 2016 20:04:34 -0500
Subject: [PATCH] change the version to 8, and minor extension to GurobiHook.

---
 pom.xml                                       |  2 +-
 .../cs/cogcomp/infer/ilp/GurobiHook.java      | 17 +++++++++++++-
 .../cs/cogcomp/infer/ilp/GurobiHookTest.java  | 23 +++++++++++++++++++
 .../cs/cogcomp/infer/ilp/OJalgoHookTest.java  |  1 -
 4 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/pom.xml b/pom.xml
index 866f955..41c0844 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 	<groupId>edu.illinois.cs.cogcomp</groupId>
 	<artifactId>illinois-inference</artifactId>
 	<packaging>jar</packaging>
-	<version>0.7.0</version>
+	<version>0.8.0</version>
 
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/src/main/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHook.java b/src/main/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHook.java
index 89a836d..06ff5a8 100644
--- a/src/main/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHook.java
+++ b/src/main/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHook.java
@@ -439,12 +439,27 @@ public class GurobiHook implements ILPSolver {
 
     @Override
     public int getIntegerValue(int index) {
+        if (!isSolved)
+            return 0;
+        try {
+            double x = ((GRBVar) variables.get(index)).get(GRB.DoubleAttr.X);
+            return (int)Math.round(x);
+        } catch (GRBException e) {
+            handleException(e);
+        }
         return 0;
     }
 
     @Override
     public double getRealValue(int index) {
-        return 0;
+        if (!isSolved)
+            return 0.0;
+        try {
+            return ((GRBVar) variables.get(index)).get(GRB.DoubleAttr.X);
+        } catch (GRBException e) {
+            handleException(e);
+        }
+        return 0.0;
     }
 
 
diff --git a/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHookTest.java b/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHookTest.java
index e5caf60..f2258d9 100644
--- a/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHookTest.java
+++ b/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/GurobiHookTest.java
@@ -271,7 +271,30 @@ public class GurobiHookTest {
         assertTrue(ojaHook.getBooleanValue(5));
     }
 
+    @Test
+    public void testProgram10() throws Exception {
+        GurobiHook ojaHook = new GurobiHook();
 
+        double[] objcoeffs = {0, 1, 2};
+        int[] indices = ojaHook.addDiscreteVariable(objcoeffs);
 
 
+        ojaHook.setMaximize(true);
+
+        try {
+            ojaHook.solve();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        System.out.println(indices[0] + "/ " + indices[1] + " / " + indices[2]);
+        ojaHook.printSolution();
+        ojaHook.printModelStatus();
+
+        assertTrue(ojaHook.objectiveValue() == 2);
+        assertTrue(ojaHook.getBooleanValue(indices[2]));
+        assertTrue(!ojaHook.getBooleanValue(indices[1]));
+        assertTrue(!ojaHook.getBooleanValue(indices[0]));
+    }
+
 }
\ No newline at end of file
diff --git a/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/OJalgoHookTest.java b/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/OJalgoHookTest.java
index efcd290..2e4e98f 100644
--- a/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/OJalgoHookTest.java
+++ b/src/test/java/edu/illinois/cs/cogcomp/infer/ilp/OJalgoHookTest.java
@@ -287,5 +287,4 @@ public class OJalgoHookTest {
         assertTrue(!ojaHook.getBooleanValue(4));
         assertTrue(ojaHook.getBooleanValue(5));
     }
-
 }
\ No newline at end of file
-- 
GitLab