forked from github/server
provide a failing test for issue 2149
This commit is contained in:
parent
f959f43f1e
commit
cfc31c6598
|
@ -232,8 +232,8 @@ static void test_calculate_armor(CuTest * tc)
|
||||||
achain = new_armortype(ichain, 0.0, 0.5, 3, ATF_NONE);
|
achain = new_armortype(ichain, 0.0, 0.5, 3, ATF_NONE);
|
||||||
wtype = new_weapontype(it_get_or_create(rt_get_or_create("sword")), 0, 0.5, 0, 0, 0, 0, SK_MELEE, 1);
|
wtype = new_weapontype(it_get_or_create(rt_get_or_create("sword")), 0, 0.5, 0, 0, 0, 0, SK_MELEE, 1);
|
||||||
rc = test_create_race("human");
|
rc = test_create_race("human");
|
||||||
dt.index = 0;
|
|
||||||
du = test_create_unit(test_create_faction(rc), r);
|
du = test_create_unit(test_create_faction(rc), r);
|
||||||
|
dt.index = 0;
|
||||||
|
|
||||||
dt.fighter = setup_fighter(&b, du);
|
dt.fighter = setup_fighter(&b, du);
|
||||||
CuAssertIntEquals_Msg(tc, "default ac", 0, calculate_armor(dt, 0, 0, &magres));
|
CuAssertIntEquals_Msg(tc, "default ac", 0, calculate_armor(dt, 0, 0, &magres));
|
||||||
|
@ -277,6 +277,44 @@ static void test_calculate_armor(CuTest * tc)
|
||||||
test_cleanup();
|
test_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_projectile_armor(CuTest * tc)
|
||||||
|
{
|
||||||
|
troop dt;
|
||||||
|
battle *b;
|
||||||
|
region *r;
|
||||||
|
unit *du;
|
||||||
|
weapon_type *wtype;
|
||||||
|
armor_type *ashield, *achain;
|
||||||
|
item_type *ishield, *ichain;
|
||||||
|
race *rc;
|
||||||
|
|
||||||
|
test_cleanup();
|
||||||
|
r = test_create_region(0, 0, 0);
|
||||||
|
ishield = it_get_or_create(rt_get_or_create("shield"));
|
||||||
|
ashield = new_armortype(ishield, 0.0, 0.5, 1, ATF_SHIELD);
|
||||||
|
ichain = it_get_or_create(rt_get_or_create("chainmail"));
|
||||||
|
achain = new_armortype(ichain, 0.0, 0.5, 3, ATF_NONE);
|
||||||
|
wtype = new_weapontype(it_get_or_create(rt_get_or_create("sword")), 0, 0.5, 0, 0, 0, 0, SK_MELEE, 1);
|
||||||
|
rc = test_create_race("human");
|
||||||
|
rc->battle_flags |= BF_EQUIPMENT;
|
||||||
|
du = test_create_unit(test_create_faction(rc), r);
|
||||||
|
dt.index = 0;
|
||||||
|
|
||||||
|
i_change(&du->items, ishield, 1);
|
||||||
|
i_change(&du->items, ichain, 1);
|
||||||
|
dt.fighter = setup_fighter(&b, du);
|
||||||
|
wtype->flags = WTF_MISSILE;
|
||||||
|
achain->projectile = 1.0;
|
||||||
|
CuAssertIntEquals_Msg(tc, "projectile armor", -1, calculate_armor(dt, 0, wtype, 0));
|
||||||
|
achain->projectile = 0.0;
|
||||||
|
ashield->projectile = 1.0;
|
||||||
|
CuAssertIntEquals_Msg(tc, "projectile shield", -1, calculate_armor(dt, 0, wtype, 0));
|
||||||
|
wtype->flags = WTF_NONE;
|
||||||
|
CuAssertIntEquals_Msg(tc, "no projectiles", 4, calculate_armor(dt, 0, wtype, 0));
|
||||||
|
free_battle(b);
|
||||||
|
test_cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
CuSuite *get_battle_suite(void)
|
CuSuite *get_battle_suite(void)
|
||||||
{
|
{
|
||||||
CuSuite *suite = CuSuiteNew();
|
CuSuite *suite = CuSuiteNew();
|
||||||
|
@ -286,5 +324,6 @@ CuSuite *get_battle_suite(void)
|
||||||
SUITE_ADD_TEST(suite, test_building_bonus_respects_size);
|
SUITE_ADD_TEST(suite, test_building_bonus_respects_size);
|
||||||
SUITE_ADD_TEST(suite, test_building_defence_bonus);
|
SUITE_ADD_TEST(suite, test_building_defence_bonus);
|
||||||
SUITE_ADD_TEST(suite, test_calculate_armor);
|
SUITE_ADD_TEST(suite, test_calculate_armor);
|
||||||
|
SUITE_ADD_TEST(suite, test_projectile_armor);
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue