48 lines
2.8 KiB
C++
48 lines
2.8 KiB
C++
#include "../../extern/doctest.hpp"
|
|
#include "../Library.hpp"
|
|
|
|
#define CHECK_NATURE_NEUTRAL(name) \
|
|
{ \
|
|
auto nature = natureLib->GetNatureByName(ArbUt::StringView(#name)); \
|
|
CHECK(nature->GetIncreaseModifier() == doctest::Approx(1.0)); \
|
|
CHECK(nature->GetDecreaseModifier() == doctest::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() == doctest::Approx(1.1)); \
|
|
CHECK(nature->GetDecreaseModifier() == doctest::Approx(0.9)); \
|
|
}
|
|
|
|
TEST_CASE("Nature Checks") {
|
|
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);
|
|
}
|