コード例 #1
0
ファイル: test_Stats.py プロジェクト: LabProg2/EP
class TestStats(unittest.TestCase):
    def setUp(self):
        self.valid_hp = 34
        self.valid_attack = 49
        self.valid_defense = 49
        self.valid_speed = 45
        self.valid_special = 65
        self.valid_stat = Stats(self.valid_hp, self.valid_attack, \
            self.valid_defense, self.valid_speed, self.valid_special)

    def test_attack_force(self):
        # Test for valid arguments
        level1 = 5
        level2 = 10
        self.assertEqual(self.valid_stat.attack_force(level1), (2 * level1 + 10) * self.valid_attack)
        self.assertEqual(self.valid_stat.attack_force(level2), (2 * level2 + 10) * self.valid_attack)

        # Test with absurd arguments
        self.assertRaises(ValueError, self.valid_stat.attack_force, -1)
        self.assertRaises(TypeError, self.valid_stat.attack_force, object())
        
    def test_defence_force(self):
        # Regular test
        self.assertEqual(self.valid_stat.defense_force(), self.valid_defense * 250)

    def test_critical(self):
        # Test with regular arguments
        self.assertTrue(self.valid_stat.critical(10) >= 1)

        # Test with absurd arguments
        self.assertRaises(ValueError, self.valid_stat.critical, -1)
        self.assertRaises(TypeError, self.valid_stat.critical, object())

    def test_decrease_life(self):
        # Test valid values
        for _ in range(100):
            x = randrange(self.valid_hp + 1)
            valid_stats = Stats(self.valid_hp, self.valid_attack, 
                    self.valid_defense, self.valid_speed, self.valid_special)
            valid_stats.decrease_life(x)
            self.assertEqual(valid_stats._hp, self.valid_hp - x)

        # Test crazy values
        valid_stats = Stats(self.valid_hp, self.valid_attack, \
                self.valid_defense, self.valid_speed, self.valid_special)
        valid_stats.decrease_life(self.valid_hp)
        self.assertEqual(0, valid_stats._hp)
        
        valid_stats = Stats(self.valid_hp, self.valid_attack, \
                self.valid_defense, self.valid_speed, self.valid_special)