AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
SpellCritDamageBonusOrderTest.cpp File Reference
#include "Util.h"
#include "gtest/gtest.h"

Go to the source code of this file.

Classes

class  SpellCritDamageBonusOrderTest
 

Functions

 TEST_F (SpellCritDamageBonusOrderTest, NoModifiers)
 
 TEST_F (SpellCritDamageBonusOrderTest, OnlyAuraMod)
 
 TEST_F (SpellCritDamageBonusOrderTest, OnlyTalentMod)
 
 TEST_F (SpellCritDamageBonusOrderTest, Issue24976_HunterSteadyShot)
 
 TEST_F (SpellCritDamageBonusOrderTest, BothMods_LargerValues)
 

Function Documentation

◆ TEST_F() [1/5]

TEST_F ( SpellCritDamageBonusOrderTest  ,
BothMods_LargerValues   
)
147{
148 int32 damage = 1000;
149 float auraMod = 3.0f;
150 float talentMod = 40.0f;
151
152 // Correct: 2000*1.03=2060, bonus=1060, *1.40=1484, +1000=2484
153 EXPECT_EQ(CorrectCritOrder(damage, auraMod, talentMod), 2484);
154
155 // Wrong: 1000*1.40=1400, total=2400, *1.03=2472
156 EXPECT_EQ(OldWrongCritOrder(damage, auraMod, talentMod), 2472);
157
158 EXPECT_GT(CorrectCritOrder(damage, auraMod, talentMod),
159 OldWrongCritOrder(damage, auraMod, talentMod));
160}
std::int32_t int32
Definition Define.h:103

◆ TEST_F() [2/5]

TEST_F ( SpellCritDamageBonusOrderTest  ,
Issue24976_HunterSteadyShot   
)
134{
135 int32 damage = 320;
136 float auraMod = 3.0f; // meta gem: +3% crit damage
137 float talentMod = 40.0f; // Mortal Shots etc: +40% SPELLMOD_CRIT_DAMAGE_BONUS
138
139 EXPECT_EQ(OldWrongCritOrder(damage, auraMod, talentMod), 791);
140 EXPECT_EQ(CorrectCritOrder(damage, auraMod, talentMod), 794);
141 EXPECT_GT(CorrectCritOrder(damage, auraMod, talentMod),
142 OldWrongCritOrder(damage, auraMod, talentMod));
143}

◆ TEST_F() [3/5]

TEST_F ( SpellCritDamageBonusOrderTest  ,
NoModifiers   
)
97{
98 EXPECT_EQ(CorrectCritOrder(1000, 0.0f, 0.0f), 2000);
99 EXPECT_EQ(OldWrongCritOrder(1000, 0.0f, 0.0f), 2000);
100}

◆ TEST_F() [4/5]

TEST_F ( SpellCritDamageBonusOrderTest  ,
OnlyAuraMod   
)
104{
105 EXPECT_EQ(CorrectCritOrder(1000, 30.0f, 0.0f), 2600);
106 EXPECT_EQ(OldWrongCritOrder(1000, 30.0f, 0.0f), 2600);
107}

◆ TEST_F() [5/5]

TEST_F ( SpellCritDamageBonusOrderTest  ,
OnlyTalentMod   
)
111{
112 // Correct: bonus = 2000-1000 = 1000, *1.03 = 1030, +1000 = 2030
113 // Old: crit_bonus = 1000*1.03 = 1030, total = 2030
114 EXPECT_EQ(CorrectCritOrder(1000, 0.0f, 3.0f), 2030);
115 EXPECT_EQ(OldWrongCritOrder(1000, 0.0f, 3.0f), 2030);
116}