blob: 6180b5cd06ab4398dfd8eb5f460001290314cc18 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "wtf/dtoa.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace WTF {
TEST(DtoaTest, TestNumberToFixedPrecisionString)
{
NumberToStringBuffer buffer;
// There should be no trailing decimal or zeros.
numberToFixedPrecisionString(0.0, 6, buffer, true);
EXPECT_STREQ("0", buffer);
// Up to 6 leading zeros.
numberToFixedPrecisionString(0.00000123123123, 6, buffer, true);
EXPECT_STREQ("0.00000123123", buffer);
numberToFixedPrecisionString(0.000000123123123, 6, buffer, true);
EXPECT_STREQ("1.23123e-7", buffer);
// Up to 6 places before the decimal.
numberToFixedPrecisionString(123123.123, 6, buffer, true);
EXPECT_STREQ("123123", buffer);
numberToFixedPrecisionString(1231231.23, 6, buffer, true);
EXPECT_STREQ("1.23123e+6", buffer);
// Don't strip trailing zeros in exponents.
// http://crbug.com/545711
numberToFixedPrecisionString(0.000000000123123, 6, buffer, true);
EXPECT_STREQ("1.23123e-10", buffer);
// FIXME: Trailing zeros before exponents should be stripped.
numberToFixedPrecisionString(0.0000000001, 6, buffer, true);
EXPECT_STREQ("1.00000e-10", buffer);
}
TEST(DtoaTest, TestNumberToFixedPrecisionString_DontTruncateTrailingZeros)
{
NumberToStringBuffer buffer;
// There should be a trailing decimal and zeros.
numberToFixedPrecisionString(0.0, 6, buffer, false);
EXPECT_STREQ("0.00000", buffer);
}
} // namespace WTF