From d411bd5c8bbc35fad46eac2613e7e57e20c4caab Mon Sep 17 00:00:00 2001
From: brodriguez8774 <brodriguez8774@gmail.com>
Date: Thu, 26 Sep 2019 20:41:14 -0400
Subject: [PATCH] Implement remaining interface functions

---
 resources/interface.py | 36 +++++++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/resources/interface.py b/resources/interface.py
index 6f7040d..da02867 100644
--- a/resources/interface.py
+++ b/resources/interface.py
@@ -93,7 +93,7 @@ class UserInterface():
                 self.set_item_set_by_json()
                 print('')
             elif user_input == '4':
-                self.add_to_item_Set()
+                self.add_to_item_set()
                 print('')
             elif user_input == '5':
                 self.clear_item_set()
@@ -163,19 +163,44 @@ class UserInterface():
             json_data = json.load(file)
 
             # Check that JSON data is formatted in way we expect.
-            if self._knapsack_algorithm.validate_item_set(json_data):
-                # Validated successfully. Set as new item set.
-                self._knapsack_algorithm.set_item_set(json_data)
+            if self._knapsack_algorithm.set_item_set(json_data):
+                # Successfully set JSON data as new item set.
                 print('Successfully set new Item Set from JSON data.')
                 self._knapsack_algorithm.display_item_set()
             else:
                 # Validation failure.
                 print('Failed to validate file contents for Item Set.')
 
-    def add_to_item_Set(self):
+    def add_to_item_set(self):
         """
         Adds new "Item" to "Item Set" by manual input.
         """
+        print('Enter a benefit amount (must be a positive integer):')
+
+        # Get user's input.
+        benefit_input = input()
+        print('')
+
+        print('Enter a cost amount (must be a positive integer):')
+
+        # Get user's input.
+        cost_input = input()
+        print('')
+
+        # Create new item.
+        new_item = {
+            'benefit': benefit_input,
+            'cost': cost_input,
+        }
+
+        # Attempt to add new item.
+        if self._knapsack_algorithm.add_item_to_item_set(new_item):
+            # Item successfully added.
+            print('Successfully added new item.')
+            self._knapsack_algorithm.display_item_set()
+        else:
+            # Failed to add item.
+            print('Failed to add new item. Benefit or cost were not positive integers.')
 
     def clear_item_set(self):
         """
@@ -196,3 +221,4 @@ class UserInterface():
         """
         Solves knapsack with current problems and displays result to user.
         """
+        self._knapsack_algorithm.calculate_fractional_knapsack()
-- 
GitLab