Skip to content

Commit 887823d

Browse files
committed
Fix precision issues in ShaderManager test suite
1 parent d6def8f commit 887823d

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

test/shadermanager/shadermanager_test.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ TEST_F(ShaderManagerTest, ColorEffectValue)
137137

138138
GLfloat value = 0.0f;
139139
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
140-
ASSERT_EQ(value, 0.3245f);
141-
ASSERT_EQ(values.at(effect), value);
140+
ASSERT_EQ(std::round(value * 10000) / 10000, 0.3245f);
141+
ASSERT_EQ(std::round(values.at(effect) * 10000) / 10000, std::round(value * 10000) / 10000);
142142

143143
// Below the minimum
144144
effects[effect] = -395.7;
@@ -150,7 +150,7 @@ TEST_F(ShaderManagerTest, ColorEffectValue)
150150
value = 0.0f;
151151
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
152152
ASSERT_EQ(std::round(value * 100.0f) / 100.0f, 0.02f);
153-
ASSERT_EQ(values.at(effect), value);
153+
ASSERT_EQ(std::round(values.at(effect) * 100) / 100, std::round(value * 100) / 100);
154154

155155
// Above the maximum
156156
effects[effect] = 579.05;
@@ -162,7 +162,7 @@ TEST_F(ShaderManagerTest, ColorEffectValue)
162162
value = 0.0f;
163163
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
164164
ASSERT_EQ(std::round(value * 100.0f) / 100.0f, 0.9f);
165-
ASSERT_EQ(values.at(effect), value);
165+
ASSERT_EQ(std::round(values.at(effect) * 100) / 100, std::round(value * 100) / 100);
166166

167167
program->release();
168168
}
@@ -188,8 +188,8 @@ TEST_F(ShaderManagerTest, BrightnessEffectValue)
188188

189189
GLfloat value = 0.0f;
190190
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
191-
ASSERT_EQ(value, 0.046f);
192-
ASSERT_EQ(values.at(effect), value);
191+
ASSERT_EQ(std::round(value * 10000) / 10000, 0.046f);
192+
ASSERT_EQ(std::round(values.at(effect) * 10000) / 10000, std::round(value * 10000) / 10000);
193193

194194
// Below the minimum
195195
effects[effect] = -102.9;
@@ -240,7 +240,7 @@ TEST_F(ShaderManagerTest, GhostEffectValue)
240240
GLfloat value = 0.0f;
241241
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
242242
ASSERT_EQ(std::round(value * 1000.0f) / 1000.0f, 0.415f);
243-
ASSERT_EQ(values.at(effect), value);
243+
ASSERT_EQ(std::round(values.at(effect) * 10000) / 10000, std::round(value * 10000) / 10000);
244244

245245
// Below the minimum
246246
effects[effect] = -20.8;
@@ -288,8 +288,8 @@ TEST_F(ShaderManagerTest, FisheyeEffectValue)
288288

289289
GLfloat value = 0.0f;
290290
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
291-
ASSERT_EQ(value, 1.585f);
292-
ASSERT_EQ(values.at(effect), value);
291+
ASSERT_EQ(std::round(value * 1000.0f) / 1000.0f, 1.585f);
292+
ASSERT_EQ(std::round(values.at(effect) * 1000) / 1000, std::round(value * 1000) / 1000);
293293

294294
effects[effect] = -20.8;
295295
program->bind();
@@ -298,8 +298,8 @@ TEST_F(ShaderManagerTest, FisheyeEffectValue)
298298

299299
value = 0.0f;
300300
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
301-
ASSERT_EQ(value, 0.792f);
302-
ASSERT_EQ(values.at(effect), value);
301+
ASSERT_EQ(std::round(value * 1000.0f) / 1000.0f, 0.792f);
302+
ASSERT_EQ(std::round(values.at(effect) * 1000) / 1000, std::round(value * 1000) / 1000);
303303

304304
// Below the minimum
305305
effects[effect] = -101;
@@ -337,7 +337,7 @@ TEST_F(ShaderManagerTest, WhirlEffectValue)
337337
GLfloat value = 0.0f;
338338
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
339339
ASSERT_EQ(std::round(value * 1000) / 1000, 1.021f);
340-
ASSERT_EQ(values.at(effect), value);
340+
ASSERT_EQ(std::round(values.at(effect) * 1000) / 1000, std::round(value * 1000) / 1000);
341341

342342
effects[effect] = -20.8;
343343
program->bind();
@@ -347,7 +347,7 @@ TEST_F(ShaderManagerTest, WhirlEffectValue)
347347
value = 0.0f;
348348
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
349349
ASSERT_EQ(std::round(value * 1000) / 1000, -0.363f);
350-
ASSERT_EQ(values.at(effect), value);
350+
ASSERT_EQ(std::round(values.at(effect) * 1000) / 1000, std::round(value * 1000) / 1000);
351351

352352
program->release();
353353
}
@@ -373,8 +373,8 @@ TEST_F(ShaderManagerTest, PixelateEffectValue)
373373

374374
GLfloat value = 0.0f;
375375
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
376-
ASSERT_EQ(value, 5.85f);
377-
ASSERT_EQ(values.at(effect), value);
376+
ASSERT_EQ(std::round(value * 100.0f) / 100.0f, 5.85f);
377+
ASSERT_EQ(std::round(values.at(effect) * 100) / 100, std::round(value * 100) / 100);
378378

379379
effects[effect] = -20.8;
380380
program->bind();
@@ -383,8 +383,8 @@ TEST_F(ShaderManagerTest, PixelateEffectValue)
383383

384384
value = 0.0f;
385385
glF.glGetUniformfv(program->programId(), program->uniformLocation(uniformName), &value);
386-
ASSERT_EQ(value, 2.08f);
387-
ASSERT_EQ(values.at(effect), value);
386+
ASSERT_EQ(std::round(value * 100.0f) / 100.0f, 2.08f);
387+
ASSERT_EQ(std::round(values.at(effect) * 100) / 100, std::round(value * 100) / 100);
388388

389389
program->release();
390390
}

0 commit comments

Comments
 (0)