Began work on unit tests
This commit is contained in:
@@ -23,4 +23,34 @@ namespace Gen7 {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if TESTS
|
||||
|
||||
void RunHits(uint seed, uint8 expectedHits){
|
||||
auto battle = CreateSimpleBattle(seed, "charizard", "venusaur", 100);
|
||||
auto mon1 = battle.GetBattleSide(0).GetPokemon(0);
|
||||
|
||||
auto choice = CreateMoveTurnChoice("tackle", mon1, 1, 0);
|
||||
auto script = cast<Gen7::MultiHitMove>(CreateMoveScript("2_5HitMove"));
|
||||
uint8 numberHits = 1;
|
||||
script.ModifyNumberOfHits(choice, numberHits);
|
||||
RequireEquals(expectedHits, numberHits);
|
||||
}
|
||||
|
||||
[Test name="2-5 Hit Move"]
|
||||
void MultiHitMove_HasMultiHits(){
|
||||
RunHits(684, 3);
|
||||
RunHits(78216, 4);
|
||||
RunHits(123640, 3);
|
||||
RunHits(280282, 2);
|
||||
RunHits(353353, 3);
|
||||
RunHits(388667, 2);
|
||||
RunHits(436269, 2);
|
||||
RunHits(784419, 5);
|
||||
RunHits(800144, 2);
|
||||
RunHits(901811, 5);
|
||||
RunHits(992841, 4);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -8,4 +8,74 @@ namespace Gen7 {
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if TESTS
|
||||
[Test name="Acrobatics: Base Power without item"]
|
||||
void Acrobatics_BasePowerWithoutItem(){
|
||||
auto battle = CreateSimpleBattle(684, "charizard", "venusaur", 100);
|
||||
auto mon1 = battle.GetBattleSide(0).GetPokemon(0);
|
||||
auto mon2 = battle.GetBattleSide(1).GetPokemon(0);
|
||||
|
||||
auto script = cast<Gen7::Acrobatics>(CreateMoveScript("Acrobatics"));
|
||||
Require(script !is null);
|
||||
uint8 bp = 20;
|
||||
auto executingMove = CreateExecutingMove("Acrobatics", mon1, mon2);
|
||||
script.OverrideBasePower(executingMove, mon2, 0x0, bp);
|
||||
RequireEquals(40, bp);
|
||||
}
|
||||
|
||||
[Test name="Acrobatics: Base Power with item"]
|
||||
void Acrobatics_BasePowerWithItem(){
|
||||
auto battle = CreateSimpleBattle(684, "charizard", "venusaur", 100);
|
||||
auto mon1 = battle.GetBattleSide(0).GetPokemon(0);
|
||||
auto mon2 = battle.GetBattleSide(1).GetPokemon(0);
|
||||
mon1.SetHeldItem("poke_ball");
|
||||
|
||||
auto script = cast<Gen7::Acrobatics>(CreateMoveScript("Acrobatics"));
|
||||
Require(script !is null);
|
||||
uint8 bp = 20;
|
||||
auto executingMove = CreateExecutingMove("Acrobatics", mon1, mon2);
|
||||
script.OverrideBasePower(executingMove, mon2, 0x0, bp);
|
||||
RequireEquals(20, bp);
|
||||
}
|
||||
|
||||
[Test name="Acrobatics: Base Power without item with base power > 128"]
|
||||
void Acrobatics_BasePowerWithoutItemWithHighBasePower(){
|
||||
auto battle = CreateSimpleBattle(684, "charizard", "venusaur", 100);
|
||||
auto mon1 = battle.GetBattleSide(0).GetPokemon(0);
|
||||
auto mon2 = battle.GetBattleSide(1).GetPokemon(0);
|
||||
|
||||
auto script = cast<Gen7::Acrobatics>(CreateMoveScript("Acrobatics"));
|
||||
Require(script !is null);
|
||||
uint8 bp = 140;
|
||||
auto executingMove = CreateExecutingMove("Acrobatics", mon1, mon2);
|
||||
script.OverrideBasePower(executingMove, mon2, 0x0, bp);
|
||||
RequireEquals(255, bp);
|
||||
}
|
||||
|
||||
[Test name="Acrobatics: Damage without item"]
|
||||
void Acrobatics_TestDamageWithoutItem(){
|
||||
auto battle = CreateSimpleBattle(684, "charizard", "venusaur", 100);
|
||||
auto mon1 = battle.GetBattleSide(0).GetPokemon(0);
|
||||
auto mon2 = battle.GetBattleSide(1).GetPokemon(0);
|
||||
auto startHealth = mon2.CurrentHealth;
|
||||
Require(mon1.UseMove("acrobatics", 1, 0));
|
||||
Require(mon2.PassTurn());
|
||||
RequireEquals(272, startHealth - mon2.CurrentHealth);
|
||||
}
|
||||
|
||||
[Test name="Acrobatics: Damage with item"]
|
||||
void Acrobatics_TestDamageWithItem(){
|
||||
auto battle = CreateSimpleBattle(684, "charizard", "venusaur", 100);
|
||||
auto mon1 = battle.GetBattleSide(0).GetPokemon(0);
|
||||
auto mon2 = battle.GetBattleSide(1).GetPokemon(0);
|
||||
mon1.SetHeldItem("poke_ball");
|
||||
|
||||
auto startHealth = mon2.CurrentHealth;
|
||||
Require(mon1.UseMove("acrobatics", 1, 0));
|
||||
Require(mon2.PassTurn());
|
||||
RequireEquals(139, startHealth - mon2.CurrentHealth);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user