def test_stat_randomize(self): stats = Stats() stats.randomize() for stat, default in DEFAULT_STATS.iteritems(): actual = stats[stat] self.assertTrue(actual <= MAX_STAT) self.assertTrue(default <= actual)
def __init__(self, **kwargs): self._stats = {} self.max_stat = MAX_STAT for stat, value in DEFAULT_STATS.iteritems(): value = kwargs.get(stat, value) self._stats[stat] = value randomize_max = kwargs.get('randomize_max', None) if randomize_max: self.randomize(randomize_max) self._initial = self._stats.copy()
def randomize(self, n=MAX_STAT): self.max_stat = n for stat, value in DEFAULT_STATS.iteritems(): value = random.randint(value, n) self._stats[stat] = value
def __repr__(self): stat_strs = [self.fmt_stat(stat) for stat in DEFAULT_STATS.iterkeys()] output = ', '.join(stat_strs) return '<{}: '.format(self.__class__.__name__) + output + '>'
def test_stat_initialization(self): stats = Stats() for stat, value in DEFAULT_STATS.iteritems(): actual = stats[stat] self.assertEqual(actual, value)
def test_entity_has_randomized_stats(self): entity = Entity() default_stats = Stats() bools = [default_stats[stat] == entity.stats[stat] for stat, _ in DEFAULT_STATS.iteritems()] self.assertFalse(all(bools))
def test_stat_randomized_initialization(self): stats = Stats(randomize_max=50) for stat, default in DEFAULT_STATS.iteritems(): actual = stats[stat] self.assertTrue(actual <= 50) self.assertTrue(default <= actual)