49 lines
2.8 KiB
C++
49 lines
2.8 KiB
C++
#include "../../extern/catch.hpp"
|
|
#include "../Library.hpp"
|
|
|
|
#define CHECK_NATURE_NEUTRAL(name) \
|
|
{ \
|
|
auto nature = natureLib->GetNatureByName( #name ); \
|
|
CHECK(nature.GetIncreaseModifier() == Approx(1.0)); \
|
|
CHECK(nature.GetDecreaseModifier() == Approx(1.0)); \
|
|
}
|
|
|
|
|
|
#define CHECK_NATURE(name, increasedStat, decreasedStat) \
|
|
{ \
|
|
auto nature = natureLib->GetNatureByName( #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);
|
|
}
|