Skip to content
Snippets Groups Projects

The integer memory table will not allow the user to inpu values larger than it can store

Merged Martin Högstedt requested to merge 57-restrict-input-values-into-memory into main
All threads resolved!
1 file
+ 6
5
Compare changes
  • Side-by-side
  • Inline
@@ -17,7 +17,7 @@ class Base(Enum):
@@ -17,7 +17,7 @@ class Base(Enum):
HEXADECIMAL = 4
HEXADECIMAL = 4
class ValueToBig(Exception):
class ValueTooBig(Exception):
"""
"""
A class representing the error of a user inputting a value that does not fit in the memory.
A class representing the error of a user inputting a value that does not fit in the memory.
@@ -199,6 +199,7 @@ class IntegerMemoryTable(MemoryTable):
@@ -199,6 +199,7 @@ class IntegerMemoryTable(MemoryTable):
item = self.item(row, col)
item = self.item(row, col)
value = item.text()
value = item.text()
max_value = 2**self._bit_length
max_value = 2**self._bit_length
 
min_value = -(2 ** (self._bit_length - 1))
# Turn every value into a positive int
# Turn every value into a positive int
# in base 10
# in base 10
@@ -216,8 +217,8 @@ class IntegerMemoryTable(MemoryTable):
@@ -216,8 +217,8 @@ class IntegerMemoryTable(MemoryTable):
):
):
value = int(value)
value = int(value)
if value > max_value:
if value > max_value or value < min_value:
raise ValueToBig
raise ValueTooBig
except ValueError:
except ValueError:
msg = None
msg = None
@@ -233,9 +234,9 @@ class IntegerMemoryTable(MemoryTable):
@@ -233,9 +234,9 @@ class IntegerMemoryTable(MemoryTable):
self.update()
self.update()
return
return
except ValueToBig:
except ValueTooBig:
self._errorMessageWidget.showMessage(
self._errorMessageWidget.showMessage(
"Input value does not fit within the bit length."
f"Input value does not fit within the bit length of {self._bit_length}."
)
)
self.update()
self.update()
return
return
Loading