1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:37:34 +00:00

AK+Tests: Fix formatting of infinity and NaN values

When I added this code in 1472f6d, I forgot to add tests for it. That's
why I didn't realize that the values were appended to the wrong
FormatBuilder object, so an empty string was returned instead of the
expected "nan"/"inf". This made debugging some FPU issues with the
ScummVM port significantly more difficult.
This commit is contained in:
Daniel Bertalan 2021-10-30 10:43:21 +02:00 committed by Andreas Kling
parent 2c93ee50cd
commit fed9cb5d2d
2 changed files with 9 additions and 4 deletions

View file

@ -9,6 +9,7 @@
#include <AK/String.h>
#include <AK/StringBuilder.h>
#include <AK/Vector.h>
#include <math.h>
TEST_CASE(is_integral_works_properly)
{
@ -241,6 +242,10 @@ TEST_CASE(floating_point_numbers)
EXPECT_EQ(String::formatted("{:.1}", 1.12), "1.1");
EXPECT_EQ(String::formatted("{}", -1.12), "-1.12");
EXPECT_EQ(String::formatted("{}", NAN), "nan");
EXPECT_EQ(String::formatted("{}", INFINITY), "inf");
EXPECT_EQ(String::formatted("{}", -INFINITY), "-inf");
// FIXME: There is always the question what we mean with the width field. Do we mean significant digits?
// Do we mean the whole width? This is what was the simplest to implement:
EXPECT_EQ(String::formatted("{:x>5.1}", 1.12), "xx1.1");