示例#1
0
def test_hero_defense_mean_value():
    athena = Hero("Athena")
    strength = random.randint(400, 30000)
    big_strength = Armor("Overwhelming Shield", strength)
    athena.add_armor(big_strength)
    calculated_mean = strength // 2
    iterations = 8000
    total_attack = 0
    accepted_window = 400
    for _ in range(iterations):
        attack_value = athena.defend()
        assert attack_value >= 0 and attack_value <= strength
        total_attack += attack_value

    actual_mean = total_attack / iterations
    print("Max Allowed: {}".format(strength))
    print("Defenses Tested: {}".format(iterations))
    print("Mean -- calculated: {} | actual: {}".format(calculated_mean, actual_mean))
    print(
        "Acceptable deviation from mean: {} | Current deviation from mean: {}".format(
            accepted_window, abs(
                calculated_mean - actual_mean)))
    print(
        "Acceptable Min: {} | Acceptable Max: {}".format(
            actual_mean -
            accepted_window,
            actual_mean +
            accepted_window))
    assert actual_mean <= calculated_mean + \
        accepted_window and actual_mean >= calculated_mean - accepted_window
示例#2
0
def test_hero_defend_multi_armor():
    jodie = Hero("Jodie Foster")
    gauntlets = Armor("Gauntlets", 4000)
    science = Armor("Science", 9000)
    jodie.add_armor(gauntlets)
    jodie.add_armor(science)
    defend = jodie.defend()
    assert defend <= 13000 and defend >= 0
示例#3
0
def test_hero_defense_standard_deviation():
    willow_waffle = Hero("Willow Waffle")
    strength = random.randint(400, 30000)
    willow = Armor("Willowness", strength)
    willow_waffle.add_armor(willow)
    defenses = list()
    total_defend = 0
    number_tests = 100
    for _ in range(number_tests):
        defense = willow_waffle.defend()
        defenses.append(defense)
        total_defend += defense
    mean = total_defend / number_tests

    # Get Square Deviations
    for index, value in enumerate(defenses):
        defenses[index] = math.pow(value - mean, 2)

    standard_dev = math.sqrt(sum(defenses) / len(defenses))
    print("Hero Armor must block with random value.")
    print("Standard Deviation Cannot be 0.")
    assert standard_dev != 0.0
示例#4
0
def test_dead_hero_defense():
    hero = Hero("Vlaad", 0)
    defense_amount = 30000
    garlic = Armor("Garlic", defense_amount)
    hero.add_ability(garlic)
    assert hero.defend() == 0
示例#5
0
def test_hero_defense():
    jodie = Hero("Jodie Foster")
    gauntlets = Armor("Gauntlets", 30)
    jodie.add_armor(gauntlets)
    defense = jodie.defend()
    assert defense >= 0 and defense <= 30
示例#6
0
def test_dead_hero_defense():
    hero = Hero("Vlaad", 0)
    garlic = Armor("Garlic", 30000)
    hero.add_ability(garlic)
    assert hero.defend() == 0
示例#7
0
def test_armor():
    armor = Hero("The Ring", 200)
    for _ in range(0, 500):
        defense = armor.defend()
        assert defense <= 200 and defense >= 0