#include #include "core/stats.h" namespace PokEng { // Test fixture for stats tests class StatsTest : public ::testing::Test { protected: void SetUp() override { // Set up test fixtures } void TearDown() override { // Clean up test fixtures } }; // Generation I && II example // HP Attack Defense Sp.Atk Sp.Def Speed // Base stat 35 55 30 50 50 90 // IV 14 16 26 18 10 0 // StatXP 22850 23140 17280 19625 24795 0 // Total 189 137 101 128 112 190 /** // Test type string conversion TEST_F(StatsTest, CalculateHP_GenI_II) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 35; pikachuParams.m_iv = 14; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::HP; pikachuParams.m_statExp = 22850; EXPECT_EQ(CalculateHP(pikachuParams), 189); } TEST_F(StatsTest, CalculateStat_GenI_II_Attack) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 55; pikachuParams.m_iv = 16; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::ATTACK; pikachuParams.m_statExp = 23140; EXPECT_EQ(CalculateStat(pikachuParams), 137); } TEST_F(StatsTest, CalculateStat_GenI_II_Defense) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 30; pikachuParams.m_iv = 26; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::DEFENSE; pikachuParams.m_statExp = 17280; EXPECT_EQ(CalculateStat(pikachuParams), 101); } TEST_F(StatsTest, CalculateStat_GenI_II_SpAttack) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 50; pikachuParams.m_iv = 18; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::SP_ATTACK; pikachuParams.m_statExp = 19625; EXPECT_EQ(CalculateStat(pikachuParams), 128); } TEST_F(StatsTest, CalculateStat_GenI_II_SpDefense) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 50; pikachuParams.m_iv = 10; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::SP_DEFENSE; pikachuParams.m_statExp = 24795; EXPECT_EQ(CalculateStat(pikachuParams), 112); } TEST_F(StatsTest, CalculateStat_GenI_II_Speed) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 90; pikachuParams.m_iv = 0; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::SPEED; pikachuParams.m_statExp = 0; EXPECT_EQ(CalculateStat(pikachuParams), 190); } // Generation 3+ example // HP Attack Defense Sp.Atk Sp.Def Speed // Base stat 108 130 95 80 85 102 // IV 24 12 30 16 23 5 // EV 74 190 91 48 84 23 // Total 289 278 193 135 171 171 TEST_F(StatsTest, CalculateStat_GenIII) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 108; pikachuParams.m_iv = 24; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::ATTACK; pikachuParams.m_statExp = 74; EXPECT_EQ(CalculateStat(pikachuParams), 278); } TEST_F(StatsTest, CalculateStat_GenIII_Defense) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 130; pikachuParams.m_iv = 12; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::DEFENSE; pikachuParams.m_statExp = 190; EXPECT_EQ(CalculateStat(pikachuParams), 193); } TEST_F(StatsTest, CalculateStat_GenIII_SpAttack) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 80; pikachuParams.m_iv = 16; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::SP_ATTACK; pikachuParams.m_statExp = 48; EXPECT_EQ(CalculateStat(pikachuParams), 135); } TEST_F(StatsTest, CalculateStat_GenIII_SpDefense) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 85; pikachuParams.m_iv = 23; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::SP_DEFENSE; pikachuParams.m_statExp = 84; EXPECT_EQ(CalculateStat(pikachuParams), 171); } TEST_F(StatsTest, CalculateStat_GenIII_Speed) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 102; pikachuParams.m_iv = 5; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::SPEED; pikachuParams.m_statExp = 23; EXPECT_EQ(CalculateStat(pikachuParams), 171); } TEST_F(StatsTest, CalculateHP_GenIII) { StatCalculatorParams pikachuParams; pikachuParams.m_base = 108; pikachuParams.m_iv = 24; pikachuParams.m_level = 81; pikachuParams.m_statIndex = StatIndex::HP; pikachuParams.m_statExp = 74; EXPECT_EQ(CalculateHP(pikachuParams), 289); } */ } // namespace PokEng