diff options
Diffstat (limited to 'ricky/param/enum.py')
| -rw-r--r-- | ricky/param/enum.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ricky/param/enum.py b/ricky/param/enum.py index f0adc9e..3a9fe0e 100644 --- a/ricky/param/enum.py +++ b/ricky/param/enum.py @@ -1,10 +1,11 @@ import random from ricky.param import Param +import decimal class Enum(Param): def __init__(self, options=None, **kwargs): - self._options = options + self._options = set(options) if not self._options: raise ValueError("Object must be initialized with options set") super(Enum, self).__init__(**kwargs) @@ -36,3 +37,13 @@ class Enum(Param): my_dict = super(Enum, self).as_dict() my_dict['options'] = self._options return my_dict + + def from_normalized(self, value): + maximum = len(self._options - 1) + idx_val = int(round(maximum * value, 0)) + self.value = self._options[idx_val] + + def as_normalized(self): + maximum = len(self._options - 1) + value = int(self.as_hex(), 16) + return decimal.Decimal(value)/decimal.Decimal(maximum) |
