From 9475649d2e3f4c447d5f47f32e85637fb2e1d186 Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@gmail.com>
Date: Sat, 30 Nov 2019 01:54:32 -0500
Subject: [PATCH] Update initialize to return bool based on feasability

---
 resources/simplex/base.py             |  2 +-
 resources/simplex/initialize.py       | 13 ++++---------
 tests/resources/simplex/initialize.py |  3 ++-
 3 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/resources/simplex/base.py b/resources/simplex/base.py
index 2a9583b..9216b00 100644
--- a/resources/simplex/base.py
+++ b/resources/simplex/base.py
@@ -577,7 +577,7 @@ class SimplexBase():
         """
         Initializes simplex.
         """
-        self._initialize(debug=debug)
+        return self._initialize(debug=debug)
 
     def pivot(self, old_basic_index, new_basic_index, debug=False):
         """
diff --git a/resources/simplex/initialize.py b/resources/simplex/initialize.py
index e26c2f4..c6eaf0d 100644
--- a/resources/simplex/initialize.py
+++ b/resources/simplex/initialize.py
@@ -68,14 +68,7 @@ class Initialize():
         if self._vector_b[smallest_const_index] >= 0:
             # Smallest value is non-negative. Is feasible.
             # We already know values so return as-is.
-            return (
-                self._nonbasic_var_indexes,
-                self._basic_var_indexes,
-                self._matrix_a,
-                self._vector_b,
-                self._vector_c,
-                self._obj_constant_index,
-            )
+            return True
 
         # If we got this far, then one or more constraint constants are negative.
         # This means we have an invalid simplex starting point, and want to correct it.
@@ -177,9 +170,11 @@ class Initialize():
             self._parent._b_array = b_array
             self._parent._n_array = n_array
 
+            return True
+
         else:
             # No solution exists for original simplex.
             logger.info('Could not determine solution for simplex problem. Problem is likely infeasible.')
-            return None
+            return False
 
 
diff --git a/tests/resources/simplex/initialize.py b/tests/resources/simplex/initialize.py
index 0c57b10..7704933 100644
--- a/tests/resources/simplex/initialize.py
+++ b/tests/resources/simplex/initialize.py
@@ -35,9 +35,10 @@ class TestInitialize(unittest.TestCase):
         self.assertEqual(self.simplex._n_array, [0, 1])
 
         # Call initialize method to test.
-        self.simplex.initialize()
+        initialize_results = self.simplex.initialize()
 
         # Test initial values "initialize" method.
+        self.assertTrue(initialize_results)
         self.assertEqual(self.simplex._matrix_a, [
             [9/5, 0, 1, (-1 + 4/5)],    # We use -1/5th represented as a float. Technically is the same value.
             [-1/5, 1, 0, -1/5],
-- 
GitLab