Gen7Tests/src/LibraryTests/NaturesTests.cpp

48 lines
2.8 KiB
C++

#include "../../extern/catch.hpp"
#include "../Library.hpp"
#define CHECK_NATURE_NEUTRAL(name) \
{ \
auto nature = natureLib->GetNatureByName(ArbUt::StringView(#name)); \
CHECK(nature->GetIncreaseModifier() == Approx(1.0)); \
CHECK(nature->GetDecreaseModifier() == Approx(1.0)); \
}
#define CHECK_NATURE(name, increasedStat, decreasedStat) \
{ \
auto nature = natureLib->GetNatureByName(ArbUt::StringView(#name)); \
CHECK(nature->GetIncreasedStat() == PkmnLib::Library::Statistic::increasedStat); \
CHECK(nature->GetDecreasedStat() == PkmnLib::Library::Statistic::decreasedStat); \
CHECK(nature->GetIncreaseModifier() == Approx(1.1)); \
CHECK(nature->GetDecreaseModifier() == Approx(0.9)); \
}
TEST_CASE("Nature Checks", "[natures]") {
auto natureLib = Library::GetStaticLib()->GetNatureLibrary();
CHECK_NATURE_NEUTRAL(Hardy);
CHECK_NATURE(Lonely, PhysicalAttack, PhysicalDefense);
CHECK_NATURE(Brave, PhysicalAttack, Speed);
CHECK_NATURE(Adamant, PhysicalAttack, SpecialAttack);
CHECK_NATURE(Naughty, PhysicalAttack, SpecialDefense);
CHECK_NATURE(Bold, PhysicalDefense, PhysicalAttack);
CHECK_NATURE_NEUTRAL(Docile);
CHECK_NATURE(Relaxed, PhysicalDefense, Speed);
CHECK_NATURE(Impish, PhysicalDefense, SpecialAttack);
CHECK_NATURE(Lax, PhysicalDefense, SpecialDefense);
CHECK_NATURE(Timid, Speed, PhysicalAttack);
CHECK_NATURE(Hasty, Speed, PhysicalDefense);
CHECK_NATURE_NEUTRAL(Serious);
CHECK_NATURE(Jolly, Speed, SpecialAttack);
CHECK_NATURE(Naive, Speed, SpecialDefense);
CHECK_NATURE(Modest, SpecialAttack, PhysicalAttack);
CHECK_NATURE(Mild, SpecialAttack, PhysicalDefense);
CHECK_NATURE(Quiet, SpecialAttack, Speed);
CHECK_NATURE_NEUTRAL(Bashful);
CHECK_NATURE(Rash, SpecialAttack, SpecialDefense);
CHECK_NATURE(Calm, SpecialDefense, PhysicalAttack);
CHECK_NATURE(Gentle, SpecialDefense, PhysicalDefense);
CHECK_NATURE(Sassy, SpecialDefense, Speed);
CHECK_NATURE(Careful, SpecialDefense, SpecialAttack);
CHECK_NATURE_NEUTRAL(Quirky);
}